|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.sandev.generator.GeneratorCommon
org.sandev.generator.FileGeneratorBase
org.sandev.generator.InstanceGeneratorBase
public class InstanceGeneratorBase
Factored common methods for instance generators. The generators responsible for creating struct message classes, node base classes, and node instance classes all have common needs in terms of declared fields and associated utilities. These are factored here for ease of use.
| Field Summary |
|---|
| Fields inherited from class org.sandev.generator.GeneratorCommon |
|---|
CONTEXT_CONFIGURATION, CONTEXT_CONTROL, CONTEXT_FRAMEWORK, CONTEXT_MESSAGING, CONTEXT_PERSISTENCE, CONTEXT_UI, DEFAULT_LINE_LENGTH, MESSAGE_INTERFACES |
| Constructor Summary | |
|---|---|
InstanceGeneratorBase()
|
|
| Method Summary | |
|---|---|
static java.lang.String |
getInstanceName(java.lang.String declName)
Given the name of a NodeDecl, return the name of the instance. |
protected java.lang.String |
getPrintnameForField(java.lang.String fieldname,
com.sun.javadoc.FieldDoc[] fields)
Given a fieldname, return the printname for it. |
void |
writeAccMut(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
boolean declOnly,
boolean writectrl)
Write out appropriate accessors and mutators for the given field. |
static void |
writeArrayAccMut(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
Write the array accessor/mutators so they do not end up being null. |
static void |
writeArrayAppend(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
Writes code to append a value to an array. |
static void |
writeArrayClear(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
Writes code to clear an array. |
static void |
writeArrayContains(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly)
Write the standard array contains test. |
static void |
writeArrayGet(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly)
Writes code to return an element from an array. |
static void |
writeArrayInsert(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
Write the standard array insertion code |
static void |
writeArrayRemove(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
Writes code to remove an element from an array. |
static void |
writeArrayRemoveIndex(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
Write the standard array removal code |
static void |
writeArraySet(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
Write the standard array element set code |
static void |
writeArraySize(java.io.PrintStream out,
java.lang.String fieldName,
boolean declOnly)
Writes code to return the size of an array |
void |
writeCloneMessage(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
Write the cloneMessage and cloneMyStruct methods. |
static void |
writeConstantsAndConversions(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
java.lang.String classname)
Write out constant values declared for this field. |
protected static void |
writeCoreValidityCheck(java.io.PrintStream out,
java.lang.String indent,
com.sun.javadoc.FieldDoc fd,
FieldTagStringlength fts,
FieldTagEnumint[] ftes,
FieldTagRange ftr)
Workhorse method for writeValidityCheck, which writes the actual checks for a single element. |
void |
writeCtorAndInit(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String name)
Write constructor and init method |
void |
writeDebugDump(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
Write the debugDump method. |
static void |
writeDecimalAccMut(java.io.PrintStream out,
FieldTagDecimalize ftd,
FieldTagFlags ftf)
Write accessor mutators to convert integer and decimal values for this field. |
static void |
writeDefaultValueAccessor(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
FieldTagEnumint[] ftes)
Write the method for accessing the field default value. |
void |
writeDisplayCode(java.io.PrintStream out,
com.sun.javadoc.ClassDoc cd,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname,
StructTagSummaryfields sts)
Write the getDisplayFields and getDisplayValues methods. |
static void |
writeEnumintBools(java.io.PrintStream out,
FieldTagEnumint[] ftes,
FieldTagFlags ftf)
Write out the boolean access methods for each of the enum values if flagged. |
static void |
writeEnumintConsts(java.io.PrintStream out,
FieldTagEnumint[] ftes)
Write the enum constants for the field |
static void |
writeEnumintTrans(java.io.PrintStream out,
FieldTagEnumint[] ftes,
java.lang.String classname,
boolean isArray)
Write out an array of possible labels used with this enumerated integer, along with conversion utilities. |
void |
writeEquivalenceCheck(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean isStruct,
boolean isArray)
Workhorse for writeIsEquivalent.. |
void |
writeExtraMethods(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
Some fields have extra methods associated with them for convenience. |
static void |
writeField(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd)
Write out the given field as a protected data member. |
void |
writeFieldFiltering(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
Write the getAllFields, defaultField, and printname access methods. |
protected void |
writeFieldFlagAccess(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields)
|
protected void |
writeFieldsAndAccess(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
Write out accessor and mutator mthods for all the fields. |
static void |
writeFlagAccessor(java.io.PrintStream out,
FieldTagFlags ftf)
Write the method for accessing the field flags. |
protected void |
writeGenAccess(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
Write out the generalAccessor method specified by the SandInstanceMessage interface. |
protected void |
writeGenDeref(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
Write out the generalDereference method specified by the SandInstanceMessage interface. |
void |
writeGenMod(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
Write out the generalModifier method specified by the SandInstanceMessage interface. |
static void |
writeInvalidValueAccessor(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
FieldTagEnumint[] ftes)
Write the method for accessing the field invalid value. |
void |
writeIsEquivalent(java.io.PrintStream out,
java.lang.String classname,
com.sun.javadoc.FieldDoc[] fields)
Write the isEquivalent method part of the SandMessage interface. |
static void |
writeLengthAccessors(java.io.PrintStream out,
FieldTagStringlength fts)
Write constants for the normal and maximum charcter lengths of a String field. |
static void |
writeLongRefResolution(java.io.PrintStream out,
java.lang.String fieldname,
java.lang.String classname,
boolean isArray)
Workhorse for writeReferenceResolution. |
void |
writeMemSize(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields)
Write the base memory use estimation method |
static void |
writeMetatypeAccess(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
FieldTagMetatype ftm)
Write accessor method to retrieve the declared metatype. |
static void |
writeOffsetDateAccess(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd)
Write the date retrieval method incorporating the timezone offset if specified. |
protected void |
writeOtherUtils(java.io.PrintStream out,
com.sun.javadoc.ClassDoc cd,
java.lang.String classname,
com.sun.javadoc.FieldDoc[] fields)
Write any other miscellaneous utility methods |
static void |
writePrintValueAccessor(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd)
Write the method for accessing the current field value as a print String. |
static void |
writeRangeRetrieval(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
FieldTagRange ftr)
The UI and validators need access to the range specification. |
static void |
writeReferenceResolution(java.io.PrintStream out,
FieldTagRef ftr)
Write the utility methods to transform references into instances. |
void |
writeSandInstanceMessageImpl(java.io.PrintStream out,
com.sun.javadoc.ClassDoc cd,
java.lang.String classname,
com.sun.javadoc.FieldDoc[] fields,
StructTagSummaryfields sts)
Write the SandInstanceMessage implementation. |
void |
writeSandMessageImpl(java.io.PrintStream out,
StructTagVerbforms stv,
java.lang.String msgClassName,
java.lang.String structClassName,
com.sun.javadoc.FieldDoc[] equivalenceFields)
Write out the methods required by the SandMessage interface. |
static void |
writeStackOperations(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
FieldTagFlags ftf)
Write out the stack mutator methods if flagged. |
void |
writeStandardAccMut(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
Write the standard accessor and mutator methods for a given field which is not an array. |
static void |
writeStringRefResolution(java.io.PrintStream out,
java.lang.String fieldname,
java.lang.String refclass,
java.lang.String reffield,
boolean isArray)
Workhorse for writeReferenceResolution. |
void |
writeSuperstructConversion(java.io.PrintStream out,
com.sun.javadoc.ClassDoc cd,
java.lang.String classname)
Write the superstruct conversion method. |
protected static void |
writeTreeAccessors(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
FieldTagFlags ftf)
Write out the tree accessor methods if flagged. |
void |
writeValidation(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
Write the field validation methods. |
static void |
writeValidityCheck(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
FieldTagStringlength fts,
FieldTagEnumint[] ftes,
FieldTagRange ftr)
write the validity check method for this field |
void |
writeVerbFormAccessors(java.io.PrintStream out,
StructTagVerbforms stv,
java.lang.String classname)
Write the methods to access the verb forms for this message. |
| Methods inherited from class org.sandev.generator.FileGeneratorBase |
|---|
cleanup, delete, generate, trackFileWrite, write |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public InstanceGeneratorBase()
| Method Detail |
|---|
protected void writeFieldsAndAccess(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
throws org.sandev.sandbuild.SandGeneratorException
org.sandev.sandbuild.SandGeneratorException
protected void writeFieldFlagAccess(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields)
public static void writeField(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd)
throws org.sandev.sandbuild.SandGeneratorException
org.sandev.sandbuild.SandGeneratorException
public void writeAccMut(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
boolean declOnly,
boolean writectrl)
throws org.sandev.sandbuild.SandGeneratorException
org.sandev.sandbuild.SandGeneratorException
public static void writeArrayAccMut(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
public static void writeArrayAppend(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
public static void writeArrayGet(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly)
public static void writeArraySet(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
public static void writeArrayInsert(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
public static void writeArrayRemoveIndex(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
public static void writeArrayRemove(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
public static void writeArrayClear(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
public static void writeArrayContains(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly)
public static void writeArraySize(java.io.PrintStream out,
java.lang.String fieldName,
boolean declOnly)
public void writeStandardAccMut(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
public void writeExtraMethods(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean declOnly,
boolean writectrl)
public static void writeConstantsAndConversions(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
java.lang.String classname)
throws org.sandev.sandbuild.SandGeneratorException
We used to write constants for the name of each field, but
this isn't really meta-data and it wasn't getting used anywhere.
So that's gone. Seems kind of circular to need the constant name
of a field, if you could look that up, then you could have used
the lookup text you had. We weren't providing an array of this
or anything, and it really overlaps with reflection at that
point anyway. Use the struct/node declaration, or use reflection,
if you need this info.
org.sandev.sandbuild.SandGeneratorExceptionpublic static java.lang.String getInstanceName(java.lang.String declName)
public static void writeEnumintConsts(java.io.PrintStream out,
FieldTagEnumint[] ftes)
public static void writeEnumintTrans(java.io.PrintStream out,
FieldTagEnumint[] ftes,
java.lang.String classname,
boolean isArray)
public static void writeEnumintBools(java.io.PrintStream out,
FieldTagEnumint[] ftes,
FieldTagFlags ftf)
public static void writeStackOperations(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
FieldTagFlags ftf)
public static void writeLengthAccessors(java.io.PrintStream out,
FieldTagStringlength fts)
public static void writeFlagAccessor(java.io.PrintStream out,
FieldTagFlags ftf)
protected static void writeTreeAccessors(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
FieldTagFlags ftf)
public static void writeDefaultValueAccessor(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
FieldTagEnumint[] ftes)
public static void writeInvalidValueAccessor(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
FieldTagEnumint[] ftes)
public static void writePrintValueAccessor(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd)
public static void writeDecimalAccMut(java.io.PrintStream out,
FieldTagDecimalize ftd,
FieldTagFlags ftf)
public static void writeRangeRetrieval(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
FieldTagRange ftr)
public static void writeReferenceResolution(java.io.PrintStream out,
FieldTagRef ftr)
public static void writeLongRefResolution(java.io.PrintStream out,
java.lang.String fieldname,
java.lang.String classname,
boolean isArray)
public static void writeStringRefResolution(java.io.PrintStream out,
java.lang.String fieldname,
java.lang.String refclass,
java.lang.String reffield,
boolean isArray)
public static void writeOffsetDateAccess(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd)
public static void writeValidityCheck(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
FieldTagStringlength fts,
FieldTagEnumint[] ftes,
FieldTagRange ftr)
protected static void writeCoreValidityCheck(java.io.PrintStream out,
java.lang.String indent,
com.sun.javadoc.FieldDoc fd,
FieldTagStringlength fts,
FieldTagEnumint[] ftes,
FieldTagRange ftr)
public static void writeMetatypeAccess(java.io.PrintStream out,
com.sun.javadoc.FieldDoc fd,
FieldTagMetatype ftm)
public void writeCtorAndInit(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String name)
public void writeSandMessageImpl(java.io.PrintStream out,
StructTagVerbforms stv,
java.lang.String msgClassName,
java.lang.String structClassName,
com.sun.javadoc.FieldDoc[] equivalenceFields)
public void writeMemSize(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields)
public void writeVerbFormAccessors(java.io.PrintStream out,
StructTagVerbforms stv,
java.lang.String classname)
public void writeIsEquivalent(java.io.PrintStream out,
java.lang.String classname,
com.sun.javadoc.FieldDoc[] fields)
public void writeEquivalenceCheck(java.io.PrintStream out,
java.lang.String fieldName,
java.lang.String fieldType,
boolean isStruct,
boolean isArray)
public void writeSandInstanceMessageImpl(java.io.PrintStream out,
com.sun.javadoc.ClassDoc cd,
java.lang.String classname,
com.sun.javadoc.FieldDoc[] fields,
StructTagSummaryfields sts)
This method does NOT call to generate the SandMessage
interface. See writeSandMessageImpl for that.
There's a separate method for that in GeneratorCommon.
public void writeGenMod(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
protected void writeGenDeref(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
For array references, the index has to be specified so it is safe to look for startsWith the fieldname and an open square bracket.
protected void writeGenAccess(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
public void writeDisplayCode(java.io.PrintStream out,
com.sun.javadoc.ClassDoc cd,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname,
StructTagSummaryfields sts)
protected java.lang.String getPrintnameForField(java.lang.String fieldname,
com.sun.javadoc.FieldDoc[] fields)
public void writeFieldFiltering(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
public void writeCloneMessage(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
public void writeValidation(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
public void writeSuperstructConversion(java.io.PrintStream out,
com.sun.javadoc.ClassDoc cd,
java.lang.String classname)
public void writeDebugDump(java.io.PrintStream out,
com.sun.javadoc.FieldDoc[] fields,
java.lang.String classname)
protected void writeOtherUtils(java.io.PrintStream out,
com.sun.javadoc.ClassDoc cd,
java.lang.String classname,
com.sun.javadoc.FieldDoc[] fields)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||