|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.sandev.generator.SandFieldDoc
public class SandFieldDoc
Basic FieldDoc implementation used for adding synthesized fields to
an existing ClassDoc. It would be nice to use whatever Sun uses, but since
they don't provide access to the FieldDoc used by the Standard Doclet,
we roll our own. Note that this implementation is designed only to support
synthesized fields for doclets; as a result, most functionality of the
FieldDoc API is not implemented.
All SAND synthesized fields are SandFieldDoc classes, so you can use
instanceof to distinguish between generated fields and declared fields.
You can also use the isSynthetic() method, which always
returns true for a SandFieldDoc, and should never return true for a proper
struct or node field declaration.
SAND generated fields are triggered by the presence of struct tags
(like @persist or @transmit), or node tags
(like @call, @subscribe etc). Whether a particular
generated field is relevant to any given code generator depends on the
context. That context determines whether the field exists, and also whether
the field is generally modified within that context. When a field is not
normally modified within a given context, the isFinal() method
will return true.
Since declaring a struct or node field with any modifier other than
"protected" is invalid, the re-use of isFinal() to indicate
that a field should be read-only seemed like the best option.
Note that the read-only designation is not strict. For example, the
uniqueID field is read-only except in CONTEXT_PERSISTENCE,
but it requires a set method to be reconstructed from a UI context, or
sent over the wire in a MESSAGING context. The read-only indication
means that there is no ownership of the field within a context,
so modification would be innapropriate. Unfortunately there is no easy
differentiation between modifying a value and restoring a value while
working at the code level. However a generator can leave indications
in comments, and behavior can be enforced at the level of code analysis
(whether automated or not).
This class makes the following assumptions:
| Field Summary | |
|---|---|
protected java.lang.String |
comments
|
protected java.lang.String |
fieldName
|
protected boolean |
readOnly
We override final to indicate read-only for a given context. |
protected java.util.HashMap |
tagmap
where we keep our synthetic Tag arrays |
protected boolean |
transientField
|
protected com.sun.javadoc.Type |
type
|
| Constructor Summary | |
|---|---|
SandFieldDoc(java.lang.String fieldName,
java.lang.String comments,
com.sun.javadoc.Type type)
|
|
| Method Summary | |
|---|---|
void |
addTag(com.sun.javadoc.Tag tag)
Add a Tag to our collection. |
com.sun.javadoc.AnnotationDesc[] |
annotations()
Returns null. |
com.sun.javadoc.AnnotationTypeDoc |
asAnnotationTypeDoc()
Returns null. |
com.sun.javadoc.ParameterizedType |
asParameterizedType()
Returns null. |
com.sun.javadoc.TypeVariable |
asTypeVariable()
Returns null. |
com.sun.javadoc.WildcardType |
asWildcardType()
Returns null. |
java.lang.String |
commentText()
|
int |
compareTo(java.lang.Object obj)
Not implemented; always returns 0. |
java.lang.Object |
constantValue()
Constant objects aren't supported, so always return null |
java.lang.String |
constantValueExpression()
Constant values aren't supported, so always return null |
com.sun.javadoc.ClassDoc |
containingClass()
All classes are assumed to be outer classes so return null |
com.sun.javadoc.PackageDoc |
containingPackage()
Not implemented; returns null |
com.sun.javadoc.Tag[] |
firstSentenceTags()
Not implemented; returns null. |
java.lang.String |
getRawCommentText()
Equivalent to commentText(). |
protected java.util.HashMap |
getTagMap()
accessor for tagmap |
com.sun.javadoc.Tag[] |
inlineTags()
Not implemented; returns null. |
boolean |
isAnnotationType()
Returns false. |
boolean |
isAnnotationTypeElement()
Returns false. |
boolean |
isClass()
|
boolean |
isConstructor()
|
boolean |
isEnum()
Returns false. |
boolean |
isEnumConstant()
Returns false. |
boolean |
isError()
|
boolean |
isException()
|
boolean |
isField()
|
boolean |
isFinal()
|
boolean |
isIncluded()
|
boolean |
isInterface()
|
boolean |
isMethod()
|
boolean |
isOrdinaryClass()
|
boolean |
isPackagePrivate()
Private packages aren't supported, so return false |
boolean |
isPrimitive()
Returns false. |
boolean |
isPrivate()
All fields are assumed to be protected, so return false |
boolean |
isProtected()
All fields are assumed to be protected, so return true |
boolean |
isPublic()
All fields are assumed to be protected, so return false |
boolean |
isStatic()
Static fields aren't supported, so return false |
boolean |
isSynthetic()
Return true since this class is only designed to work with fields synthesized by doclets. |
boolean |
isTransient()
Return true if this is a transient field, false otherwise. |
boolean |
isVolatile()
Volatile fields aren't supported, so return false |
java.lang.String |
modifiers()
Returns modifiers for the field; all fields are assumed to be protected |
int |
modifierSpecifier()
Stupid Sun |
java.lang.String |
name()
|
com.sun.javadoc.SourcePosition |
position()
Not applicable; returns null. |
java.lang.String |
qualifiedName()
Gets the fully qualified name of the field type |
com.sun.javadoc.SeeTag[] |
seeTags()
No @see tags, so returns null. |
com.sun.javadoc.SerialFieldTag[] |
serialFieldTags()
No @serial fields are expected, so always return null |
void |
setRawCommentText(java.lang.String rawDocumentation)
|
void |
setReadOnly(boolean readOnly)
|
void |
setTransient(boolean val)
Mutator for transientField flag. |
java.lang.String |
simpleTypeName()
Returns typeName. |
com.sun.javadoc.Tag[] |
tags()
Not implemented; returns empty Tag[] |
com.sun.javadoc.Tag[] |
tags(java.lang.String tagname)
Look up the tagname in our map. |
com.sun.javadoc.Type |
type()
Returns the type of the field |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected java.lang.String fieldName
protected java.lang.String comments
protected com.sun.javadoc.Type type
protected boolean transientField
protected java.util.HashMap tagmap
protected boolean readOnly
| Constructor Detail |
|---|
public SandFieldDoc(java.lang.String fieldName,
java.lang.String comments,
com.sun.javadoc.Type type)
| Method Detail |
|---|
protected java.util.HashMap getTagMap()
public java.lang.Object constantValue()
constantValue in interface com.sun.javadoc.FieldDocpublic java.lang.String constantValueExpression()
constantValueExpression in interface com.sun.javadoc.FieldDocpublic boolean isTransient()
isTransient in interface com.sun.javadoc.FieldDocpublic void setTransient(boolean val)
public boolean isVolatile()
isVolatile in interface com.sun.javadoc.FieldDocpublic com.sun.javadoc.SerialFieldTag[] serialFieldTags()
serialFieldTags in interface com.sun.javadoc.FieldDocpublic com.sun.javadoc.Type type()
type in interface com.sun.javadoc.FieldDocpublic boolean isSynthetic()
isSynthetic in interface com.sun.javadoc.MemberDocpublic com.sun.javadoc.ClassDoc containingClass()
containingClass in interface com.sun.javadoc.ProgramElementDocpublic com.sun.javadoc.PackageDoc containingPackage()
containingPackage in interface com.sun.javadoc.ProgramElementDocpublic boolean isFinal()
isFinal in interface com.sun.javadoc.ProgramElementDocpublic void setReadOnly(boolean readOnly)
public boolean isPackagePrivate()
isPackagePrivate in interface com.sun.javadoc.ProgramElementDocpublic boolean isPrivate()
isPrivate in interface com.sun.javadoc.ProgramElementDocpublic boolean isProtected()
isProtected in interface com.sun.javadoc.ProgramElementDocpublic boolean isPublic()
isPublic in interface com.sun.javadoc.ProgramElementDocpublic boolean isStatic()
isStatic in interface com.sun.javadoc.ProgramElementDocpublic java.lang.String modifiers()
modifiers in interface com.sun.javadoc.ProgramElementDocpublic int modifierSpecifier()
modifierSpecifier in interface com.sun.javadoc.ProgramElementDocpublic java.lang.String qualifiedName()
qualifiedName in interface com.sun.javadoc.ProgramElementDocpublic com.sun.javadoc.AnnotationDesc[] annotations()
annotations in interface com.sun.javadoc.ProgramElementDocpublic java.lang.String commentText()
commentText in interface com.sun.javadoc.Docpublic int compareTo(java.lang.Object obj)
compareTo in interface com.sun.javadoc.DoccompareTo in interface java.lang.Comparable<java.lang.Object>public com.sun.javadoc.Tag[] firstSentenceTags()
firstSentenceTags in interface com.sun.javadoc.Docpublic java.lang.String getRawCommentText()
commentText(). I hope nobody minds.
getRawCommentText in interface com.sun.javadoc.Docpublic com.sun.javadoc.Tag[] inlineTags()
inlineTags in interface com.sun.javadoc.Docpublic boolean isClass()
isClass in interface com.sun.javadoc.Docpublic boolean isConstructor()
isConstructor in interface com.sun.javadoc.Docpublic boolean isError()
isError in interface com.sun.javadoc.Docpublic boolean isException()
isException in interface com.sun.javadoc.Docpublic boolean isField()
isField in interface com.sun.javadoc.Docpublic boolean isIncluded()
isIncluded in interface com.sun.javadoc.Docpublic boolean isInterface()
isInterface in interface com.sun.javadoc.Docpublic boolean isMethod()
isMethod in interface com.sun.javadoc.Docpublic boolean isOrdinaryClass()
isOrdinaryClass in interface com.sun.javadoc.Docpublic java.lang.String name()
name in interface com.sun.javadoc.Docpublic com.sun.javadoc.SourcePosition position()
position in interface com.sun.javadoc.Docpublic com.sun.javadoc.SeeTag[] seeTags()
seeTags in interface com.sun.javadoc.Docpublic void setRawCommentText(java.lang.String rawDocumentation)
setRawCommentText in interface com.sun.javadoc.Docpublic com.sun.javadoc.Tag[] tags()
tags in interface com.sun.javadoc.Docpublic com.sun.javadoc.Tag[] tags(java.lang.String tagname)
tags in interface com.sun.javadoc.Docpublic boolean isAnnotationType()
isAnnotationType in interface com.sun.javadoc.Docpublic boolean isEnum()
isEnum in interface com.sun.javadoc.Docpublic boolean isAnnotationTypeElement()
isAnnotationTypeElement in interface com.sun.javadoc.Docpublic boolean isEnumConstant()
isEnumConstant in interface com.sun.javadoc.Docpublic com.sun.javadoc.AnnotationTypeDoc asAnnotationTypeDoc()
public com.sun.javadoc.WildcardType asWildcardType()
public com.sun.javadoc.TypeVariable asTypeVariable()
public com.sun.javadoc.ParameterizedType asParameterizedType()
public boolean isPrimitive()
public java.lang.String simpleTypeName()
public void addTag(com.sun.javadoc.Tag tag)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||