Class IntroduceParameterObjectDescriptor

    • Field Detail

      • PARAMETER_OBJECT_IDX

        public static final int PARAMETER_OBJECT_IDX
        The parameter index of the special parameter object. The value is "-1".
        See Also:
        Constant Field Values
    • Constructor Detail

      • 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 Detail

      • 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

        public IntroduceParameterObjectDescriptor.Parameter[] 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
      • 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 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