org.eclipse.emf.codegen.ecore.generator
Class AbstractGeneratorAdapter

java.lang.Object
  extended byorg.eclipse.emf.common.notify.impl.SingletonAdapterImpl
      extended byorg.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter
All Implemented Interfaces:
Adapter, Adapter.Internal, GeneratorAdapter
Direct Known Subclasses:
GenBaseGeneratorAdapter

public abstract class AbstractGeneratorAdapter
extends SingletonAdapterImpl
implements GeneratorAdapter

Since:
2.2.0

Nested Class Summary
protected static class AbstractGeneratorAdapter.JETEmitterDescriptor
           
 
Nested classes inherited from class org.eclipse.emf.common.notify.Adapter
Adapter.Internal
 
Field Summary
protected  GeneratorAdapterFactory adapterFactory
           
protected  java.lang.Object generatingObject
           
protected  GIFEmitter[] gifEmitters
           
protected  ImportManager importManager
           
protected  JETEmitter[] jetEmitters
           
protected static java.lang.String MANIFEST_ENCODING
           
protected  java.lang.String message
           
protected static java.lang.Class[] OBJECT_ARGUMENT
           
protected static java.lang.String PROPERTIES_ENCODING
           
protected  URIConverter uriConverter
           
 
Fields inherited from class org.eclipse.emf.common.notify.impl.SingletonAdapterImpl
targets
 
Constructor Summary
AbstractGeneratorAdapter()
           
AbstractGeneratorAdapter(GeneratorAdapterFactory adapterFactory)
           
 
Method Summary
protected  void addClasspathEntries(JETEmitter jetEmitter)
           
abstract  boolean canGenerate(java.lang.Object object, java.lang.Object projectType)
           
protected  void clearImportManager()
           
protected  java.lang.Object createCodeFormatter(java.util.Map options, URI workspacePath)
           
protected  GIFEmitter createGIFEmitter(java.lang.String inputPathName)
           
protected  void createImportManager(java.lang.String packageName, java.lang.String className)
           
protected  java.io.InputStream createInputStream(URI workspacePath)
           
protected  JETEmitter createJETEmitter(AbstractGeneratorAdapter.JETEmitterDescriptor jetEmitterDescriptor)
           
protected  Monitor createMonitor(Monitor monitor, int ticks)
           
protected  java.io.OutputStream createOutputStream(URI workspacePath)
           
protected abstract  Diagnostic doGenerate(java.lang.Object object, java.lang.Object projectType, Monitor monitor)
           
protected  Diagnostic doPostGenerate(java.lang.Object object, java.lang.Object projectType)
           
protected  Diagnostic doPreGenerate(java.lang.Object object, java.lang.Object projectType)
           
protected  void ensureContainerExists(URI workspacePath, Monitor monitor)
          Ensures that a container coresponding to the specified relative URI exists.
protected  void ensureProjectExists(java.lang.String workspacePath, java.lang.Object object, java.lang.Object projectType, boolean force, Monitor monitor)
          Ensures that a project, corresponding to the first segment in the specifed workspace path, exists.
protected  boolean exists(URI workspacePath)
           
protected  java.lang.String formatCode(java.lang.String contents, java.lang.Object codeFormatter)
          If non-null, use the specified code formatter to format the given compilation unit contents.
 Diagnostic generate(java.lang.Object object, java.lang.Object projectType, Monitor monitor)
           
protected  void generateGIF(java.lang.String targetPathName, GIFEmitter gifEmitter, java.lang.String parentKey, java.lang.String childKey, boolean overwrite, Monitor monitor)
           
protected  void generateJava(java.lang.String targetPath, java.lang.String packageName, java.lang.String className, JETEmitter jetEmitter, java.lang.Object[] arguments, Monitor monitor)
           
protected  void generateProperties(java.lang.String targetPathName, JETEmitter jetEmitter, java.lang.Object[] arguments, Monitor monitor)
           
protected  void generateText(java.lang.String targetPathName, JETEmitter jetEmitter, java.lang.Object[] arguments, boolean overwrite, java.lang.String encoding, Monitor monitor)
           
 GeneratorAdapterFactory getAdapterFactory()
           
 java.util.Collection getCanGenerateChildren(java.lang.Object object, java.lang.Object projectType)
           
 java.lang.Object getCanGenerateParent(java.lang.Object object, java.lang.Object projectType)
           
protected  java.lang.String getContents(URI workspacePath, java.lang.String encoding)
           
protected  java.lang.String getEncoding(URI workspacePath)
           
 java.util.Collection getGenerateChildren(java.lang.Object object, java.lang.Object projectType)
           
 java.lang.Object getGenerateParent(java.lang.Object object, java.lang.Object projectType)
           
protected  Generator getGenerator()
           
protected  GIFEmitter getGIFEmitter(java.lang.String[] inputPathNames, int id)
           
protected  ImportManager getImportManager()
           
protected  JETEmitter getJETEmitter(AbstractGeneratorAdapter.JETEmitterDescriptor[] jetEmitterDescriptors, int id)
           
protected  URIConverter getURIConverter()
           
 boolean isAdapterForType(java.lang.Object type)
          Returns false
protected  boolean isReadOnly(URI workspacePath)
           
 Diagnostic postGenerate(java.lang.Object object, java.lang.Object projectType)
           
 Diagnostic preGenerate(java.lang.Object object, java.lang.Object projectType)
           
 void setAdapterFactory(GeneratorAdapterFactory adapterFactory)
           
protected  void setStaticTemplateClass(JETEmitter jetEmitter, java.lang.String className)
           
protected  void setWriteable(URI workspacePath)
           
protected  Diagnostic toDiagnostic(java.lang.Exception exception, java.lang.String currentMessage)
           
protected  URI toPlatformResourceURI(URI uri)
           
protected  URI toURI(java.lang.String pathName)
           
protected  boolean validateEdit(URI workspacePath, Monitor monitor)
           
 
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

MANIFEST_ENCODING

protected static final java.lang.String MANIFEST_ENCODING
See Also:
Constant Field Values

PROPERTIES_ENCODING

protected static final java.lang.String PROPERTIES_ENCODING
See Also:
Constant Field Values

adapterFactory

protected GeneratorAdapterFactory adapterFactory

generatingObject

protected java.lang.Object generatingObject

message

protected java.lang.String message

jetEmitters

protected JETEmitter[] jetEmitters

gifEmitters

protected GIFEmitter[] gifEmitters

importManager

protected ImportManager importManager

uriConverter

protected URIConverter uriConverter

OBJECT_ARGUMENT

protected static final java.lang.Class[] OBJECT_ARGUMENT
Constructor Detail

AbstractGeneratorAdapter

public AbstractGeneratorAdapter()

AbstractGeneratorAdapter

public AbstractGeneratorAdapter(GeneratorAdapterFactory adapterFactory)
Method Detail

getAdapterFactory

public GeneratorAdapterFactory getAdapterFactory()
Specified by:
getAdapterFactory in interface GeneratorAdapter

setAdapterFactory

public void setAdapterFactory(GeneratorAdapterFactory adapterFactory)
Specified by:
setAdapterFactory in interface GeneratorAdapter

isAdapterForType

public boolean isAdapterForType(java.lang.Object type)
Description copied from class: SingletonAdapterImpl
Returns false

Specified by:
isAdapterForType in interface Adapter
Overrides:
isAdapterForType in class SingletonAdapterImpl
Parameters:
type - the type.
Returns:
false

getCanGenerateChildren

public java.util.Collection getCanGenerateChildren(java.lang.Object object,
                                                   java.lang.Object projectType)
Specified by:
getCanGenerateChildren in interface GeneratorAdapter

getCanGenerateParent

public java.lang.Object getCanGenerateParent(java.lang.Object object,
                                             java.lang.Object projectType)
Specified by:
getCanGenerateParent in interface GeneratorAdapter

canGenerate

public abstract boolean canGenerate(java.lang.Object object,
                                    java.lang.Object projectType)
Specified by:
canGenerate in interface GeneratorAdapter

getGenerateChildren

public java.util.Collection getGenerateChildren(java.lang.Object object,
                                                java.lang.Object projectType)
Specified by:
getGenerateChildren in interface GeneratorAdapter

getGenerateParent

public java.lang.Object getGenerateParent(java.lang.Object object,
                                          java.lang.Object projectType)
Specified by:
getGenerateParent in interface GeneratorAdapter

preGenerate

public final Diagnostic preGenerate(java.lang.Object object,
                                    java.lang.Object projectType)
Specified by:
preGenerate in interface GeneratorAdapter

doPreGenerate

protected Diagnostic doPreGenerate(java.lang.Object object,
                                   java.lang.Object projectType)

generate

public final Diagnostic generate(java.lang.Object object,
                                 java.lang.Object projectType,
                                 Monitor monitor)
Specified by:
generate in interface GeneratorAdapter

doGenerate

protected abstract Diagnostic doGenerate(java.lang.Object object,
                                         java.lang.Object projectType,
                                         Monitor monitor)
                                  throws java.lang.Exception
Throws:
java.lang.Exception

postGenerate

public final Diagnostic postGenerate(java.lang.Object object,
                                     java.lang.Object projectType)
Specified by:
postGenerate in interface GeneratorAdapter

doPostGenerate

protected Diagnostic doPostGenerate(java.lang.Object object,
                                    java.lang.Object projectType)

toDiagnostic

protected Diagnostic toDiagnostic(java.lang.Exception exception,
                                  java.lang.String currentMessage)

getGenerator

protected Generator getGenerator()

getJETEmitter

protected JETEmitter getJETEmitter(AbstractGeneratorAdapter.JETEmitterDescriptor[] jetEmitterDescriptors,
                                   int id)

createJETEmitter

protected JETEmitter createJETEmitter(AbstractGeneratorAdapter.JETEmitterDescriptor jetEmitterDescriptor)

setStaticTemplateClass

protected void setStaticTemplateClass(JETEmitter jetEmitter,
                                      java.lang.String className)

addClasspathEntries

protected void addClasspathEntries(JETEmitter jetEmitter)
                            throws JETException
Throws:
JETException

getGIFEmitter

protected GIFEmitter getGIFEmitter(java.lang.String[] inputPathNames,
                                   int id)

createGIFEmitter

protected GIFEmitter createGIFEmitter(java.lang.String inputPathName)

generateText

protected void generateText(java.lang.String targetPathName,
                            JETEmitter jetEmitter,
                            java.lang.Object[] arguments,
                            boolean overwrite,
                            java.lang.String encoding,
                            Monitor monitor)

generateProperties

protected void generateProperties(java.lang.String targetPathName,
                                  JETEmitter jetEmitter,
                                  java.lang.Object[] arguments,
                                  Monitor monitor)

generateGIF

protected void generateGIF(java.lang.String targetPathName,
                           GIFEmitter gifEmitter,
                           java.lang.String parentKey,
                           java.lang.String childKey,
                           boolean overwrite,
                           Monitor monitor)

generateJava

protected void generateJava(java.lang.String targetPath,
                            java.lang.String packageName,
                            java.lang.String className,
                            JETEmitter jetEmitter,
                            java.lang.Object[] arguments,
                            Monitor monitor)

toURI

protected URI toURI(java.lang.String pathName)

toPlatformResourceURI

protected URI toPlatformResourceURI(URI uri)

createMonitor

protected Monitor createMonitor(Monitor monitor,
                                int ticks)

createImportManager

protected void createImportManager(java.lang.String packageName,
                                   java.lang.String className)

clearImportManager

protected void clearImportManager()

getImportManager

protected ImportManager getImportManager()

ensureProjectExists

protected void ensureProjectExists(java.lang.String workspacePath,
                                   java.lang.Object object,
                                   java.lang.Object projectType,
                                   boolean force,
                                   Monitor monitor)
Ensures that a project, corresponding to the first segment in the specifed workspace path, exists. If the project does not exist, a default project will be created. If it does exist and force is true, it will be reconfigured to match the default configuration. The remainder of the path suggests the folder under which source will be generated.

In a standalone scenario, this method does nothing, since simply opening a stream via a URIConverter will automatically create the necessary directories.


ensureContainerExists

protected void ensureContainerExists(URI workspacePath,
                                     Monitor monitor)
Ensures that a container coresponding to the specified relative URI exists. The URI represents a workspace path for which the project must already exist, since this method doesn't have the necessary information to set up a project. This method will create nested folders within the project, if possible.

In a standalone scenario, this method does nothing, since simply opening a stream via a URIConverter will automatically create the necessary directories.


getURIConverter

protected URIConverter getURIConverter()

exists

protected boolean exists(URI workspacePath)

isReadOnly

protected boolean isReadOnly(URI workspacePath)

setWriteable

protected void setWriteable(URI workspacePath)
                     throws java.lang.Exception
Throws:
java.lang.Exception

validateEdit

protected boolean validateEdit(URI workspacePath,
                               Monitor monitor)

createInputStream

protected java.io.InputStream createInputStream(URI workspacePath)
                                         throws java.lang.Exception
Throws:
java.lang.Exception

createOutputStream

protected java.io.OutputStream createOutputStream(URI workspacePath)
                                           throws java.lang.Exception
Throws:
java.lang.Exception

getContents

protected java.lang.String getContents(URI workspacePath,
                                       java.lang.String encoding)
                                throws java.lang.Exception
Throws:
java.lang.Exception

getEncoding

protected java.lang.String getEncoding(URI workspacePath)

createCodeFormatter

protected java.lang.Object createCodeFormatter(java.util.Map options,
                                               URI workspacePath)

formatCode

protected java.lang.String formatCode(java.lang.String contents,
                                      java.lang.Object codeFormatter)
If non-null, use the specified code formatter to format the given compilation unit contents.


Copyright 2001-2006 IBM Corporation and others.
All Rights Reserved.