org.eclipse.ocl.examples.codegen.oclinecore
Class OCLinEcoreGenModelGeneratorAdapter

java.lang.Object
  extended by org.eclipse.emf.common.notify.impl.SingletonAdapterImpl
      extended by org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter
          extended by org.eclipse.emf.codegen.ecore.genmodel.generator.GenBaseGeneratorAdapter
              extended by org.eclipse.ocl.examples.codegen.oclinecore.OCLinEcoreGenModelGeneratorAdapter
All Implemented Interfaces:
org.eclipse.emf.codegen.ecore.generator.GeneratorAdapter, org.eclipse.emf.common.notify.Adapter, org.eclipse.emf.common.notify.Adapter.Internal

public class OCLinEcoreGenModelGeneratorAdapter
extends org.eclipse.emf.codegen.ecore.genmodel.generator.GenBaseGeneratorAdapter


Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter
org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter.AttributeData, org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter.ExtensionData, org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter.JETEmitterDescriptor
 
Nested classes/interfaces inherited from interface org.eclipse.emf.common.notify.Adapter
org.eclipse.emf.common.notify.Adapter.Internal
 
Field Summary
static java.lang.String OCL_GENMODEL_URI
           
static java.lang.String USE_DELEGATES_KEY
           
static java.lang.String USE_NULL_ANNOTATIONS_KEY
           
 
Fields inherited from class org.eclipse.emf.codegen.ecore.genmodel.generator.GenBaseGeneratorAdapter
EDIT_PROJECT_TYPE, EDITOR_PROJECT_TYPE, MODEL_PROJECT_TYPE, TESTS_PROJECT_TYPE
 
Fields inherited from class org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter
adapterFactory, BLANK_LINES_PATTERN, CONTINUATION_PATTERN, EXTENSION_POINT_PATTERN, GENERATED_PATTERN, generatingObject, gifEmitters, HEADER_PATTERN, importManager, jetEmitters, lineDelimiter, MANIFEST_ENCODING, message, OBJECT_ARGUMENT, PLUGIN_END_TAG_PATTERN, PROPERTIES_ENCODING, uriConverter, VERSION_PATTERN
 
Fields inherited from class org.eclipse.emf.common.notify.impl.SingletonAdapterImpl
targets
 
Constructor Summary
OCLinEcoreGenModelGeneratorAdapter(OCLinEcoreGeneratorAdapterFactory generatorAdapterFactory)
           
 
Method Summary
protected  void convertConstraintsToOperations(MetaModelManager metaModelManager, org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)
           
protected  void convertConstraintToOperation(Ecore2Pivot ecore2pivot, org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel, org.eclipse.emf.ecore.EClassifier eClassifier, java.lang.String key, java.lang.String body, java.lang.String message)
           
protected  void createDispatchTables(org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel, org.eclipse.emf.common.util.Monitor monitor)
           
protected  java.util.Map<java.lang.String,java.lang.String> createFeatureBodies(org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)
          Create a Map of feature identification to body to be embedded in the EMF model.
protected  org.eclipse.emf.common.util.Diagnostic doPreGenerate(java.lang.Object object, java.lang.Object projectType)
           
protected  org.eclipse.emf.common.util.Diagnostic generateModel(java.lang.Object object, org.eclipse.emf.common.util.Monitor monitor)
           
protected  java.lang.String getLineDelimiter(org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)
          Deduce the required line delimiter from the usage in the .project file.
protected  java.io.File getProjectFolder(org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)
           
protected  boolean hasConstraints(Class pivotClass)
           
protected  boolean hasDelegates(org.eclipse.emf.ecore.EPackage ePackage)
           
protected  boolean hasDelegates(org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)
          Return true if any local GenPackage is for an EPackage that has OCL validation/setting/invocation delegates.
protected  void installJavaBodies(MetaModelManager metaModelManager, org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel, java.util.Map<java.lang.String,java.lang.String> results)
           
protected  void installOperation(Ecore2Pivot ecore2pivot, org.eclipse.emf.ecore.EOperation eOperation, java.util.Map<java.lang.String,java.lang.String> results)
           
protected  void installProperty(Ecore2Pivot ecore2pivot, org.eclipse.emf.ecore.EStructuralFeature eFeature, java.util.Map<java.lang.String,java.lang.String> results)
           
protected  void pruneDelegates(org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)
          Eliminate all OCL validation/setting/invocation delegates.
protected  java.util.List<java.lang.String> pruneDelegates(java.util.List<java.lang.String> oldDelegates)
           
static boolean useDelegates(org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)
          Return true if the genModel has a OCL_GENMODEL_URI GenAnnotation with a USE_DELEGATES_KEY detail set to true, or if there is no such GenAnnotation and the global preference CommonOptions.CODE_GENERATION_MODE has been set to CodeGenerationMode.DELEGATED
static boolean useNullAnnotations(org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)
          Return true if the genModel has a OCL_GENMODEL_URI GenAnnotation with a USE_NULL_ANNOTATIONS_KEY detail set to true.
 
Methods inherited from class org.eclipse.emf.codegen.ecore.genmodel.generator.GenBaseGeneratorAdapter
addBaseTemplatePathEntries, addClasspathEntries, canGenerate, canGenerateEdit, canGenerateEditor, canGenerateModel, canGenerateTests, clearImportManager, createImportManager, doGenerate, ensureProjectExists, generateEdit, generateEditor, generateTests, getGenerateChildren, getGenerateEditChildren, getGenerateEditorChildren, getGenerateModelChildren, getGenerateTestsChildren, getParent, getUserTemplatePath, setLineDelimiter
 
Methods inherited from class org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter
createCodeFormatter, createGIFEmitter, createInputStream, createJETEmitter, createMonitor, createOutputStream, doPostGenerate, ensureContainerExists, exists, formatCode, formatCode, generate, generateGIF, generateJava, generateProperties, generateText, getAdapterFactory, getAttributeData, getCanGenerateChildren, getCanGenerateParent, getContents, getEncoding, getExtensionData, getGenerateParent, getGenerator, getGIFEmitter, getImportManager, getJETEmitter, getLineDelimiter, getLineDelimiter, getURIConverter, isAdapterForType, isReadOnly, mergeManifest, mergePluginXML, organizeImports, postGenerate, preGenerate, setAdapterFactory, setStaticTemplateClass, setStaticTemplateClass, setWriteable, shouldMerge, toDiagnostic, toPlatformResourceURI, toURI, validateEdit
 
Methods inherited from class org.eclipse.emf.common.notify.impl.SingletonAdapterImpl
dispose, getTarget, notifyChanged, setTarget, unsetTarget
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.emf.codegen.ecore.generator.GeneratorAdapter
dispose
 

Field Detail

OCL_GENMODEL_URI

@NonNull
public static final java.lang.String OCL_GENMODEL_URI
See Also:
Constant Field Values

USE_DELEGATES_KEY

@NonNull
public static final java.lang.String USE_DELEGATES_KEY
See Also:
Constant Field Values

USE_NULL_ANNOTATIONS_KEY

@NonNull
public static final java.lang.String USE_NULL_ANNOTATIONS_KEY
See Also:
Constant Field Values
Constructor Detail

OCLinEcoreGenModelGeneratorAdapter

public OCLinEcoreGenModelGeneratorAdapter(@NonNull
                                          OCLinEcoreGeneratorAdapterFactory generatorAdapterFactory)
Method Detail

useDelegates

public static boolean useDelegates(@NonNull
                                   org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)
Return true if the genModel has a OCL_GENMODEL_URI GenAnnotation with a USE_DELEGATES_KEY detail set to true, or if there is no such GenAnnotation and the global preference CommonOptions.CODE_GENERATION_MODE has been set to CodeGenerationMode.DELEGATED


useNullAnnotations

public static boolean useNullAnnotations(@NonNull
                                         org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)
Return true if the genModel has a OCL_GENMODEL_URI GenAnnotation with a USE_NULL_ANNOTATIONS_KEY detail set to true.


convertConstraintToOperation

protected void convertConstraintToOperation(@NonNull
                                            Ecore2Pivot ecore2pivot,
                                            @NonNull
                                            org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel,
                                            @NonNull
                                            org.eclipse.emf.ecore.EClassifier eClassifier,
                                            @NonNull
                                            java.lang.String key,
                                            @NonNull
                                            java.lang.String body,
                                            @Nullable
                                            java.lang.String message)

convertConstraintsToOperations

protected void convertConstraintsToOperations(@NonNull
                                              MetaModelManager metaModelManager,
                                              @NonNull
                                              org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)

createDispatchTables

protected void createDispatchTables(@NonNull
                                    org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel,
                                    @NonNull
                                    org.eclipse.emf.common.util.Monitor monitor)
                             throws java.io.IOException
Throws:
java.io.IOException

createFeatureBodies

@NonNull
protected java.util.Map<java.lang.String,java.lang.String> createFeatureBodies(@NonNull
                                                                                       org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)
                                                                        throws java.io.IOException
Create a Map of feature identification to body to be embedded in the EMF model.

Throws:
java.io.IOException

doPreGenerate

protected org.eclipse.emf.common.util.Diagnostic doPreGenerate(java.lang.Object object,
                                                               java.lang.Object projectType)
Overrides:
doPreGenerate in class org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter

generateModel

protected org.eclipse.emf.common.util.Diagnostic generateModel(java.lang.Object object,
                                                               org.eclipse.emf.common.util.Monitor monitor)
Overrides:
generateModel in class org.eclipse.emf.codegen.ecore.genmodel.generator.GenBaseGeneratorAdapter

getLineDelimiter

protected java.lang.String getLineDelimiter(org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)
Deduce the required line delimiter from the usage in the .project file.


getProjectFolder

@NonNull
protected java.io.File getProjectFolder(@NonNull
                                                org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)

hasConstraints

protected boolean hasConstraints(Class pivotClass)

hasDelegates

protected boolean hasDelegates(@NonNull
                               org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)
Return true if any local GenPackage is for an EPackage that has OCL validation/setting/invocation delegates.


hasDelegates

protected boolean hasDelegates(@NonNull
                               org.eclipse.emf.ecore.EPackage ePackage)

installJavaBodies

protected void installJavaBodies(@NonNull
                                 MetaModelManager metaModelManager,
                                 @NonNull
                                 org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel,
                                 @NonNull
                                 java.util.Map<java.lang.String,java.lang.String> results)

installOperation

protected void installOperation(@NonNull
                                Ecore2Pivot ecore2pivot,
                                @NonNull
                                org.eclipse.emf.ecore.EOperation eOperation,
                                @NonNull
                                java.util.Map<java.lang.String,java.lang.String> results)

installProperty

protected void installProperty(@NonNull
                               Ecore2Pivot ecore2pivot,
                               @NonNull
                               org.eclipse.emf.ecore.EStructuralFeature eFeature,
                               @NonNull
                               java.util.Map<java.lang.String,java.lang.String> results)

pruneDelegates

protected void pruneDelegates(@NonNull
                              org.eclipse.emf.codegen.ecore.genmodel.GenModel genModel)
Eliminate all OCL validation/setting/invocation delegates.


pruneDelegates

protected java.util.List<java.lang.String> pruneDelegates(@Nullable
                                                          java.util.List<java.lang.String> oldDelegates)