|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.argouml.uml.generator.Generator2
org.argouml.language.java.generator.GeneratorJava
Generator2 subclass to generate text for display in diagrams and in text fields in the Argo/UML user interface. The generated code looks a lot like (invalid) Java. The idea is that other generators could be written for other languages. This code is just a placeholder for future development, I expect it to be totally replaced.
Field Summary | |
private static String |
ANY_RANGE
|
private static boolean |
isFileGeneration
true when GenerateFile. |
private static boolean |
isInUpdateMode
true if GenerateFile in Update Mode. |
private static Set |
JAVA_TYPES
|
private static String |
LANG_PACKAGE
|
private boolean |
lfBeforeCurly
|
private static String |
LINE_SEPARATOR
|
private static Logger |
LOG
Logger. |
private static GeneratorJava |
SINGLETON
|
private static boolean |
VERBOSE_DOCS
|
private boolean |
verboseDocs
|
Fields inherited from class org.argouml.uml.generator.Generator2 |
INDENT |
Fields inherited from interface org.argouml.uml.generator.FileGenerator |
FILE_SEPARATOR |
Fields inherited from interface org.argouml.application.api.Pluggable |
PLUGIN_PREFIX, PLUGIN_TITLE, PLUGIN_VENDOR |
Fields inherited from interface org.argouml.application.api.ArgoModule |
MODULEFILENAME, MODULEFILENAME_ALTERNATE |
Constructor Summary | |
protected |
GeneratorJava()
Constructor. |
Method Summary | |
(package private) StringBuffer |
appendClassifierEnd(StringBuffer sbPrefix,
Object cls)
Append the classifier end sequence to the prefix text specified. |
private String |
generateAbstractness(Object op)
Generate "abstract" keyword for an abstract operation. |
String |
generateAction(Object m)
Generate the String representation for an Action. |
String |
generateActionState(Object actionState)
Generate the String representation for an Action State. |
(package private) String |
generateAscEndName(Object ae)
|
String |
generateAssociation(Object a)
Generate the String representation for an Association. |
String |
generateAssociationEnd(Object ae)
Generate the String representation for an AssociationEnd. |
private String |
generateAssociationFrom(Object a,
Object associationEnd)
|
String |
generateAssociationRole(Object m)
Generate the String representation for an AssociationRole. |
String |
generateAttribute(Object attr,
boolean documented)
Generate the String representation for an Attribute. |
private String |
generateChangability(Object sf)
|
private String |
generateChangeability(Object op)
Generate "final" keyword for final operations. |
String |
generateClassifier(Object cls)
Generates code for a classifier. |
private StringBuffer |
generateClassifierBody(Object cls)
Generates the body of a class or interface. |
private StringBuffer |
generateClassifierEnd(Object cls)
|
(package private) StringBuffer |
generateClassifierStart(Object cls)
Generate the start sequence for a classifier. |
private String |
generateClassList(Collection classifiers)
|
private String |
generateConcurrency(Object op)
Generates "synchronized" keyword for guarded operations. |
static String |
generateConstraintEnrichedDocComment(Object me,
boolean documented,
String indent)
Enhance/Create the doccomment for the given model element, including tags for any OCL constraints connected to the model element. |
String |
generateConstraintEnrichedDocComment(Object me,
Object ae)
Enhance/Create the doccomment for the given model element, including tags for any OCL constraints connected to the model element. |
(package private) String |
generateCoreAssociationEnd(Object ae)
|
(package private) String |
generateCoreAttribute(Object attr)
|
private String |
generateDefaultReturnStatement(Object cls)
|
String |
generateEvent(Object m)
Generates the text for a (trigger) event. |
String |
generateExtensionPoint(Object ep)
Generate code for an extension point. |
String |
generateFile2(Object modelElement,
String path)
Generates a file for the classifier. |
private String |
generateGeneralization(Collection generalizations)
|
String |
generateGuard(Object m)
Generate the String representation for a Guard. |
private String |
generateHeader(Object cls,
String pathname,
String packagePath)
|
private String |
generateImports(Object cls,
String packagePath)
|
private String |
generateImportType(Object type,
String exclude)
|
String |
generateMessage(Object m)
Generate the String representation for a Message. |
private String |
generateMethodBody(Object op)
Generate the body of a method associated with the given operation. |
String |
generateMultiplicity(Object m)
Generates a String representation of a Multiplicity. |
private String |
generateMultiplicityRange(Object mr)
|
String |
generateObjectFlowState(Object m)
Generate the String representation for a ObjectFlowState. |
String |
generateOperation(Object op,
boolean documented)
Generate the String representation for an Operation. |
String |
generatePackage(Object p)
Generate the String representation for a Package. |
String |
generateParameter(Object parameter)
Generate the String representation for a Parameter. |
private String |
generateScope(Object f)
|
private String |
generateSpecification(Object cls)
|
String |
generateState(Object m)
Generate the String representation for a State. |
String |
generateStateBody(Object m)
Generate the String representation for a StateBody. |
String |
generateSubmachine(Object m)
Generate the String representation for a Submachine. |
String |
generateTaggedValue(Object tv)
Generate the String representation for a TaggedValue. |
private String |
generateTaggedValues(Object e)
|
String |
generateTransition(Object m)
Generate the String representation for a Transition. |
String |
generateVisibility(Object o)
Returns a visibility String eihter for a MVisibilityKind (according to the definition in NotationProvider2), but also for a model element, because if it is a MFeature, then the tag 'src_visibility' is to be taken into account for generating language dependent visibilities. |
static GeneratorJava |
getInstance()
Get the generator. |
String |
getModuleAuthor()
The module author. |
String |
getModuleDescription()
Textual description of the module. |
String |
getModuleKey()
The module identifying key. |
String |
getModuleName()
Display name of the module. |
String |
getModuleVersion()
The module version. |
String |
getPackageName(Object namespace)
Gets the Java package name for a given namespace, ignoring the root namespace (which is the model). |
boolean |
inContext(Object[] o)
A function which allows a plug-in to decide if it is available under a specific context. |
boolean |
isLfBeforeCurly()
Returns the _lfBeforeCurly. |
boolean |
isModuleEnabled()
The default for any Generator is to be enabled. |
boolean |
isVerboseDocs()
Returns the _verboseDocs. |
void |
setLfBeforeCurly(boolean beforeCurl)
Sets the lfBeforeCurly. |
void |
setVerboseDocs(boolean verbose)
Sets the verboseDocs. |
private static void |
update(Object mClassifier,
File file)
Update a source code file. |
Methods inherited from class org.argouml.uml.generator.Generator2 |
generate, generateClassifierRef, generateExpression, generateName, generateStereotype, generateUninterpreted, getCodePath, getGenerator, getModulePopUpActions, getNotation, initializeModule, setModuleEnabled, shutdownModule |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private static final Logger LOG
private static final String ANY_RANGE
private boolean verboseDocs
private boolean lfBeforeCurly
private static final boolean VERBOSE_DOCS
private static final String LINE_SEPARATOR
private static final String LANG_PACKAGE
private static final Set JAVA_TYPES
private static boolean isFileGeneration
true
when GenerateFile.
private static boolean isInUpdateMode
true
if GenerateFile in Update Mode.
private static final GeneratorJava SINGLETON
Constructor Detail |
protected GeneratorJava()
Method Detail |
public static GeneratorJava getInstance()
public String generateFile2(Object modelElement, String path)
generateFile2
in interface FileGenerator
modelElement
- the nodepath
- the path
FileGenerator.generateFile2(
java.lang.Object, java.lang.String)
private String generateHeader(Object cls, String pathname, String packagePath)
private String generateImports(Object cls, String packagePath)
private String generateImportType(Object type, String exclude)
public String generateExtensionPoint(Object ep)
Provided to comply with the interface, but returns null since no code will be generated. This should prevent a source tab being shown.
generateExtensionPoint
in interface NotationProvider2
generateExtensionPoint
in class Generator2
ep
- The extension point to generate for
NotationProvider2.generateExtensionPoint(Object)
public String generateAssociationRole(Object m)
NotationProvider2
generateAssociationRole
in interface NotationProvider2
m
- Object to generate representation for.
NotationProvider2.generateAssociationRole(java.lang.Object)
public String generateOperation(Object op, boolean documented)
NotationProvider2
generateOperation
in interface NotationProvider2
generateOperation
in class Generator2
NotationProvider2.generateOperation(
java.lang.Object, boolean)
public String generateAttribute(Object attr, boolean documented)
NotationProvider2
generateAttribute
in interface NotationProvider2
generateAttribute
in class Generator2
NotationProvider2.generateAttribute(
java.lang.Object, boolean)
String generateCoreAttribute(Object attr)
public String generateParameter(Object parameter)
NotationProvider2
generateParameter
in interface NotationProvider2
generateParameter
in class Generator2
NotationProvider2.generateParameter(java.lang.Object)
public String generatePackage(Object p)
NotationProvider2
generatePackage
in interface NotationProvider2
generatePackage
in class Generator2
NotationProvider2.generatePackage(java.lang.Object)
StringBuffer generateClassifierStart(Object cls)
cls
- the classifier for which to generate the start sequence
private StringBuffer generateClassifierEnd(Object cls)
StringBuffer appendClassifierEnd(StringBuffer sbPrefix, Object cls)
sbPrefix
- the prefix text to be amended. It is OK to call append on
this parameter.cls
- the classifier for which to generate the classifier end
sequence. Only classes and interfaces have a classifier
end sequence.
public String generateClassifier(Object cls)
generateClassifier
in interface NotationProvider2
generateClassifier
in class Generator2
NotationProvider2.generateClassifier(
Object)
private StringBuffer generateClassifierBody(Object cls)
cls
-
private String generateMethodBody(Object op)
private String generateDefaultReturnStatement(Object cls)
private String generateTaggedValues(Object e)
public String generateTaggedValue(Object tv)
NotationProvider2
generateTaggedValue
in interface NotationProvider2
generateTaggedValue
in class Generator2
NotationProvider2.generateTaggedValue(java.lang.Object)
public String generateConstraintEnrichedDocComment(Object me, Object ae)
me
- the model element for which the documentation comment is neededae
- the association end which is represented by the model element
public static String generateConstraintEnrichedDocComment(Object me, boolean documented, String indent)
me
- the model element for which the documentation comment is neededdocumented
- if existing tagged values should be generated
in addition to javadocindent
- indent String (usually blanks) for indentation of
generated comments
private String generateAssociationFrom(Object a, Object associationEnd)
public String generateAssociation(Object a)
NotationProvider2
generateAssociation
in interface NotationProvider2
generateAssociation
in class Generator2
NotationProvider2.generateAssociation(java.lang.Object)
public String generateAssociationEnd(Object ae)
NotationProvider2
generateAssociationEnd
in interface NotationProvider2
generateAssociationEnd
in class Generator2
NotationProvider2.generateAssociationEnd(java.lang.Object)
String generateCoreAssociationEnd(Object ae)
private String generateGeneralization(Collection generalizations)
private String generateSpecification(Object cls)
private String generateClassList(Collection classifiers)
public String generateVisibility(Object o)
generateVisibility
in interface NotationProvider2
generateVisibility
in class Generator2
NotationProvider2.generateVisibility(java.lang.Object)
private String generateScope(Object f)
private String generateAbstractness(Object op)
private String generateChangeability(Object op)
private String generateChangability(Object sf)
private String generateConcurrency(Object op)
op
- The operation
public String generateMultiplicity(Object m)
generateMultiplicity
in interface NotationProvider2
generateMultiplicity
in class Generator2
m
- the Multiplicity.
ANY_RANGE
,
generateMultiplicityRange(Object)
private String generateMultiplicityRange(Object mr)
public String generateState(Object m)
NotationProvider2
generateState
in interface NotationProvider2
generateState
in class Generator2
NotationProvider2.generateState(java.lang.Object)
public String generateSubmachine(Object m)
NotationProvider2
generateSubmachine
in interface NotationProvider2
generateSubmachine
in class Generator2
NotationProvider2.generateSubmachine(java.lang.Object)
public String generateObjectFlowState(Object m)
NotationProvider2
generateObjectFlowState
in interface NotationProvider2
generateObjectFlowState
in class Generator2
NotationProvider2.generateObjectFlowState(java.lang.Object)
public String generateStateBody(Object m)
NotationProvider2
generateStateBody
in interface NotationProvider2
m
- Object to generate representation for.
NotationProvider2.generateStateBody(java.lang.Object)
public String generateTransition(Object m)
NotationProvider2
generateTransition
in interface NotationProvider2
generateTransition
in class Generator2
NotationProvider2.generateTransition(java.lang.Object)
public String generateAction(Object m)
NotationProvider2
generateAction
in interface NotationProvider2
generateAction
in class Generator2
NotationProvider2.generateAction(java.lang.Object)
public String generateGuard(Object m)
NotationProvider2
generateGuard
in interface NotationProvider2
generateGuard
in class Generator2
NotationProvider2.generateGuard(java.lang.Object)
public String generateMessage(Object m)
NotationProvider2
generateMessage
in interface NotationProvider2
generateMessage
in class Generator2
NotationProvider2.generateMessage(java.lang.Object)
public String generateEvent(Object m)
generateEvent
in interface NotationProvider2
generateEvent
in class Generator2
m
- Object of any MEvent kind
NotationProvider2.generateEvent(Object)
String generateAscEndName(Object ae)
public String getPackageName(Object namespace)
namespace
- the namespace
private static void update(Object mClassifier, File file) throws IOException, antlr.ANTLRException
mClassifier
- The classifier to update from.file
- The file to update.
IOException
antlr.ANTLRException
public String getModuleName()
ArgoModule
getModuleName
in interface ArgoModule
ArgoModule.getModuleName()
public String getModuleDescription()
ArgoModule
getModuleDescription
in interface ArgoModule
ArgoModule.getModuleDescription()
public String getModuleAuthor()
ArgoModule
getModuleAuthor
in interface ArgoModule
ArgoModule.getModuleAuthor()
public String getModuleVersion()
ArgoModule
getModuleVersion
in interface ArgoModule
ArgoModule.getModuleVersion()
public String getModuleKey()
ArgoModule
getModuleKey
in interface ArgoModule
ArgoModule.getModuleKey()
public boolean isLfBeforeCurly()
public boolean isVerboseDocs()
public void setLfBeforeCurly(boolean beforeCurl)
beforeCurl
- The new value.public void setVerboseDocs(boolean verbose)
verbose
- The new value.public boolean inContext(Object[] o)
Pluggable
inContext
in interface Pluggable
inContext
in class Generator2
Pluggable.inContext(java.lang.Object[])
public boolean isModuleEnabled()
Generator2
isModuleEnabled
in interface ArgoModule
isModuleEnabled
in class Generator2
ArgoModule.isModuleEnabled()
public String generateActionState(Object actionState)
NotationProvider2
generateActionState
in interface NotationProvider2
actionState
- Object to generate representation for.
NotationProvider2.generateActionState(java.lang.Object)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
ArgoUML © 1996-2004 (20050222) | ArgoUML Homepage | ArgoUML Developers' page | ArgoUML Cookbook |