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>
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.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Instances of Parameter are used to describe the position of parameter and fields. -
Field Summary
Modifier and TypeFieldDescriptionstatic final IntroduceParameterObjectDescriptor.Parameter
Singleton instance that represents the parameter objectstatic final int
The parameter index of the special parameter object.Fields inherited from class org.eclipse.jdt.core.refactoring.descriptors.JavaRefactoringDescriptor
ATTRIBUTE_ELEMENT, ATTRIBUTE_INPUT, ATTRIBUTE_NAME, ATTRIBUTE_REFERENCES, ATTRIBUTE_SELECTION, ATTRIBUTE_VERSION, fArguments, JAR_MIGRATION, JAR_REFACTORING, JAR_SOURCE_ATTACHMENT, VALUE_VERSION_1_0
Fields inherited from class org.eclipse.ltk.core.refactoring.RefactoringDescriptor
BREAKING_CHANGE, ID_UNKNOWN, MULTI_CHANGE, NONE, STRUCTURAL_CHANGE, USER_CHANGE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioncreateParameters
(IMethod method) Creates the parameters for this method.The name of the class that will be generated.The method the refactoring will operate on.The parameter object class will be created in this package if the top level istrue
.Returns the name of the parameter.Returns the parameters.boolean
Returnstrue
if delegates will be kept.boolean
Returnstrue
if delegates will be marked as deprecated.boolean
Returnstrue
if getters are generated for fields.boolean
Returnstrue
if setters are generated for fields.boolean
Returnstrue
if the new type is created as top level type.protected void
Populates the refactoring descriptor argument map based on the specified arguments.void
setClassName
(String className) Sets the name of the class for the generated parameter object.void
setDelegate
(boolean delegate) Sets delegate keeping.void
setDeprecateDelegate
(boolean deprecateDelegate) Sets deprecate delegate.void
setGetters
(boolean getters) Sets whether getters will be created for all fields.void
Sets the method.void
setPackageName
(String packageName) Sets the package where the parameter object will be created in if it is created as top level class.void
setParameterName
(String parameterName) Sets the name of the parameter object as it will appear in the method signature.void
setParameters
(IntroduceParameterObjectDescriptor.Parameter[] parameters) Sets the parameters.void
setSetters
(boolean setters) Sets whether setters will be created for all fields.void
setTopLevel
(boolean topLevel) Sets whether the parameter object class will be created as top level class.org.eclipse.ltk.core.refactoring.RefactoringStatus
Validates the refactoring descriptor with respect to the constraints imposed by the represented refactoring.Methods inherited from class org.eclipse.jdt.core.refactoring.descriptors.JavaRefactoringDescriptor
createRefactoring, elementToHandle, getArguments, handleToElement, handleToElement, handleToElement, handleToResource, resourceToHandle, setComment, setDescription, setFlags, setProject
Methods inherited from class org.eclipse.ltk.core.refactoring.RefactoringDescriptor
compareTo, createRefactoringContext, equals, getComment, getDescription, getFlags, getID, getProject, getTimeStamp, hashCode, setTimeStamp, toString
-
Field Details
-
PARAMETER_OBJECT_IDX
public static final int PARAMETER_OBJECT_IDXThe parameter index of the special parameter object. The value is "-1".- See Also:
-
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 IllegalArgumentExceptionCreates a new refactoring descriptor.- Parameters:
project
- the non-empty name of the project associated with this refactoring, ornull
for a workspace refactoringdescription
- a non-empty human-readable description of the particular refactoring instancecomment
- the human-readable comment of the particular refactoring instance, ornull
for no commentarguments
- a map of arguments that will be persisted and describes all settings for this refactoringflags
- the flags of the refactoring descriptor- Throws:
IllegalArgumentException
- if the argument map contains invalid keys/values
-
-
Method Details
-
createParameters
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
The name of the class that will be generated. Ifnull
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
The method the refactoring will operate on. Can be set usingsetMethod(IMethod)
.- Returns:
- the method that the refactoring will operate on.
-
getPackageName
The parameter object class will be created in this package if the top level istrue
. Can be set usingsetPackageName(String)
. If the package name wasnull
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
Returns the name of the parameter. Can returnnull
in which case the refactoring chooses a name. Default isnull
- Returns:
- the name of the parameter. Can return
null
in which case the refactoring chooses a name. Default isnull
-
getParameters
Returns the parameters. Can returnnull
if all parameters should be converted to fields. Default isnull
.- Returns:
- the parameters. Can return
null
if all parameters should be converted to fields. Default isnull
-
isDelegate
public boolean isDelegate()Returnstrue
if delegates will be kept. Default isfalse
.- Returns:
true
if delegates will be kept. Default isfalse
-
isDeprecateDelegate
public boolean isDeprecateDelegate()Returnstrue
if delegates will be marked as deprecated. Default isfalse
.- Returns:
true
if delegates will be marked as deprecated. Default isfalse
-
isGetters
public boolean isGetters()Returnstrue
if getters are generated for fields. Default isfalse
.- Returns:
true
if getters are generated for fields. Default isfalse
-
isSetters
public boolean isSetters()Returnstrue
if setters are generated for fields. Default isfalse
.- Returns:
true
if setters are generated for fields. Default isfalse
-
isTopLevel
public boolean isTopLevel()Returnstrue
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 istrue
.- 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 istrue
-
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 toJavaRefactoringDescriptor.fArguments
.- Overrides:
populateArgumentMap
in classJavaRefactoringDescriptor
-
setClassName
Sets the name of the class for the generated parameter object. The name can benull
to indicate that the refactoring should chose one.- Parameters:
className
- the name of the generated class ornull
. Default isnull
-
setDelegate
public void setDelegate(boolean delegate) Sets delegate keeping. Iftrue
delegates will be kept.- Parameters:
delegate
-true
to keep delegates. Default isfalse
-
setDeprecateDelegate
public void setDeprecateDelegate(boolean deprecateDelegate) Sets deprecate delegate. Iftrue
generated delegates will be marked as deprecated.- Parameters:
deprecateDelegate
-true
to deprecate kept delegates. Default isfalse
-
setGetters
public void setGetters(boolean getters) Sets whether getters will be created for all fields.- Parameters:
getters
-true
to create getters. Default isfalse
.
-
setMethod
Sets the method. The method may not benull
, has to exist, and has to be in a Java project.- Parameters:
method
- the method. May not benull
-
setPackageName
Sets the package where the parameter object will be created in if it is created as top level class. The package can benull
to indicate that the package of the method should be used.- Parameters:
packageName
- the package for the top level class ornull
. Default isnull
.
-
setParameterName
Sets the name of the parameter object as it will appear in the method signature. The name can benull
to indicate that the refactoring will choose a name.- Parameters:
parameterName
- the name of the parameter ornull
. Default isnull
.
-
setParameters
Sets the parameters. The parameters can benull
to indicate that all parameter should be used as fields. If notnull
, the number of parameters passed has to be the number of parameter of the method + 1. One element has to be thePARAMETER_OBJECT
. Each parameter may only appear once.- Parameters:
parameters
- the parameters ornull
. Default isnull
-
setSetters
public void setSetters(boolean setters) Sets whether setters will be created for all fields.- Parameters:
setters
-true
to create setters. Default isfalse
-
setTopLevel
public void setTopLevel(boolean topLevel) Sets whether the parameter object class will be created as top level class. iftrue
the class will be created as top level class in the package returned bygetPackageName()
. Iffalse
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 istrue
-
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 classJavaRefactoringDescriptor
- Returns:
- a refactoring status describing the outcome of the validation
-