org.eclipse.ocl.examples.codegen.analyzer
Class NameManager

java.lang.Object
  extended by org.eclipse.ocl.examples.codegen.analyzer.NameManager

public class NameManager
extends java.lang.Object

A NameManager provides suggestions for names and maintains caches of used names so that model elements are consistently named without collisions.


Nested Class Summary
 class NameManager.Context
           
 
Field Summary
static java.lang.String BAG_NAME_HINT_PREFIX
           
static java.lang.String COLLECTION_NAME_HINT_PREFIX
           
static java.lang.String DEFAULT_NAME_PREFIX
           
static java.lang.String EXPRESSION_IN_OCL_NAME_HINT_PREFIX
           
static IdVisitor<java.lang.String> idVisitor
           
static java.lang.String INTEGER_NAME_HINT_PREFIX
           
static java.lang.String INVALID_NAME_HINT_PREFIX
           
static java.lang.String ITERATION_NAME_HINT_PREFIX
           
static java.lang.String OPERATION_CALL_EXP_NAME_HINT_PREFIX
           
static java.lang.String OPERATION_NAME_HINT_PREFIX
           
static java.lang.String ORDERED_SET_NAME_HINT_PREFIX
           
static java.lang.String PROPERTY_NAME_HINT_PREFIX
           
static java.lang.String RANGE_NAME_HINT_PREFIX
           
static java.lang.String REAL_NAME_HINT_PREFIX
           
static java.util.Set<java.lang.String> reservedJavaNames
          Names that will not be allocated to temporary variables.
static java.lang.String SEQUENCE_NAME_HINT_PREFIX
           
static java.lang.String SET_NAME_HINT_PREFIX
           
static java.lang.String STRING_NAME_HINT_PREFIX
           
static java.lang.String TYPE_NAME_HINT_PREFIX
           
static java.lang.String VARIABLE_DECLARATION_NAME_HINT_PREFIX
           
 
Constructor Summary
NameManager()
           
 
Method Summary
protected static void appendJavaCharacters(java.lang.StringBuilder s, java.lang.String string)
           
protected static void appendJavaCharacters(java.lang.StringBuilder s, java.lang.String string, int iMax)
           
 NameManager.Context createNestedContext()
           
 java.lang.String getExplicitName(java.lang.Object anObject)
           
 java.lang.String getGlobalSymbolName(java.lang.Object anObject, java.lang.String... nameHints)
           
protected  java.lang.String getGlobalUniqueName(java.lang.Object anObject, java.lang.String... nameHints)
           
protected  java.lang.String getIterationNameHint(Iteration anIteration)
           
protected  java.lang.String getKindHint(java.lang.String kind)
           
 java.lang.String getNameHint(java.lang.Object anObject)
          Return a suggestion for the name of anObject.
protected  java.lang.String getNumericNameHint(java.lang.Number aNumber)
           
protected  java.lang.String getOperationCallExpNameHint(Operation anOperation)
           
protected  java.lang.String getOperationNameHint(Operation anOperation)
           
protected  java.lang.String getPropertyNameHint(Property aProperty)
           
protected  java.lang.String getStringNameHint(java.lang.String aString)
           
protected  java.lang.String getTypeNameHint(DomainType aType)
           
protected  java.lang.String getVariableDeclarationNameHint(VariableDeclaration aVariableDeclaration)
           
 java.lang.String reserveName(java.lang.String name, java.lang.Object anObject)
          Reserve name for use by anObject.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BAG_NAME_HINT_PREFIX

public static final java.lang.String BAG_NAME_HINT_PREFIX
See Also:
Constant Field Values

COLLECTION_NAME_HINT_PREFIX

public static final java.lang.String COLLECTION_NAME_HINT_PREFIX
See Also:
Constant Field Values

DEFAULT_NAME_PREFIX

public static final java.lang.String DEFAULT_NAME_PREFIX
See Also:
Constant Field Values

EXPRESSION_IN_OCL_NAME_HINT_PREFIX

public static final java.lang.String EXPRESSION_IN_OCL_NAME_HINT_PREFIX
See Also:
Constant Field Values

INTEGER_NAME_HINT_PREFIX

public static final java.lang.String INTEGER_NAME_HINT_PREFIX
See Also:
Constant Field Values

INVALID_NAME_HINT_PREFIX

public static final java.lang.String INVALID_NAME_HINT_PREFIX
See Also:
Constant Field Values

ITERATION_NAME_HINT_PREFIX

public static final java.lang.String ITERATION_NAME_HINT_PREFIX
See Also:
Constant Field Values

OPERATION_NAME_HINT_PREFIX

public static final java.lang.String OPERATION_NAME_HINT_PREFIX
See Also:
Constant Field Values

OPERATION_CALL_EXP_NAME_HINT_PREFIX

public static final java.lang.String OPERATION_CALL_EXP_NAME_HINT_PREFIX
See Also:
Constant Field Values

ORDERED_SET_NAME_HINT_PREFIX

public static final java.lang.String ORDERED_SET_NAME_HINT_PREFIX
See Also:
Constant Field Values

PROPERTY_NAME_HINT_PREFIX

public static final java.lang.String PROPERTY_NAME_HINT_PREFIX
See Also:
Constant Field Values

REAL_NAME_HINT_PREFIX

public static final java.lang.String REAL_NAME_HINT_PREFIX
See Also:
Constant Field Values

RANGE_NAME_HINT_PREFIX

public static final java.lang.String RANGE_NAME_HINT_PREFIX
See Also:
Constant Field Values

SEQUENCE_NAME_HINT_PREFIX

public static final java.lang.String SEQUENCE_NAME_HINT_PREFIX
See Also:
Constant Field Values

SET_NAME_HINT_PREFIX

public static final java.lang.String SET_NAME_HINT_PREFIX
See Also:
Constant Field Values

STRING_NAME_HINT_PREFIX

public static final java.lang.String STRING_NAME_HINT_PREFIX
See Also:
Constant Field Values

TYPE_NAME_HINT_PREFIX

public static final java.lang.String TYPE_NAME_HINT_PREFIX
See Also:
Constant Field Values

VARIABLE_DECLARATION_NAME_HINT_PREFIX

public static final java.lang.String VARIABLE_DECLARATION_NAME_HINT_PREFIX
See Also:
Constant Field Values

reservedJavaNames

public static final java.util.Set<java.lang.String> reservedJavaNames
Names that will not be allocated to temporary variables.

This Set is public and unsynchronized. Clients may change it in arbitrary ways at their own risk.

It is strongly recommended that clients do no more than add additional names.


idVisitor

@NonNull
public static IdVisitor<java.lang.String> idVisitor
Constructor Detail

NameManager

public NameManager()
Method Detail

appendJavaCharacters

protected static void appendJavaCharacters(java.lang.StringBuilder s,
                                           java.lang.String string)

appendJavaCharacters

protected static void appendJavaCharacters(java.lang.StringBuilder s,
                                           java.lang.String string,
                                           int iMax)

createNestedContext

@NonNull
public NameManager.Context createNestedContext()

getExplicitName

@NonNull
public java.lang.String getExplicitName(@Nullable
                                                java.lang.Object anObject)

getGlobalSymbolName

@NonNull
public java.lang.String getGlobalSymbolName(@Nullable
                                                    java.lang.Object anObject,
                                                    @Nullable
                                                    java.lang.String... nameHints)

getGlobalUniqueName

@NonNull
protected java.lang.String getGlobalUniqueName(@Nullable
                                                       java.lang.Object anObject,
                                                       @Nullable
                                                       java.lang.String... nameHints)

getIterationNameHint

protected java.lang.String getIterationNameHint(@NonNull
                                                Iteration anIteration)

getKindHint

protected java.lang.String getKindHint(@NonNull
                                       java.lang.String kind)

getNameHint

@Nullable
public java.lang.String getNameHint(@NonNull
                                             java.lang.Object anObject)
Return a suggestion for the name of anObject.

The returned name is not guaranteed to be unique. Uniqueness is enforced when the hint is passed to getSymbolName().


getNumericNameHint

protected java.lang.String getNumericNameHint(@NonNull
                                              java.lang.Number aNumber)

getOperationNameHint

protected java.lang.String getOperationNameHint(@NonNull
                                                Operation anOperation)

getOperationCallExpNameHint

protected java.lang.String getOperationCallExpNameHint(@NonNull
                                                       Operation anOperation)

getPropertyNameHint

protected java.lang.String getPropertyNameHint(@NonNull
                                               Property aProperty)

getStringNameHint

protected java.lang.String getStringNameHint(@NonNull
                                             java.lang.String aString)

getTypeNameHint

protected java.lang.String getTypeNameHint(@NonNull
                                           DomainType aType)

getVariableDeclarationNameHint

protected java.lang.String getVariableDeclarationNameHint(@NonNull
                                                          VariableDeclaration aVariableDeclaration)

reserveName

@NonNull
public java.lang.String reserveName(@NonNull
                                            java.lang.String name,
                                            @Nullable
                                            java.lang.Object anObject)
Reserve name for use by anObject. If anObject is null, the reservation is for an unspecified object not for the null value.