public class ConvertedClassName
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private static class |
ConvertedClassName.Method
Abstracts a method name in a Java class.
|
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
cls
Simple class name with no package prefix.
|
private ClassDefinition |
clsDef
The class definition computed during parsing.
|
private java.util.Map<java.lang.String,java.lang.Long> |
extents
Map of legacy variable extents (legacy name to extent).
|
private java.util.Set<ConvertedClassName.Method> |
jMethods
Quick mechanism to check if a converted Java method name is already in use.
|
private java.util.Set<java.lang.String> |
jvariables
Quick mechanism to check if a converted Java variable name is already in use.
|
private java.util.Map<java.lang.String,java.lang.String> |
methods
Map of legacy method names (lowercase) to converted Java names.
|
private java.lang.String |
pkg
Full package name in dotted form.
|
private java.util.Map<java.lang.String,java.lang.String> |
variables
Map of legacy variable names (lowercase) to converted Java names.
|
Constructor and Description |
---|
ConvertedClassName(ClassDefinition clsDef,
java.lang.String pkg,
java.lang.String cls)
Constructs a
ConvertedClassName instance using Strings representing the package and
class. |
ConvertedClassName(java.lang.String javaCls)
Create a new mapping for a Java class.
|
ConvertedClassName(java.lang.String pkg,
java.lang.String cls)
Constructs a
ConvertedClassName instance using Strings representing the package and
class. |
Modifier and Type | Method and Description |
---|---|
void |
addMethod(java.lang.String legacy,
java.lang.String name,
Aast mAst)
Add a method mapping.
|
void |
addMethod(java.lang.String legacy,
java.lang.String name,
java.lang.Long mAstId)
Add a method mapping.
|
void |
addMethod(java.lang.String legacy,
java.lang.String name,
ParameterKey[] signature)
Add a method mapping.
|
void |
addVariable(java.lang.String legacy,
java.lang.String name)
Add a variable mapping.
|
void |
addVariable(java.lang.String legacy,
java.lang.String name,
java.lang.Long extent)
Add a variable mapping.
|
java.lang.String |
disambiguateLegacyPropertyName(java.lang.String prefix,
java.lang.String pname)
Checks if the given name already exists as a legacy method, if so it calculates a unique
name.
|
java.lang.String |
getClassName()
Returns the simple class name of the target object.
|
java.lang.String |
getConvertedMethodName(java.lang.String legacy,
Aast mAst)
Get the converted java method name for a method - this ensures the same Java name is used
for methods which are overridden, across the entire converted legacy classes.
|
java.lang.String |
getConvertedMethodName(java.lang.String legacySig,
java.lang.String javaSig)
Get the Java method name for a legacy signature.
|
java.lang.String |
getMethod(java.lang.String legacy)
Get the converted java name for the given legacy name.
|
java.lang.String |
getMethodForProperty(java.lang.String prefix,
java.lang.String pname)
Get the converted java name for the given legacy property and prefix.
|
java.util.Map<java.lang.String,java.lang.String> |
getMethods()
Get the defined method mappings.
|
java.lang.String |
getPackage()
Returns the package name.
|
java.lang.String |
getQualifiedName()
Returns the fully qualified class name including package in dotted notation.
|
java.lang.String |
getVariable(java.lang.String legacy)
Get the converted java name for the given legacy name.
|
java.lang.Long |
getVariableExtent(java.lang.String legacy)
Get the extent value for the given variable.
|
java.util.Map<java.lang.String,java.lang.String> |
getVariables()
Get the defined variable mappings.
|
boolean |
isMethodNameConflict(java.lang.String jName,
Aast mAst)
Check if the proposed converted java name already exists for the methods namespace.
|
boolean |
isVariableNameConflict(java.lang.String jname)
Check if the proposed converted java name already exists for the variables namespace.
|
private final java.lang.String pkg
private final java.lang.String cls
private final java.util.Map<java.lang.String,java.lang.String> methods
private final java.util.Set<ConvertedClassName.Method> jMethods
private final java.util.Map<java.lang.String,java.lang.String> variables
private final java.util.Set<java.lang.String> jvariables
private final java.util.Map<java.lang.String,java.lang.Long> extents
private ClassDefinition clsDef
public ConvertedClassName(java.lang.String javaCls) throws java.lang.ClassNotFoundException
javaCls
- The qualified Java class name.java.lang.ClassNotFoundException
- If the Java class can not be found.public ConvertedClassName(java.lang.String pkg, java.lang.String cls)
ConvertedClassName
instance using Strings representing the package and
class.pkg
- Full package in dotted notation.cls
- Simple class name, no package.public ConvertedClassName(ClassDefinition clsDef, java.lang.String pkg, java.lang.String cls)
ConvertedClassName
instance using Strings representing the package and
class.clsDef
- The associated class definition.pkg
- Full package in dotted notation.cls
- Simple class name, no package.public java.lang.String getClassName()
public java.lang.String getPackage()
public java.lang.String getQualifiedName()
public void addMethod(java.lang.String legacy, java.lang.String name, Aast mAst)
legacy
- The legacy name.name
- The converted java name.mAst
- Method AST node. It is used only to read the list of parameters in order to allow
overloaded method keep the same name.public void addMethod(java.lang.String legacy, java.lang.String name, ParameterKey[] signature)
legacy
- The legacy name.name
- The converted java name.signature
- The method signature.public void addMethod(java.lang.String legacy, java.lang.String name, java.lang.Long mAstId)
legacy
- The legacy name.name
- The converted java name.mAstId
- The AST ID for this method definition, from where the signature will be computed.public java.lang.String getConvertedMethodName(java.lang.String legacy, Aast mAst)
Legacy methods for which there are collisions with the converted Java signatures, the names are made unique, but still ensuring that any overridden versions will reuse the same name.
legacy
- The legacy name.mAst
- The method definition AST.public java.lang.String getConvertedMethodName(java.lang.String legacySig, java.lang.String javaSig)
legacySig
- The legacy signature.javaSig
- The converted Java signature.null
if none was computed yet.public java.util.Map<java.lang.String,java.lang.String> getMethods()
methods
.public java.lang.String getMethod(java.lang.String legacy)
legacy
- The legacy method name.null
if it doesn't exist.public boolean isMethodNameConflict(java.lang.String jName, Aast mAst)
jName
- The proposed converted name.mAst
- Method AST node. It is used only to read the list of parameters in order to allow
overloaded method keep th same name.true
if the name is already in use.public java.lang.String disambiguateLegacyPropertyName(java.lang.String prefix, java.lang.String pname)
prefix
- The getter, setter or extent prefix to use for the property method name.pname
- The legacy method name for the given property.public java.lang.String getMethodForProperty(java.lang.String prefix, java.lang.String pname)
prefix
- The getter, setter or extent prefix to use for the property method name.pname
- The legacy method name for the given property.null
if it doesn't exist.public void addVariable(java.lang.String legacy, java.lang.String name)
legacy
- The legacy name.name
- The converted java name.public void addVariable(java.lang.String legacy, java.lang.String name, java.lang.Long extent)
legacy
- The legacy name.name
- The converted java name.extent
- The variable's extent.public java.util.Map<java.lang.String,java.lang.String> getVariables()
variables
.public java.lang.String getVariable(java.lang.String legacy)
legacy
- The legacy variable name.null
if it doesn't exist.public boolean isVariableNameConflict(java.lang.String jname)
jname
- The proposed converted name.true
if the name is already in use.public java.lang.Long getVariableExtent(java.lang.String legacy)
legacy
- The legacy variable name.null
if this is a scalar var.