xdoclet.tagshandler

Class ClassTagsHandler

public class ClassTagsHandler extends AbstractProgramElementTagsHandler

Tags relating to classes being processed and class-level attributes.

Version: $Revision: 1.25 $

Author: Ara Abrahamian (ara_e_w@yahoo.com)

UNKNOWN: Oct 14, 2001 namespace = "Class"

Field Summary
protected static DateFormatdateFormatter
Used for setting the timestamp for xdoclet-generated marker in generated files.
protected static Calendarnow
Method Summary
StringclassComment(Properties attributes)
The comment for the current class.
StringclassCommentTags(Properties attributes)
The javadoc comment tags for the current class (plus xdoclet-generated).
StringclassCommentText(Properties attributes)
The text of the javadoc comment for the current class.
StringclassName()
Returns the not-fully-qualified name of the current class without the package name.
voidclassOf(String template)
Returns the not-full-qualified name of the full-qualified class name specified in the body of this tag.
StringclassTagValue(Properties attributes)
Iterates over all class tags with the specified tagName and evaluates the body of the tag for each class tag.
StringclassTagValueMatch(Properties attributes)
Sets the value of match variable.
StringfirstSentenceDescription(Properties attributes)
Return first sentence of standard javadoc of current class.
voidforAllClasses(String template, Properties attributes)
Iterates over all classes loaded by xjavadoc and evaluates the body of the tag for each class.
voidforAllClassTags(String template, Properties attributes)
Iterates over all tags of current class with the name tagName and evaluates the body of the tag for each method.
voidforAllClassTagTokens(String template, Properties attributes)
Iterates over all tokens in specified class tag with the name tagName and evaluates the body for every token.
static voidforAllDistinctClassTags(TemplateEngine engine, String template, String tagName, String paramName)
Iterates over all tags named according to tagName in a non-duplicated manner.
voidforAllDistinctClassTags(String template, Properties attributes)
Iterates over all tags named according to tagName in a non-duplicated manner.
StringfullClassName()
Returns the full-qualified name of the current class.
StringfullSuperclassName()
Returns the full-qualified name of the superclass of the current class.
StringfullTransformedClassName()
Returns the fully-qualified transformed name of the current class with package name.
static StringgetClassNameFor(XClass clazz)
Returns the not-full-qualified name of the specified class without the package name.
static StringgetFullClassNameFor(XClass clazz)
Returns the full-qualified name of the specified class with the package name.
voidifClassTagValueEquals(String template, Properties attributes)
Evaluates the body if value for the class tag equals the specified value.
voidifClassTagValueMatches(String template, Properties attributes)
Evaluate the body if the match variable equals with the value of the specified tag/parameter.
voidifClassTagValueNotEquals(String template, Properties attributes)
Evaluates the body if value for the class tag not equals the specified value.
voidifDoesntHaveClassTag(String template, Properties attributes)
Evaluates the body if current class doesn't have at least one tag with the specified name.
voidifHasClassTag(String template, Properties attributes)
Evaluates the body if current class has at least one tag with the specified name.
voidifIsClassAbstract(String template)
Evaluate the body block if current class is abstract.
voidifIsClassNotAbstract(String template)
Evaluate the body block if current class is not abstract.
StringimportedList(Properties attributes)
Iterates over all imported classes and packages imported in the current class and returns the list.
Stringmodifiers()
The current class' modifiers.
voidpushClass(String template, Properties attributes)
Pushes the class specified by value parameter to top of stack making it the current class.
StringsymbolicClassName()
Returns the symbolic name of the current class.
StringtransformedClassName()
Returns the transformed name of the current class with package name.

Field Detail

dateFormatter

protected static final DateFormat dateFormatter
Used for setting the timestamp for xdoclet-generated marker in generated files.

now

protected static final Calendar now

Method Detail

classComment

public String classComment(Properties attributes)
The comment for the current class.

Parameters: attributes The attributes of the template tag

Returns: javadoc comment

Throws: XDocletException Description of Exception

See Also: MethodTagsHandler classCommentText classCommentTags

UNKNOWN: type = "content" name = "no-comment-signs" optional = "true" values = "true,false" description = "If true * then don't decorate the comment with comment signs. Default is false." name = "indent" optional = "true" description = "Number of spaces to indent the comment. * Default is 0."

classCommentTags

public String classCommentTags(Properties attributes)
The javadoc comment tags for the current class (plus xdoclet-generated).

Parameters: attributes The attributes of the template tag

Returns: The class-level tags

Throws: XDocletException Description of Exception

See Also: MethodTagsHandler classComment

UNKNOWN: type = "content" name = "indent" optional = "true" description = "Number of spaces to indent the tags. * Default is 0."

classCommentText

public String classCommentText(Properties attributes)
The text of the javadoc comment for the current class.

Parameters: attributes The attributes of the template tag

Returns: comment text

Throws: XDocletException Description of Exception

See Also: MethodTagsHandler classComment

UNKNOWN: type = "content" name = "no-comment-signs" optional = "true" values = "true,false" description = "If true * then don't decorate the comment with comment signs. Default is false." name = "indent" optional = "true" description = "Number of spaces to indent the comment. * Default is 0." handle inline link tags in comment text

className

public String className()
Returns the not-fully-qualified name of the current class without the package name.

Returns: the name of the current class

Throws: XDocletException if something goes wrong

UNKNOWN: type = "content"

classOf

public void classOf(String template)
Returns the not-full-qualified name of the full-qualified class name specified in the body of this tag.

Parameters: template The body of the block tag

Throws: XDocletException if something goes wrong

UNKNOWN: type = "block"

classTagValue

public String classTagValue(Properties attributes)
Iterates over all class tags with the specified tagName and evaluates the body of the tag for each class tag.

Parameters: attributes The attributes of the template tag

Returns: Description of the Returned Value

Throws: XDocletException Description of Exception

UNKNOWN: type = "content" name = "tagName" optional = "false" description = "The tag name." name = "paramName" description = "The parameter name. If not specified, then the raw * content of the tag is returned." name = "paramNum" description = "The zero-based parameter number. It's used if the user * used the space-separated format for specifying parameters." name = "values" description = "The valid values for the parameter, comma separated. An * error message is printed if the parameter value is not one of the values." name = "default" description = "The default value is returned if parameter not specified * by user for the tag." name = "superclasses" values = "true,false" description = "If true then traverse * superclasses also, otherwise look up the tag in current concrete class only." name = "mandatory" values = "true,false" description = "Generate an error if parameter not * specified by user for the tag."

classTagValueMatch

public String classTagValueMatch(Properties attributes)
Sets the value of match variable. Match variable serves as a variable for templates, you set it somewhere in template and look it up somewhere else in temaplte. This tag does not return any content, it just sets the match variable.

Parameters: attributes The attributes of the template tag

Returns: Description of the Returned Value

Throws: XDocletException Description of Exception

UNKNOWN: type = "content" name = "tagName" optional = "false" description = "The tag name." name = "paramName" description = "The parameter name. If not specified, then the raw * content of the tag is returned." name = "paramNum" description = "The zero-based parameter number. It's used if the user * used the space-separated format for specifying parameters."

firstSentenceDescription

public String firstSentenceDescription(Properties attributes)
Return first sentence of standard javadoc of current class.

Parameters: attributes The attributes of the template tag

Returns: class comment's first sentence

Throws: XDocletException Description of Exception

UNKNOWN: type = "content" name = "no-description-if-lacking" optional = "true" description = "Returns 'No * Description' if comment is lacking."

forAllClasses

public void forAllClasses(String template, Properties attributes)
Iterates over all classes loaded by xjavadoc and evaluates the body of the tag for each class. It discards classes that have a xdoclet-generated class tag defined.

Parameters: template The body of the block tag attributes The attributes of the template tag

Throws: XDocletException Description of Exception

UNKNOWN: type = "block" name = "abstract" optional = "true" values = "true,false" description = "If true then accept * abstract classes also; otherwise don't." name = "type" optional = "true" description = "For all classes by the type." name = "extent" optional = "true" values = "concrete-type,superclass,hierarchy" description = "Specifies the extent of the type search. If concrete-type then only check the concrete type, if * superclass then check also superclass, if hierarchy then search the whole hierarchy and find if the class is * of the specified type. Default is hierarchy."

forAllClassTags

public void forAllClassTags(String template, Properties attributes)
Iterates over all tags of current class with the name tagName and evaluates the body of the tag for each method.

Parameters: template The body of the block tag attributes The attributes of the template tag

Throws: XDocletException Description of Exception

UNKNOWN: type = "block" name = "tagName" optional = "false" description = "The tag name." name = "superclasses" values = "true,false" description = "If true then traverse * superclasses also, otherwise look up the tag in current concrete class only." name = "tagKey" description = "A tag property that will be used as a unique key. This is * used to avoid duplicate code due to similar tags in superclasses."

forAllClassTagTokens

public void forAllClassTagTokens(String template, Properties attributes)
Iterates over all tokens in specified class tag with the name tagName and evaluates the body for every token.

Parameters: template The body of the block tag attributes The attributes of the template tag

Throws: XDocletException Description of Exception

UNKNOWN: type = "block" name = "tagName" optional = "false" description = "The name of the tag to look in." name = "paramName" optional = "false" description = "The parameter of the tag whose value * is to be tokenized." name = "superclasses" values = "true,false" description = "If true then traverse * superclasses also, otherwise look up the tag in current concrete class only." name = "delimiter" description = "delimiter for the StringTokenizer. consult javadoc for * java.util.StringTokenizer default is ','" name = "skip" description = "how many tokens to skip on start"

forAllDistinctClassTags

public static void forAllDistinctClassTags(TemplateEngine engine, String template, String tagName, String paramName)
Iterates over all tags named according to tagName in a non-duplicated manner. The paramName parameter should be the tag parameter that should be unique during the iteration. Duplicated tags will generate a warning message. Please note that this tag already processes all classes. There is no need to wrap it inside a <XDtClass:forAllClasses> tag or any other tag that processes a group of classes.

Parameters: engine template The body of the block tag tagName The tag to iterate paramName The tag parameter that should be used as identifier.

Throws: XDocletException if something goes wrong

forAllDistinctClassTags

public void forAllDistinctClassTags(String template, Properties attributes)
Iterates over all tags named according to tagName in a non-duplicated manner. The paramName parameter specifies the tag parameter that should be unique during the iteration. Duplicated tags will generate a warning message. Please note that this tag already processes all classes. There is no need to wrap it inside a <XDtClass:forAllClasses> tag or any other tag that processes a group of classes.

Parameters: template The body of the block tag attributes The attributes of the template tag

Throws: XDocletException if something goes wrong

UNKNOWN: type = "block" name = "tagName" optional = "false" description = "The tag to iterate." name = "tagKey" optional = "false" description = "The tag parameter that should be used as * identifier."

fullClassName

public String fullClassName()
Returns the full-qualified name of the current class.

Returns: the name of the current class

Throws: XDocletException if something goes wrong

UNKNOWN: type = "content"

fullSuperclassName

public String fullSuperclassName()
Returns the full-qualified name of the superclass of the current class.

Returns: the name of the superclass of the current class

Throws: XDocletException if something goes wrong

UNKNOWN: type = "content"

fullTransformedClassName

public String fullTransformedClassName()
Returns the fully-qualified transformed name of the current class with package name.

Returns: the name of the current class

Throws: XDocletException if something goes wrong

UNKNOWN: type = "content"

getClassNameFor

public static String getClassNameFor(XClass clazz)

Deprecated: use XClass.name()

Returns the not-full-qualified name of the specified class without the package name.

Parameters: clazz Description of Parameter

Returns: Description of the Returned Value

UNKNOWN: duplicate in AbstractProgramElementTagsHandler

getFullClassNameFor

public static String getFullClassNameFor(XClass clazz)

Deprecated: use XClass.qualifiedName()

Returns the full-qualified name of the specified class with the package name.

Parameters: clazz Description of Parameter

Returns: Description of the Returned Value

ifClassTagValueEquals

public void ifClassTagValueEquals(String template, Properties attributes)
Evaluates the body if value for the class tag equals the specified value.

Parameters: template The body of the block tag attributes The attributes of the template tag

Throws: XDocletException Description of Exception

UNKNOWN: type = "block" name = "tagName" optional = "false" description = "The tag name." name = "paramName" description = "The parameter name. If not specified, then the raw * content of the tag is returned." name = "paramNum" description = "The zero-based parameter number. It's used if the user * used the space-separated format for specifying parameters." name = "value" optional = "false" description = "The desired value."

ifClassTagValueMatches

public void ifClassTagValueMatches(String template, Properties attributes)
Evaluate the body if the match variable equals with the value of the specified tag/parameter.

Parameters: template The body of the block tag attributes The attributes of the template tag

Throws: XDocletException Description of Exception

UNKNOWN: (Aslak) It appears that this method does the same job as ifClassTagValueEquals. It also appears that no templates are using it. Candidate for removal? type = "block" name = "values" description = "The valid values for the parameter, comma separated. An * error message is printed if the parameter value is not one of the values." name = "default" description = "The default value is returned if parameter not specified * by user for the tag." name = "superclasses" values = "true,false" description = "If true then traverse * superclasses also, otherwise look up the tag in current concrete class only."

ifClassTagValueNotEquals

public void ifClassTagValueNotEquals(String template, Properties attributes)
Evaluates the body if value for the class tag not equals the specified value.

Parameters: template The body of the block tag attributes The attributes of the template tag

Throws: XDocletException Description of Exception

UNKNOWN: type = "block" name = "tagName" optional = "false" description = "The tag name." name = "paramName" description = "The parameter name. If not specified, then the raw * content of the tag is returned." name = "paramNum" description = "The zero-based parameter number. It's used if the user * used the space-separated format for specifying parameters." name = "value" optional = "false" description = "The desired value."

ifDoesntHaveClassTag

public void ifDoesntHaveClassTag(String template, Properties attributes)
Evaluates the body if current class doesn't have at least one tag with the specified name.

Parameters: template The body of the block tag attributes The attributes of the template tag

Throws: XDocletException Description of Exception

UNKNOWN: type = "block" name = "tagName" optional = "false" description = "The tag name." name = "paramName" description = "The parameter name. If not specified, then the raw * content of the tag is returned." name = "paramNum" description = "The zero-based parameter number. It's used if the user * used the space-separated format for specifying parameters." name = "superclasses" values = "true,false" description = "If true then traverse * superclasses also, otherwise look up the tag in current concrete class only." name = "error" description = "Show this error message if no tag found."

ifHasClassTag

public void ifHasClassTag(String template, Properties attributes)
Evaluates the body if current class has at least one tag with the specified name.

Parameters: template The body of the block tag attributes The attributes of the template tag

Throws: XDocletException Description of Exception

UNKNOWN: type = "block" name = "tagName" optional = "false" description = "The tag name." name = "paramName" description = "The parameter name. If not specified, then the raw * content of the tag is returned." name = "paramNum" description = "The zero-based parameter number. It's used if the user * used the space-separated format for specifying parameters." name = "superclasses" values = "true,false" description = "If true then traverse * superclasses also, otherwise look up the tag in current concrete class only." name = "error" description = "Show this error message if no tag found."

ifIsClassAbstract

public void ifIsClassAbstract(String template)
Evaluate the body block if current class is abstract.

Parameters: template The body of the block tag

Throws: XDocletException Description of Exception

See Also: ClassTagsHandler

UNKNOWN: type = "block"

ifIsClassNotAbstract

public void ifIsClassNotAbstract(String template)
Evaluate the body block if current class is not abstract.

Parameters: template The body of the block tag

Throws: XDocletException Description of Exception

See Also: ClassTagsHandler

UNKNOWN: type = "block"

importedList

public String importedList(Properties attributes)

Deprecated: Make sure the template file uses full qualified class names everywhere instead.

Iterates over all imported classes and packages imported in the current class and returns the list. The composed string has 'import ' in front of each import statement, and each import is in a separate line.

Parameters: attributes The attributes of the template tag

Returns: import statements

Throws: XDocletException Description of Exception

UNKNOWN: type = "content" name = "currentClass" optional = "false" description = "???"

modifiers

public String modifiers()
The current class' modifiers.

Returns: modifiers

Throws: XDocletException Describe the exception

UNKNOWN: type = "content"

pushClass

public void pushClass(String template, Properties attributes)
Pushes the class specified by value parameter to top of stack making it the current class.

Parameters: template The body of the block tag attributes The attributes of the template tag

Throws: XDocletException Description of Exception

UNKNOWN: type = "block" name = "value" optional = "false" values = "return-type,whatever class name" description = "If return-type specified then push current method return type, else find the XClass for the * class name and push it."

symbolicClassName

public String symbolicClassName()
Returns the symbolic name of the current class. For a java bean it's the same as the class name.

Returns: The symbolic name of the current class

Throws: XDocletException Description of Exception

UNKNOWN: type = "content"

transformedClassName

public String transformedClassName()
Returns the transformed name of the current class with package name.

Returns: the name of the current class

Throws: XDocletException if something goes wrong

UNKNOWN: type = "content"