xdoclet.modules.ejb.entity

Class PersistentTagsHandler


public class PersistentTagsHandler
extends CmpTagsHandler

Version:
$Revision: 1.23 $
Author:
Ara Abrahamian (ara_e@email.com)
xdoclet.taghandler
namespace = "EjbPersistent"
created
Oct 16, 2001

Method Summary

static String
fieldList(XClass clazz, String inclTag, String exclTag, int type, String valueObject, boolean superclasses)
Returns comma-separated list of fields, excluding fields that have tags of exclTag list, including fields that have tags of inclTag list.
void
forAllPersistentFields(String template, Properties attributes)
Evaluates the body for each persistent field.
protected void
forAllPersistentMatchedFields(String template, String include_tags, String exclude_tags, boolean superclasses, String valueObject)
Generate only for all Persisted Fields matching a specific XTag or Persisted fields that do not match a specific Tag
protected String[]
getPkFieldsInHeader()
Returns an array containing ejb:pk-field tags defined in class level.
void
ifHasAtLeastOnePersistentField(String template)
Evaluates the body if the class has at least one persistent field.
void
ifHasAtLeastOnePkField(String template)
Evaluates the body if the class has at least one primary key field.
static boolean
isPersistentField(XMethod method)
Returns true if method is a persistent field, false otherwise.
static boolean
isPkField(XMethod method)
Returns true if method is a primary key field, false otherwise.
static boolean
isPkFieldInHeader(XClass clazz)
Returns true if clazz has ejb:pk-field defined.
static boolean
isValueObjectField(XClass clazz, XMethod method, String valueObject)
Gets the ValueObjectField attribute of the PersistentTagsHandler class
String
persistentfieldList(Properties attributes)
Returns a string containing comma-separated list of persistent fields with their types.
String
persistentfieldNameValueList()
Returns a string containing comma-separated list of persistent fields without their types in fieldname="value" format.
String
persistentfieldNameValueList(Properties attributes)
Returns a string containing comma-separated list of persistent fields without their types in fieldname="value" format.

Method Details

fieldList

public static String fieldList(XClass clazz,
                               String inclTag,
                               String exclTag,
                               int type,
                               String valueObject,
                               boolean superclasses)
            throws xdoclet.XDocletException
Returns comma-separated list of fields, excluding fields that have tags of exclTag list, including fields that have tags of inclTag list. If name_value_out is true, then the list is in fieldname="value" format.
Parameters:
clazz - Description of Parameter
inclTag - Fields that have at least of the tags of this comma-separated list are used.
exclTag - Fields that don't have all of the tags of this comma-separated list are used.
type - Type of return (0: comma separated list - 1: field=value comma separated list - 2: getter comma sperated list, 3: comma separated name list)
valueObject -
superclasses -
Returns:
Description of the Returned Value
Throws:
xdoclet.XDocletException -
To do:
This method only takes the field of the current class. I think it's ok. Any objection ?

forAllPersistentFields

public void forAllPersistentFields(String template,
                                   Properties attributes)
            throws xdoclet.XDocletException
Evaluates the body for each persistent field. If only-pk="true" then use only primary keys, if not-pk="true" then use only persistent fields that are not primary keys. By default use all regardless of being primary key field or not.
Parameters:
template - The body of the block tag
attributes - The attributes of the template tag
Throws:
xdoclet.XDocletException -
See Also:
forAllPersistentMatchedFields(java.lang.String,java.lang.String,java.lang.String,boolean,java.lang.String)
doc.tag
type = "block"
doc.param
name = "superclasses" optional = "true" values = "true,false" description = "Include persistent fields of superclasses. True by default."
name = "valueobject" optional = "true" description = "If present, only loop over fields with a matching \@ejb.value-object tag."
name = "only-pk" optional = "true" values = "true,false" description = "If true, only loop over the persistent fields that are in the primary key. False by default."
name = "not-pk" optional = "true" values = "true,false" description = "If true, only loop over the persistent fields that are not in the primary key. False by default."

forAllPersistentMatchedFields

protected void forAllPersistentMatchedFields(String template,
                                             String include_tags,
                                             String exclude_tags,
                                             boolean superclasses,
                                             String valueObject)
            throws xdoclet.XDocletException
Generate only for all Persisted Fields matching a specific XTag or Persisted fields that do not match a specific Tag
Parameters:
template - The body of the block tag
include_tags - only fields having these tags
exclude_tags - only fields not having these tags
superclasses - traverse superclasses too
valueObject -
Throws:
xdoclet.XDocletException -
See Also:
forAllPersistentFields(java.lang.String,java.util.Properties)

getPkFieldsInHeader

protected String[] getPkFieldsInHeader()
            throws xdoclet.XDocletException
Returns an array containing ejb:pk-field tags defined in class level.
Returns:
The PkFieldsInHeader value
Throws:
xdoclet.XDocletException -

ifHasAtLeastOnePersistentField

public void ifHasAtLeastOnePersistentField(String template)
            throws xdoclet.XDocletException
Evaluates the body if the class has at least one persistent field.
Parameters:
template - The body of the block tag
Throws:
xdoclet.XDocletException -
doc.tag
type = "block"

ifHasAtLeastOnePkField

public void ifHasAtLeastOnePkField(String template)
            throws xdoclet.XDocletException
Evaluates the body if the class has at least one primary key field.
Parameters:
template - The body of the block tag
Throws:
xdoclet.XDocletException -
doc.tag
type = "block"

isPersistentField

public static boolean isPersistentField(XMethod method)
Returns true if method is a persistent field, false otherwise. Persistent fields are getter methods marked with a ejb:persistent-field tag.
Parameters:
method - Description of Parameter
Returns:
The PersistentField value

isPkField

public static boolean isPkField(XMethod method)
Returns true if method is a primary key field, false otherwise. PK fields are getter methods marked with a ejb:pk-field tag.
Parameters:
method - Description of Parameter
Returns:
The PkField value

isPkFieldInHeader

public static boolean isPkFieldInHeader(XClass clazz)
Returns true if clazz has ejb:pk-field defined.
Parameters:
clazz - Description of Parameter
Returns:
The PkFieldInHeader value

isValueObjectField

public static boolean isValueObjectField(XClass clazz,
                                         XMethod method,
                                         String valueObject)
            throws xdoclet.XDocletException
Gets the ValueObjectField attribute of the PersistentTagsHandler class
Parameters:
clazz - Describe what the parameter does
method - Describe what the parameter does
valueObject - Describe what the parameter does
Returns:
The ValueObjectField value
Throws:
xdoclet.XDocletException -

persistentfieldList

public String persistentfieldList(Properties attributes)
            throws xdoclet.XDocletException
Returns a string containing comma-separated list of persistent fields with their types.
Parameters:
attributes -
Returns:
A string containing comma-separated list of persistent fields without their types.
Throws:
xdoclet.XDocletException -
doc.tag
type = "content"

persistentfieldNameValueList

public String persistentfieldNameValueList()
            throws xdoclet.XDocletException
Returns a string containing comma-separated list of persistent fields without their types in fieldname="value" format.
Returns:
A string containing comma-separated list of persistent fields with their types like an ordinary method parameter definition.
Throws:
xdoclet.XDocletException -
doc.tag
type = "content"

persistentfieldNameValueList

public String persistentfieldNameValueList(Properties attributes)
            throws xdoclet.XDocletException
Returns a string containing comma-separated list of persistent fields without their types in fieldname="value" format.
Parameters:
attributes -
Returns:
A string containing comma-separated list of persistent fields with their types like an ordinary method parameter definition.
Throws:
xdoclet.XDocletException -
doc.tag
type = "content"