| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| |
| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
| <title>Introduction</title> |
| </head> |
| |
| <body> |
| <h1>Introduction</h1> |
| |
| The Rephraser Engine is an Eclipse-based library that expedites the development of refactoring tools. It contains the following components: |
| <ul> |
| <li> The <i>refactoring</i> component allows plug-ins to easily contribute refactorings to the Eclipse user interface. |
| <li> The <i>virtual program graph (VPG)</i> component provides a language-independent program database and indexing infrastructure. |
| <li> The <i>testing</i> component provides several utility classes for constructing JUnit test suites. |
| </ul> |
| |
| <p>These components share a common suite of utility classes, many of which are useful to clients as well.</p> |
| |
| <p>The dependencies among the projects comprising the Rephraser Engine are as follows. Note that the Refactoring component does <i>not</i> |
| require that the VPG component be used.</p> |
| |
| <p><img src="../../images/architecture.png" border="0" /></p> |
| |
| <p>"Rephraser" is an acronym which stands for |
| Rapid |
| Eclipse |
| Prototyping |
| Host for |
| Research on <!-- Approximate Semantic --> |
| <!-- Agnostic Specified --> |
| Abstract |
| Specified |
| Equivalence-based |
| Refactoring.</p> |
| |
| <h2>Features</h2> |
| |
| <h3>Refactoring</h3> |
| |
| <p>The Refactoring component extends the Eclipse Language ToolKit (LTK) and |
| <ul> |
| <li> contributes a Refactor menu to the workbench menu bar, as well as to the context menu for resource selections in the workbench; |
| <li> provides an extension point that allows refactorings to be contributed to this menu; and |
| <li> does not require any user interface code to be written for simple refactorings. |
| </ul></p> |
| |
| <h3>VPG</h3> |
| |
| <p>The VPG component |
| <ul> |
| <li> provides a set of base classes for building persistable program graphs; |
| <li> provides an indexing infrastructure by registering a resource listener and automatically updating program graphs as workspace resources change; and |
| <li> contributes a "(Debugging)" sub-menu to the workbench Refactoring menu, which provides various actions for viewing, analyzing, and manipulating VPG databases. |
| </ul></p> |
| |
| <h3>Testing</h3> |
| |
| <p>The Testing component |
| <ul> |
| <li> provides classes to construct a test suite (dynamically) from set of files or from a set of "markers" in a single file; and |
| <li> provides utility classes to aid in combinatorial testing. |
| </ul></p> |
| |
| <h3>Common Components/Miscellany</h3> |
| |
| <p>The Rephraser Engine also includes |
| <ul> |
| <li> classes to aid in contributing to the Eclipse Search UI (e.g., SearchResult), |
| <li> assorted classes to aid in writing common static analyses (e.g., SymbolTable), |
| <li> several utility classes (e.g., TwoKeyHashMap, Spawner, StringUtil, OffsetLength). |
| </ul> |
| </p> |
| |
| </body> |
| </html> |