public final class VariableNaming
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
VariableNaming.IntroduceVariableScopeStatus
Enum to describe possible return values for method
canIntroduceVariableInScope(SourceElement, String) . |
static class |
VariableNaming.VariableType
Enum of the various variable types that names can be generated for.
|
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
canIntroduceField(SourceElement sourceElement,
java.lang.String fieldName)
Verifies if a field can be introduced in the class that contains the
SourceElement . |
static boolean |
canIntroduceVariable(SourceElement scopeElement,
java.lang.String variableName)
Checks if a local variable (or method parameter or lambda parameter or catch parameter)
with the
variableName name can be introduced within the scope of scopeElement . |
static VariableNaming.IntroduceVariableScopeStatus |
canIntroduceVariableInScope(SourceElement scopeElement,
java.lang.String variableName)
Checks if a variable (or method parameter or lambda parameter or catch parameter)
with the
variableName name can be introduced within the scope of scopeElement . |
static void |
fillWithMembers(SourceElement element,
java.util.HashSet<java.lang.String> existingNames)
Fills the set with the names of existing field declarations visible from the sourceElement.
|
static void |
fillWithParentVariableDeclaration(SourceElement sourceElement,
java.util.HashSet<java.lang.String> existingNames)
Fills the set with the names of variables in all the parent
scopes of the sourceElement.
|
static java.lang.String |
format(VariableNaming.VariableType variableType,
java.lang.String name)
Format the given name for the code style of the given variableType.
|
static boolean |
hasShadowedFieldUses(SourceElement sourceVariable,
java.lang.String newVariableName)
Checks if the new name of a formal parameter or local variable
would shadow a field that has uses within the paramater's or local
variable's surrounding scope or any scope contained in that
surrounding scope.
|
static boolean |
isFieldShadowing(SourceElement element,
java.lang.String newVariableName)
Deprecated.
Use hasFieldShadowing(SourceElement, String) instead
|
static java.util.List<java.lang.String> |
suggestNames(SourceElement sourceElement,
java.lang.String typeName,
VariableNaming.VariableType variableType,
java.lang.String currentName)
Suggest names for the given source element.
|
static java.util.List<java.lang.String> |
suggestNamesFromCamelWord(java.lang.String shortName,
VariableNaming.VariableType variableType)
Suggest names based on the given word (in camel case).
|
public static java.lang.String format(VariableNaming.VariableType variableType, java.lang.String name)
variableType
- A variableTypename
- A namepublic static boolean canIntroduceVariable(SourceElement scopeElement, java.lang.String variableName)
variableName
name can be introduced within the scope of scopeElement
.
This method checks also for shadowed fields. If you want to allow field shadowing,
use canIntroduceVariableInScope(SourceElement,String)
instead.scopeElement
- The element whose scope should be checked, this is the scope
where the variable will be introduced.variableName
- The name of the newly introduced variable.variableName
does not already represent a variable within
the scope of scopeElement
and the variable does not shadow a field.public static VariableNaming.IntroduceVariableScopeStatus canIntroduceVariableInScope(SourceElement scopeElement, java.lang.String variableName)
variableName
name can be introduced within the scope of scopeElement
.scopeElement
- The element whose scope should be checked, this is the scope
where the variable will be introduced.variableName
- The name of the newly introduced variable.public static java.util.List<java.lang.String> suggestNamesFromCamelWord(java.lang.String shortName, VariableNaming.VariableType variableType)
shortName
- A name which is assumed to be in camel casevariableType
- If not null, a VariableType to use for formattingpublic static java.util.List<java.lang.String> suggestNames(SourceElement sourceElement, java.lang.String typeName, VariableNaming.VariableType variableType, java.lang.String currentName)
sourceElement
- get suggestions for this elementtypeName
- optional type name to get more suggestions forvariableType
- If not null, a VariableType to use for formattingcurrentName
- do not modify suggestions (e.g. add a" _2") if they clash with this namepublic static void fillWithMembers(SourceElement element, java.util.HashSet<java.lang.String> existingNames)
element
- A SourceElementexistingNames
- A HashSet for the names foundpublic static void fillWithParentVariableDeclaration(SourceElement sourceElement, java.util.HashSet<java.lang.String> existingNames)
sourceElement
- A SourceElementexistingNames
- A Set to fill with variable namespublic static java.lang.String canIntroduceField(SourceElement sourceElement, java.lang.String fieldName)
SourceElement
.
It will verify that the field name is a valid field identifier, that it does not already exist, that
there is an enclosing class scope for the SourceElement
and that it does
not override a variable in the enclosing class scope.sourceElement
- A SourceElement with an enclosing class scopefieldName
- The name of the new fieldpublic static boolean hasShadowedFieldUses(SourceElement sourceVariable, java.lang.String newVariableName)
Checks if the new name of a formal parameter or local variable would shadow a field that has uses within the paramater's or local variable's surrounding scope or any scope contained in that surrounding scope. Introduction of such a name that shadows a field could require qualifying the existing uses of the field.
Note that this checks for uses of a shadowed field. Use CanIntroduceVariableInScope to find if a variable name would shadow a field.
sourceVariable
- A formal parameter or local variablenewVariableName
- The new variable namenewVariableName
would shadow a
field with usespublic static boolean isFieldShadowing(SourceElement element, java.lang.String newVariableName)