Class ExtractClassDescriptor

java.lang.Object
org.eclipse.ltk.core.refactoring.RefactoringDescriptor
org.eclipse.jdt.core.refactoring.descriptors.JavaRefactoringDescriptor
org.eclipse.jdt.core.refactoring.descriptors.ExtractClassDescriptor
All Implemented Interfaces:
Comparable<org.eclipse.ltk.core.refactoring.RefactoringDescriptor>

public class ExtractClassDescriptor extends JavaRefactoringDescriptor
Refactoring descriptor for the extract class refactoring.

An instance of this refactoring descriptor may be obtained by calling RefactoringContribution.createDescriptor() on a refactoring contribution requested by invoking RefactoringCore.getRefactoringContribution(String) with the appropriate refactoring id.

Since:
1.2
Restriction:
This class is not intended to be subclassed by clients.
Restriction:
This class is not intended to be instantiated by clients.
  • Constructor Details

    • ExtractClassDescriptor

      public ExtractClassDescriptor()
      Creates a new refactoring descriptor.
    • ExtractClassDescriptor

      public ExtractClassDescriptor(String project, String description, String comment, Map<String,String> arguments, int flags) throws IllegalArgumentException
      Creates a new refactoring descriptor.
      Parameters:
      project - the non-empty name of the project associated with this refactoring, or null for a workspace refactoring
      description - a non-empty human-readable description of the particular refactoring instance
      comment - the human-readable comment of the particular refactoring instance, or null for no comment
      arguments - a map of arguments that will be persisted and describes all settings for this refactoring
      flags - the flags of the refactoring descriptor
      Throws:
      IllegalArgumentException - if the argument map contains invalid keys/values
  • Method Details

    • getFields

      public static ExtractClassDescriptor.Field[] getFields(IType type) throws JavaModelException
      Creates ExtractClassDescriptor.Field objects for all instance fields of the type
      Parameters:
      type - the type declaring the field that will be moved to the extracted class
      Returns:
      an instance of ExtractClassDescriptor.Field for every field declared in type that is not static
      Throws:
      JavaModelException - if the type does not exist or if an exception occurs while accessing its corresponding resource.
    • setFields

      public void setFields(ExtractClassDescriptor.Field[] fields) throws IllegalArgumentException
      Sets the fields. The order is important and should be the same as the order returned from getFields(IType). Changing the order can have side effects because of different initialization order. Only fields which return true for ExtractClassDescriptor.Field.isCreateField() are created in the extracted class. Can be null to indicate that all instance fields should be moved
      Parameters:
      fields - the fields to move to the extracted class. Can be null to indicate that all instance fields should be moved
      Throws:
      IllegalArgumentException - if one of the fields is null
    • getFields

      public ExtractClassDescriptor.Field[] getFields()
      Returns the fields. The order of the fields is the same as they will appear in the extracted class if ExtractClassDescriptor.Field.isCreateField() returns true.
      Returns:
      the fields or null. If null all instance fields from the selected type will be moved
    • getType

      public IType getType()
      Returns the type from which the fields are moved
      Returns:
      the type
    • setType

      public void setType(IType type)
      Sets the type to extract class from
      Parameters:
      type - the type to extract class from
    • getPackage

      public String getPackage()
      Returns the package where the extracted class will be created in if {isCreateTopLevel() returns true. Can return null to indicate that the package will be the same as the type
      Returns:
      the package for the toplevel extracted class or null. If null the package will be the same as the type
    • setPackage

      public void setPackage(String packageName)
      Sets the package in which the top level class will be created. Can be null to indicate that the package will be the same as the type
      Parameters:
      packageName - the package in which the top level class will be created. Can be null to indicate that the package will be the same as the type
    • getClassName

      public String getClassName()
      Returns the class name for the extracted class or null if the refactoring should choose a name
      Returns:
      the class name for the extracted class or null if the refactoring should choose a name
    • setClassName

      public void setClassName(String className)
      Sets the class name for the extracted class or null if the refactoring should choose a name
      Parameters:
      className - the class name for the extracted class or null if the refactoring should choose a name
    • getFieldName

      public String getFieldName()
      Returns the field name for the generated field or null if the refactoring should choose a name
      Returns:
      the field name for the generated field or null if the refactoring should choose a name
    • setFieldName

      public void setFieldName(String fieldName)
      Sets the field name for the generated field or null if the refactoring should choose a name
      Parameters:
      fieldName - the field name for the generated field or null if the refactoring should choose a name
    • isCreateTopLevel

      public boolean isCreateTopLevel()
      Returns whether the extracted class will be created as top level class or as nested class. If true the extracted class will be generated as top level class. The default is true
      Returns:
      if true the extracted class will be generated as top level class. The default is true
    • setCreateTopLevel

      public void setCreateTopLevel(boolean createTopLevel)
      Sets whether the extracted class will be created as top level class or as nested class. If true the extracted class will be generated as top level class. Else the class will be created as nested class in the type. The default is true
      Parameters:
      createTopLevel - true to generated as top level class. The default is true
    • setCreateGetterSetter

      public void setCreateGetterSetter(boolean createGetterSetter)
      Sets whether getters and setters will be created for all fields.
      Parameters:
      createGetterSetter - true to create getters and setters. Default is false.
    • isCreateGetterSetter

      public boolean isCreateGetterSetter()
      Returns true if getters and setters are generated for fields. Default is false.
      Returns:
      true if getters and setters are generated for fields. Default is false
    • populateArgumentMap

      protected void populateArgumentMap()
      Description copied from class: JavaRefactoringDescriptor
      Populates the refactoring descriptor argument map based on the specified arguments. Subclasses should extend and add their arguments to JavaRefactoringDescriptor.fArguments.
      Overrides:
      populateArgumentMap in class JavaRefactoringDescriptor
    • validateDescriptor

      public org.eclipse.ltk.core.refactoring.RefactoringStatus validateDescriptor()
      Description copied from class: JavaRefactoringDescriptor
      Validates the refactoring descriptor with respect to the constraints imposed by the represented refactoring.

      Clients must call this method to verify that all arguments have been correctly set and that they satisfy the constraints imposed by specific refactorings. Returning a refactoring status of severity RefactoringStatus.FATAL indicates that the refactoring descriptor cannot be used to create a refactoring instance.

      Overrides:
      validateDescriptor in class JavaRefactoringDescriptor
      Returns:
      a refactoring status describing the outcome of the validation