Class IntroduceParameterObjectDescriptor

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

public class IntroduceParameterObjectDescriptor extends JavaRefactoringDescriptor
Refactoring descriptor for the introduce parameter object 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.
  • Field Details

    • PARAMETER_OBJECT_IDX

      public static final int PARAMETER_OBJECT_IDX
      The parameter index of the special parameter object. The value is "-1".
      See Also:
    • PARAMETER_OBJECT

      public static final IntroduceParameterObjectDescriptor.Parameter PARAMETER_OBJECT
      Singleton instance that represents the parameter object
  • Constructor Details

    • IntroduceParameterObjectDescriptor

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

      public IntroduceParameterObjectDescriptor(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

    • createParameters

      public static IntroduceParameterObjectDescriptor.Parameter[] createParameters(IMethod method)
      Creates the parameters for this method. The first object is the parameter object. By default all parameters are marked for field creation
      Parameters:
      method - derive parameter from this method
      Returns:
      an array of parameter corresponding to the parameter declared in the method. The first object will be the parameter object. All parameter are marked for field creation
    • getClassName

      public String getClassName()
      The name of the class that will be generated. If null the refactoring will automatically choose a class name.
      Returns:
      the name of the class that will be generated or null if the name will be automatically chosen
    • getMethod

      public IMethod getMethod()
      The method the refactoring will operate on. Can be set using setMethod(IMethod).
      Returns:
      the method that the refactoring will operate on.
    • getPackageName

      public String getPackageName()
      The parameter object class will be created in this package if the top level is true. Can be set using setPackageName(String). If the package name was null and the method has already been set this method returns the package where the method is declared in.
      Returns:
      the package name that has been set or the package where the method is declared. Can return null if neither the package nor the method has been set
    • getParameterName

      public String getParameterName()
      Returns the name of the parameter. Can return null in which case the refactoring chooses a name. Default is null
      Returns:
      the name of the parameter. Can return null in which case the refactoring chooses a name. Default is null
    • getParameters

      Returns the parameters. Can return null if all parameters should be converted to fields. Default is null.
      Returns:
      the parameters. Can return null if all parameters should be converted to fields. Default is null
    • isDelegate

      public boolean isDelegate()
      Returns true if delegates will be kept. Default is false.
      Returns:
      true if delegates will be kept. Default is false
    • isDeprecateDelegate

      public boolean isDeprecateDelegate()
      Returns true if delegates will be marked as deprecated. Default is false.
      Returns:
      true if delegates will be marked as deprecated. Default is false
    • isGetters

      public boolean isGetters()
      Returns true if getters are generated for fields. Default is false.
      Returns:
      true if getters are generated for fields. Default is false
    • isSetters

      public boolean isSetters()
      Returns true if setters are generated for fields. Default is false.
      Returns:
      true if setters are generated for fields. Default is false
    • isTopLevel

      public boolean isTopLevel()
      Returns true if the new type is created as top level type. false is returned when the type is created as enclosing type of the type declaring the method declaration to be changed. Default is true.
      Returns:
      true if the new type is created as top level type. false is returned when the type is created as enclosing type of the type declaring the method declaration to be changed. Default is true
    • 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
    • setClassName

      public void setClassName(String className)
      Sets the name of the class for the generated parameter object. The name can be null to indicate that the refactoring should chose one.
      Parameters:
      className - the name of the generated class or null. Default is null
    • setDelegate

      public void setDelegate(boolean delegate)
      Sets delegate keeping. If true delegates will be kept.
      Parameters:
      delegate - true to keep delegates. Default is false
    • setDeprecateDelegate

      public void setDeprecateDelegate(boolean deprecateDelegate)
      Sets deprecate delegate. If true generated delegates will be marked as deprecated.
      Parameters:
      deprecateDelegate - true to deprecate kept delegates. Default is false
    • setGetters

      public void setGetters(boolean getters)
      Sets whether getters will be created for all fields.
      Parameters:
      getters - true to create getters. Default is false.
    • setMethod

      public void setMethod(IMethod method)
      Sets the method. The method may not be null, has to exist, and has to be in a Java project.
      Parameters:
      method - the method. May not be null
    • setPackageName

      public void setPackageName(String packageName)
      Sets the package where the parameter object will be created in if it is created as top level class. The package can be null to indicate that the package of the method should be used.
      Parameters:
      packageName - the package for the top level class or null. Default is null.
    • setParameterName

      public void setParameterName(String parameterName)
      Sets the name of the parameter object as it will appear in the method signature. The name can be null to indicate that the refactoring will choose a name.
      Parameters:
      parameterName - the name of the parameter or null. Default is null.
    • setParameters

      public void setParameters(IntroduceParameterObjectDescriptor.Parameter[] parameters)
      Sets the parameters. The parameters can be null to indicate that all parameter should be used as fields. If not null, the number of parameters passed has to be the number of parameter of the method + 1. One element has to be the PARAMETER_OBJECT. Each parameter may only appear once.
      Parameters:
      parameters - the parameters or null. Default is null
    • setSetters

      public void setSetters(boolean setters)
      Sets whether setters will be created for all fields.
      Parameters:
      setters - true to create setters. Default is false
    • setTopLevel

      public void setTopLevel(boolean topLevel)
      Sets whether the parameter object class will be created as top level class. if true the class will be created as top level class in the package returned by getPackageName(). If false the class will be created as as nested class in the class containing the method
      Parameters:
      topLevel - true to create the parameter object as top level. Default is true
    • 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