org.eclipse.ocl.examples.autogen.java
Class AutoCodeGenerator

java.lang.Object
  extended by org.eclipse.ocl.examples.codegen.generator.AbstractCodeGenerator
      extended by org.eclipse.ocl.examples.codegen.java.JavaCodeGenerator
          extended by org.eclipse.ocl.examples.autogen.java.AutoCodeGenerator
All Implemented Interfaces:
CodeGenerator

public class AutoCodeGenerator
extends JavaCodeGenerator

AutoCodeGenerator supports generation of the content of a JavaClassFile to execute a Auto transformation.


Field Summary
protected  Package asPackage
           
protected  Package asSuperPackage
           
protected  AutoAnalyzer cgAnalyzer
           
protected  java.util.Map<java.lang.String,CGPackage> externalPackages
           
protected  org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel
           
protected  org.eclipse.emf.codegen.ecore.genmodel.GenPackage genPackage
           
protected  java.lang.String projectName
           
protected  java.lang.String projectPrefix
           
protected  java.lang.String superManualVisitorPackage
           
protected  java.lang.String superProjectPrefix
           
protected  java.lang.String superVisitorClass
           
protected  java.lang.String visitorClass
           
protected  java.lang.String visitorPackage
           
 
Fields inherited from class org.eclipse.ocl.examples.codegen.java.JavaCodeGenerator
javaPrimitiveClasses, javaPrimitiveNames, knownClasses
 
Fields inherited from class org.eclipse.ocl.examples.codegen.generator.AbstractCodeGenerator
genModelHelper, metaModelManager, nameManager, ORG_ECLIPSE_JDT_ANNOTATION_NON_NULL, ORG_ECLIPSE_JDT_ANNOTATION_NULLABLE
 
Constructor Summary
AutoCodeGenerator(MetaModelManager metaModelManager, Package asPackage, Package asSuperPackage, org.eclipse.emf.codegen.ecore.genmodel.GenPackage genPackage, java.lang.String projectPrefix, java.lang.String projectName, java.lang.String visitorPackage, java.lang.String visitorClass, java.lang.String superProjectPrefix, java.lang.String superManualVisitorPackage, java.lang.String superVisitorClass)
           
 
Method Summary
 AnalysisVisitor createAnalysisVisitor()
           
 BoxingAnalyzer createBoxingAnalyzer()
           
 CG2JavaPreVisitor createCG2JavaPreVisitor()
           
protected  CGPackage createCGPackage()
           
 DependencyVisitor createDependencyVisitor()
           
 FieldingAnalyzer createFieldingAnalyzer()
           
protected  AutoGlobalContext createGlobalContext()
           
protected  AutoCodeGenOptions createOptions()
           
 ReferencesVisitor createReferencesVisitor()
           
static void generate(org.eclipse.emf.codegen.ecore.genmodel.GenPackage genPackage, java.lang.String projectPrefix, java.lang.String projectName, java.lang.String visitorPackage, java.lang.String visitorClass, java.lang.String superProjectPrefix, java.lang.String superProjectName, java.lang.String superVisitorClass)
           
 java.lang.String generateClassFile()
           
 AutoAnalyzer getAnalyzer()
           
protected  java.lang.String getAutoVisitorClassName(java.lang.String prefix)
           
 AutoCGModelResourceFactory getCGResourceFactory()
           
protected  java.lang.String getCS2ASVisitorPackageName(java.lang.String visitorsPackageName)
           
protected  CGClass getExternalClass(java.lang.Class<?> javaClass, CGClass... javaGenerics)
           
protected  CGClass getExternalClass(java.lang.String packageName, java.lang.String className, boolean isInterface)
           
 AutoGlobalContext getGlobalContext()
           
protected  java.lang.String getManualVisitorClassName(java.lang.String prefix)
           
 AutoCodeGenOptions getOptions()
           
 java.lang.String getQualifiedName()
           
 void saveSourceFile()
           
 
Methods inherited from class org.eclipse.ocl.examples.codegen.java.JavaCodeGenerator
createCommonSubexpressionEliminator, createGenModelHelper, createId2BoxedDescriptorVisitor, createId2EClassVisitor, createNameManager, getBoxedDescriptor, getConstantsClass, getGlobalPlace, getId2BoxedDescriptorVisitor, getId2EClassVisitor, getIsNonNull, getIterationHelper, getLeastDerivedMethod, getTypeDescriptor, getTypeDescriptor, getTypeDescriptor, getUnboxedDescriptor, initPrimitive, isNonNull, isNonNull, maybePrimitive, optimize, prepareGlobals
 
Methods inherited from class org.eclipse.ocl.examples.codegen.generator.AbstractCodeGenerator
addProblem, getDefaultIndent, getGenModelHelper, getMetaModelManager, getNameManager, isFinal
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cgAnalyzer

@NonNull
protected final AutoAnalyzer cgAnalyzer

asPackage

@NonNull
protected final Package asPackage

asSuperPackage

@Nullable
protected final Package asSuperPackage

genModel

@NonNull
protected final org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel

genPackage

@NonNull
protected final org.eclipse.emf.codegen.ecore.genmodel.GenPackage genPackage

externalPackages

@NonNull
protected final java.util.Map<java.lang.String,CGPackage> externalPackages

projectPrefix

@NonNull
protected final java.lang.String projectPrefix

projectName

@NonNull
protected final java.lang.String projectName

visitorPackage

@NonNull
protected final java.lang.String visitorPackage

visitorClass

@NonNull
protected final java.lang.String visitorClass

superProjectPrefix

@Nullable
protected final java.lang.String superProjectPrefix

superManualVisitorPackage

@Nullable
protected final java.lang.String superManualVisitorPackage

superVisitorClass

@Nullable
protected final java.lang.String superVisitorClass
Constructor Detail

AutoCodeGenerator

public AutoCodeGenerator(@NonNull
                         MetaModelManager metaModelManager,
                         @NonNull
                         Package asPackage,
                         @Nullable
                         Package asSuperPackage,
                         @NonNull
                         org.eclipse.emf.codegen.ecore.genmodel.GenPackage genPackage,
                         @NonNull
                         java.lang.String projectPrefix,
                         @NonNull
                         java.lang.String projectName,
                         @NonNull
                         java.lang.String visitorPackage,
                         @NonNull
                         java.lang.String visitorClass,
                         @Nullable
                         java.lang.String superProjectPrefix,
                         @Nullable
                         java.lang.String superManualVisitorPackage,
                         @Nullable
                         java.lang.String superVisitorClass)
Method Detail

generate

public static void generate(@NonNull
                            org.eclipse.emf.codegen.ecore.genmodel.GenPackage genPackage,
                            @NonNull
                            java.lang.String projectPrefix,
                            @NonNull
                            java.lang.String projectName,
                            @NonNull
                            java.lang.String visitorPackage,
                            @NonNull
                            java.lang.String visitorClass,
                            @Nullable
                            java.lang.String superProjectPrefix,
                            @Nullable
                            java.lang.String superProjectName,
                            @Nullable
                            java.lang.String superVisitorClass)

createAnalysisVisitor

@NonNull
public AnalysisVisitor createAnalysisVisitor()
Specified by:
createAnalysisVisitor in interface CodeGenerator
Overrides:
createAnalysisVisitor in class AbstractCodeGenerator

createBoxingAnalyzer

@NonNull
public BoxingAnalyzer createBoxingAnalyzer()
Specified by:
createBoxingAnalyzer in interface CodeGenerator
Overrides:
createBoxingAnalyzer in class JavaCodeGenerator

createCG2JavaPreVisitor

@NonNull
public CG2JavaPreVisitor createCG2JavaPreVisitor()
Overrides:
createCG2JavaPreVisitor in class JavaCodeGenerator

createCGPackage

@NonNull
protected CGPackage createCGPackage()

getCGResourceFactory

@NonNull
public AutoCGModelResourceFactory getCGResourceFactory()
Overrides:
getCGResourceFactory in class JavaCodeGenerator

createDependencyVisitor

@NonNull
public DependencyVisitor createDependencyVisitor()
Specified by:
createDependencyVisitor in interface CodeGenerator
Overrides:
createDependencyVisitor in class JavaCodeGenerator

createFieldingAnalyzer

@NonNull
public FieldingAnalyzer createFieldingAnalyzer()
Specified by:
createFieldingAnalyzer in interface CodeGenerator
Overrides:
createFieldingAnalyzer in class JavaCodeGenerator

createGlobalContext

@NonNull
protected AutoGlobalContext createGlobalContext()
Overrides:
createGlobalContext in class JavaCodeGenerator

createOptions

@NonNull
protected AutoCodeGenOptions createOptions()
Overrides:
createOptions in class AbstractCodeGenerator

createReferencesVisitor

@NonNull
public ReferencesVisitor createReferencesVisitor()
Specified by:
createReferencesVisitor in interface CodeGenerator
Overrides:
createReferencesVisitor in class JavaCodeGenerator

generateClassFile

@NonNull
public java.lang.String generateClassFile()

getAnalyzer

@NonNull
public AutoAnalyzer getAnalyzer()

getExternalClass

@NonNull
protected CGClass getExternalClass(@NonNull
                                           java.lang.Class<?> javaClass,
                                           CGClass... javaGenerics)

getExternalClass

@NonNull
protected CGClass getExternalClass(@Nullable
                                           java.lang.String packageName,
                                           @NonNull
                                           java.lang.String className,
                                           boolean isInterface)

getGlobalContext

@NonNull
public AutoGlobalContext getGlobalContext()
Specified by:
getGlobalContext in interface CodeGenerator
Overrides:
getGlobalContext in class JavaCodeGenerator

getOptions

@NonNull
public AutoCodeGenOptions getOptions()
Specified by:
getOptions in interface CodeGenerator
Overrides:
getOptions in class AbstractCodeGenerator

getQualifiedName

@NonNull
public java.lang.String getQualifiedName()

saveSourceFile

public void saveSourceFile()

getAutoVisitorClassName

@NonNull
protected java.lang.String getAutoVisitorClassName(@NonNull
                                                           java.lang.String prefix)

getManualVisitorClassName

@NonNull
protected java.lang.String getManualVisitorClassName(@NonNull
                                                             java.lang.String prefix)

getCS2ASVisitorPackageName

@NonNull
protected java.lang.String getCS2ASVisitorPackageName(@NonNull
                                                              java.lang.String visitorsPackageName)