| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html lang="en"> |
| <head> |
| <meta name="copyright" |
| content="Copyright (c) IBM Corporation and others 2000, 2010. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page."> |
| <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
| <meta http-equiv="Content-Style-Type" content="text/css"> |
| <title>Refactor Actions</title> |
| <link rel="stylesheet" href="../book.css" charset="ISO-8859-1" |
| type="text/css"> |
| </head> |
| <body> |
| <h1>Refactor Actions</h1> |
| <p>Refactor menu commands:</p> |
| <table border="1" cellspacing="0" cellpadding="5" summary="Refactor menu commands"> |
| <tbody> |
| <tr> |
| <th> |
| <p>Name</p> |
| </th> |
| <th> |
| <p>Description</p> |
| </th> |
| </tr> |
| <tr> |
| <td align="left" valign="top"> |
| <p>Rename</p> |
| </td> |
| <td align="left" valign="top">Renames the selected element and |
| (if enabled) corrects all references to the elements (also in other |
| files). <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Rename refactorings"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Methods, method parameters, fields, local variables, |
| types, type parameters, enum constants, compilation units, |
| packages, source folders, projects and on a text selection |
| resolving to one of these element types</td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Shortcut:</td> |
| <td align="left" valign="top">Alt + Shift + R</td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Options:</td> |
| <td align="left" valign="top">Renaming a type does allow to |
| rename similarly named variables and methods. Enable 'Update |
| similarly named variables and methods' in the Rename Type dialog. |
| Select 'Configure...' to configure the strategy for matching type |
| names. <br> |
| <br> |
| Renaming a package does allow to rename its subpackages. Enable |
| 'Rename subpackages' in the Rename Package dialog.<br> |
| <br> |
| Enable 'Keep original method as delegate to changed method' to keep the original method. |
| Optionally you can deprecate the old method. |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| </tr> |
| <tr> |
| <td align="left" valign="top"> |
| <p>Move</p> |
| </td> |
| |
| <td align="left" valign="top">Moves the selected elements and |
| (if enabled) corrects all references to the elements (also in other |
| files). <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Move refactorings"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Instance method (which can be moved to a component), one |
| or more static methods, static fields, types, compilation units, |
| packages, source folders and projects and on a text selection |
| resolving to one of these element types</td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Shortcut:</td> |
| <td align="left" valign="top">Alt + Shift + V</td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Options:</td> |
| <td align="left" valign="top">You can use Drag & Drop in |
| the Package Explorer to start this refactoring.</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Change Method Signature</td> |
| <td>Changes parameter names, parameter types, parameter order |
| and updates all references to the corresponding method. Additionally, |
| parameters and thrown exceptions can be removed or added and method return type and |
| method visibility can be changed. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Change Method Signature refactorings"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Methods or on text selection resolving to a method</td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Shortcut:</td> |
| <td align="left" valign="top">Alt + Shift + C</td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Options:</td> |
| <td align="left" valign="top">Enable 'Keep original method as |
| delegate to changed method' in the Change Method Signature dialog |
| to keep the original method.</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| </tr> |
| <tr align="left" valign="top"> |
| <td>Extract Method</td> |
| <td>Creates a new method containing the statements or expression |
| currently selected and replaces the selection with a reference to the |
| new method. This feature is useful for cleaning up lengthy, |
| cluttered, or overly-complicated methods. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Extract Method refactorings"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>You can use <em>Expand Selection to</em> from the <a |
| href="ref-menu-edit.htm">Edit</a> menu to get a valid selection |
| range. |
| <br>This refactoring is also available as <a href="ref-java-editor-quickassist.htm">quick assist</a> on |
| statements and expressions selected in the editor. |
| </td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Shortcut:</td> |
| <td align="left" valign="top">Alt + Shift + M</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| </tr> |
| |
| <tr align="left" valign="top"> |
| |
| <td>Extract Local Variable</td> |
| <td>Creates a new variable assigned to the expression currently |
| selected and replaces the selection with a reference to the new |
| variable. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Extract local variable refactorings"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Text selections that resolve to local variables. You can |
| use <em>Expand Selection to</em> from the <a |
| href="ref-menu-edit.htm">Edit</a> menu to get a valid selection |
| range. |
| <br>This refactoring is also available as <a href="ref-java-editor-quickassist.htm">quick assist</a> on |
| expressions selected in the editor. |
| </td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Shortcut:</td> |
| <td align="left" valign="top">Alt + Shift + L</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| </tr> |
| <tr> |
| |
| <td align="left" valign="top">Extract Constant</td> |
| |
| <td>Creates a static final field from the selected expression |
| and substitutes a field reference, and optionally rewrites other |
| places where the same expression occurs. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Extract Constant refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Constant expressions or text selections which resolve to |
| constant expressions |
| <br>This refactoring is also available as <a href="ref-java-editor-quickassist.htm">quick assist</a> on |
| expressions selected in the editor. |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| </tr> |
| <tr align="left" valign="top"> |
| |
| <td align="left" valign="top">Inline</td> |
| |
| <td>Inline local variables, methods or constants. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Inline refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Methods, static final fields and text selections that |
| resolve to methods, static final fields or local variables |
| <br>This refactoring is also available as <a href="ref-java-editor-quickassist.htm">quick assist</a> on |
| local variables selected in the editor. |
| </td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Shortcut:</td> |
| <td align="left" valign="top">Alt + Shift + I</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| </tr> |
| |
| <tr> |
| |
| <td align="left" valign="top">Convert Anonymous Class to Nested</td> |
| |
| <td>Converts an anonymous inner class to a member class. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Convert Anonymous Class to Nested refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Anonymous inner classes</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| <tr> |
| |
| <td align="left" valign="top">Move Type to New File</td> |
| |
| <td>Creates a new Java compilation unit for the selected member type or the selected secondary |
| type, updating all references as needed. For non-static member types, |
| a field is added to allow access to the former enclosing instance, if |
| necessary. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Move Type to New File refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Member types, secondary types, or text resolving to a member type or a secondary type. |
| <br> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td align="left" valign="top">Convert Local Variable to Field</td> |
| |
| <td>Turn a local variable into a field. If the variable is |
| initialized on creation, then the operation moves the initialization |
| to the new field's declaration or to the class's constructors. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Convert Local Variable to Field refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Text selections that resolve to local variables. |
| <br>This refactoring is also available as <a href="ref-java-editor-quickassist.htm">quick assist</a> on |
| local variables selected in the editor. |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| <td align="left" valign="top">Extract Superclass</td> |
| <td>Extracts a common superclass from a set of sibling types. |
| The selected sibling types become direct subclasses of the extracted |
| superclass after applying the refactoring. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Extract Superclass refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Types</td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Options:</td> |
| <td align="left" valign="top">Enable 'Use the extracted class |
| where possible' to use the newly created class wherever possible. |
| See <em>Use Supertype Where Possible</em>.</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| <td align="left" valign="top">Extract Interface</td> |
| <td>Creates a new interface with a set of methods and makes the |
| selected class implement the interface. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Extract Interface refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Types</td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Options:</td> |
| <td align="left" valign="top">Enable 'Use the extracted |
| interface type where possible' to use the newly created interface |
| wherever possible. See <em>Use Supertype Where Possible</em>.</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| <td align="left" valign="top">Use Supertype Where Possible</td> |
| <td>Replaces occurrences of a type with one of its supertypes |
| after identifying all places where this replacement is possible. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Use Supertype Where Possible refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Types</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| <td align="left" valign="top">Push Down</td> |
| <td>Moves a set of methods and fields from a class to its |
| subclasses. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Push Down refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>One or more methods and fields declared in the same type |
| or on a text selection inside a field or method</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| <td align="left" valign="top">Pull Up</td> |
| <td align="left" valign="top">Moves a field or method to a |
| superclass of its declaring class or (in the case of methods) |
| declares the method as abstract in the superclass. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Pull Up refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>One or more methods, fields and member types declared in |
| the same type or on a text selection inside a field, method or |
| member type</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| <td align="left" valign="top">Extract Class</td> |
| <td>Replaces a set of fields with new container object. All references to the fields are |
| updated to access the new container object.<br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Extract Class refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>The set of fields or a type containing fields</td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Options:</td> |
| <td align="left" valign="top">Enable 'Create Getter and Setters' to add |
| accessor methods to the new type</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| <td align="left" valign="top">Introduce Parameter Object</td> |
| <td>Replaces a set of parameters with a new class, |
| and updates all callers of the method to pass an instance of the new |
| class as the value to the introduce parameter.<br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Introduce Parameter Object refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Methods or on text selection resolving to a method</td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Options:</td> |
| <td align="left" valign="top">Enable 'Keep original method as |
| delegate to changed method' in the Introduce Parameter Object dialog |
| to keep the original method.</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| <td align="left" valign="top">Introduce Indirection</td> |
| <td>Creates a static indirection method delegating to the |
| selected method. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Introduce Indirection refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Methods or on text selection resolving to a method</td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Options:</td> |
| <td align="left" valign="top">Enable 'Redirect all method |
| invocations' to replace all calls to the original method by calls |
| to the indirection method.</td> |
| </tr> |
| |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| <tr> |
| <td align="left" valign="top">Introduce Factory</td> |
| <td>Creates a new factory method, which will call a selected |
| constructor and return the created object. All references to the |
| constructor will be replaced by calls to the new factory method. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Introduce Factory refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Constructor declarations</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| <tr> |
| <td align="left" valign="top">Introduce Parameter</td> |
| <td>Replaces an expression with a reference to a new method |
| parameter, and updates all callers of the method to pass the |
| expression as the value of that parameter. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Introduce Parameter refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Text selections that resolve to expressions</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| <td align="left" valign="top">Encapsulate Field</td> |
| <td>Replaces all references to a field with getter and setter |
| methods. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Encapsulate Field refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Field or a text selection resolving to a field. |
| <br>This refactoring is also available as <a href="ref-java-editor-quickassist.htm">quick assist</a> on |
| field declarations and references selected in the editor. |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Generalize Declared Type</td> |
| <td>Allows the user to choose a supertype of the reference's |
| current type. If the reference can be safely changed to the new type, |
| it is. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Generalize Declared Type refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Type references and declarations of fields, local |
| variables, and parameters with reference types</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| <td align="left" valign="top">Infer Generic Type Arguments</td> |
| <td>Replaces raw type occurrences of generic types by |
| parameterized types after identifying all places where this |
| replacement is possible. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Infer Generic Type Arguments refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Projects, packages, and types</td> |
| </tr> |
| <tr> |
| <td align="left" valign="top">Options:</td> |
| <td>'Assume clone() returns an instance of the receiver |
| type'. Well-behaved classes generally respect this rule, but if |
| you know that your code violates it, uncheck the box. <br> |
| <br> |
| 'Leave unconstrained type arguments raw (rather than inferring |
| <?>)'. If there are no constraints on the elements of e.g. |
| ArrayList a, uncheck this box will cause Eclipse to still |
| provide a wildcard parameter, replacing the reference with |
| ArrayList<?>.</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| <td align="left" valign="top">Migrate JAR File</td> |
| <td>Migrates a JAR File on the build path of a project in your |
| workspace to a newer version, possibly using refactoring information |
| stored in the new JAR File to avoid breaking changes. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Migrate JAR File refactoring"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>JAR Files on build path</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| <td align="left" valign="top">Create Script</td> |
| <td>Creates a script of the refactorings that have been applied |
| in the workspace. Refactoring scripts can either be saved to a file |
| or copied to the clipboard. See <em>Apply Script</em>. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Create Script"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Always</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| <td align="left" valign="top">Apply Script</td> |
| <td>Applies a refactoring script to projects in your workspace. |
| Refactoring scripts can either be loaded from a file or from the |
| clipboard. See <em>Create Script</em>. <br> |
| <table border="0" cellspacing="1" cellpadding="5" summary="Apply Script"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Always</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| <tr> |
| <td align="left" valign="top">History</td> |
| <td>Browses the workspace refactoring history and offers the |
| option to delete refactorings from the refactoring history. <br> |
| <table border="0" cellspacing="1" cellpadding="1" summary="History"> |
| <tbody> |
| <tr> |
| <td align="left" valign="top">Available:</td> |
| <td>Always</td> |
| </tr> |
| </tbody> |
| </table> |
| </td> |
| |
| </tr> |
| |
| </tbody> |
| </table> |
| <p>Refactoring commands are also available from the context menus in |
| many views and the Java editor.</p> |
| <p><img border="0" src="../images/ngrelc.png" alt="Related concepts"> |
| </p> |
| <p><a href="../concepts/concept-refactoring.htm">Refactoring support</a></p> |
| <p><img src="../images/ngrelr.png" alt="Related reference"></p> |
| <p><a href="ref-wizard-refactorings.htm">Refactoring dialogs</a><br> |
| <a href="preferences/ref-preferences-java.htm">Java preferences</a><br> |
| </p> |
| |
| </body> |
| </html> |
| |