xdoclet.modules.ejb.entity

Class PkTagsHandler


public class PkTagsHandler
extends EjbTagsHandler

Tags used in generating PK classes for entity EJBs.
Version:
$Revision: 1.18 $
Author:
Ara Abrahamian (ara_e@email.com)
xdoclet.taghandler
namespace = "EjbPk"
created
13. juni 2002

Field Summary

Fields inherited from class xdoclet.modules.ejb.EjbTagsHandler

ALL, LOCAL_SUFFIX, SERVICE_ENDPOINT, SERVICE_ENDPOINT_SUFFIX

Fields inherited from class xdoclet.XDocletTagSupport

FOR_CLASS, FOR_CONSTRUCTOR, FOR_FIELD, FOR_METHOD, PARAMETER_DELIMITER

Method Summary

static boolean
classHasPrimkeyField(XClass clazz)
Returns true if the specified class has a primkey-field defined on the ejb.bean tag (opposed to having a separate PK class).
String
extendsFrom()
Returns the name of the class pk class extends.
protected String
getDependentClassFor(XClass clazz, String type)
Gets the DependentClassFor attribute of the PkTagsHandler object
protected static String
getEntityPkClassPattern()
Returns the pattern which is used to calculate the Primary Key class' name from the EJB name.
static String
getPkClassFor(XClass clazz)
Get the primary key class specified for a given class.
static String
getPkClassForEjbJarXmlFor(XClass clazz)
Gets the PkClassForEjbJarXmlFor attribute of the PkTagsHandler class
static String
getPrimkeyFieldFor(XClass clazz)
Get the primary key field specified for a given class.
static String
getPrimkeyGetterFor(XClass clazz)
Returns the getter method of the primary key field specified for a given class.
static String
getPrimkeySetterFor(XClass clazz)
Returns the setter method of the primary key field specified for a given class.
void
ifDoesntHavePrimkeyField(String template, Properties attributes)
Process the tag body if the current class doesn't have a defined primkey-field.
void
ifHasPrimkeyField(String template, Properties attributes)
Process the tag body if the current class has a defined primkey-field.
void
ifHasPrimkeySetter(String template, Properties attributes)
Process the tag body if the current class has defined a setter for the primkey-field.
void
ifIsNotPrimkeyField(String template, Properties attributes)
Process the tag body if the current method is not a getter or setter for the primkey-field.
void
ifIsPkField(String template)
Evaluates the body if the current method is a primary key field.
void
ifIsPrimkeyField(String template, Properties attributes)
Process the tag body if the current method is a getter or setter for the primkey-field.
static boolean
isMethodPrimkeyField(XClass clazz, XMethod method)
Test if a given method is the getter or setter for the primary key field specified for the class.
String
pkClass()
Returns the name of generated PK class for the current class.
String
pkClassForEjbJarXml()
Returns the name of PK class for the current class.
String
pkfieldList()
Returns a string containing comma-separated list of primary key fields with their types.
String
pkfieldListFrom(Properties attributes)
Returns a string containing comma-separated list of primary key fields getting from an object specified as parameter.
String
primkeyField(Properties attributes)
Returns the primkey-field defined for the current class.
String
primkeyGetter(Properties attributes)
Returns the getter name for the primkey-field.
String
primkeySetter(Properties attributes)
Returns the setter name for the primkey-field.

Methods inherited from class xdoclet.modules.ejb.EjbTagsHandler

beanType, choosePackage, concreteFullClassName, ejbExternalRefName, ejbName, ejbRefName, ejbRefName, extendsFromFor, forAllBeans, getDependentClassFor, getDependentClassTagName, getEjb, getEjbIdFor, getEjbNameFor, getEjbSpec, getShortEjbNameFor, hasTransaction, id, ifIsAConcreteEJBean, ifLocalEjb, ifNotLocalEjb, ifNotRemoteEjb, ifNotServiceEndpointEjb, ifRemoteEjb, ifServiceEndpointEjb, isAConcreteEJBean, isEjb, isLocalEjb, isOnlyLocalEjb, isOnlyRemoteEjb, isOnlyServiceEndpointEjb, isRemoteEjb, isServiceEndpointEjb, prefixWithEjbSlash, shortEjbName, shouldTraverseSuperclassForDependentClass, symbolicClassName

Methods inherited from class xdoclet.XDocletTagSupport

delimit, expandClassName, generate, getCurrentClass, getCurrentClassTag, getCurrentConstructor, getCurrentField, getCurrentFieldTag, getCurrentMethod, getCurrentMethodTag, getCurrentPackage, getDocletContext, getEngine, getExpandedDelimitedTagValue, getTagValue, getTagValue, getTagValue, hasHavingClassTag, hasTag, isTagValueEqual, mandatoryParamNotFound, mandatoryTemplateTagParamNotFound, modifiers, popCurrentClass, pushCurrentClass, setCurrentClass, setCurrentClassTag, setCurrentConstructor, setCurrentField, setCurrentFieldTag, setCurrentMethod, setCurrentMethodTag, setCurrentPackage

Methods inherited from class xdoclet.template.TemplateTagHandler

getXJavaDoc, setXJavaDoc

Method Details

classHasPrimkeyField

public static boolean classHasPrimkeyField(XClass clazz)
            throws xdoclet.XDocletException
Returns true if the specified class has a primkey-field defined on the ejb.bean tag (opposed to having a separate PK class).
Parameters:
clazz - The class to look into.
Returns:
true if the class has a defined primkey-field
Throws:
xdoclet.XDocletException -

extendsFrom

public String extendsFrom()
            throws xdoclet.XDocletException
Returns the name of the class pk class extends.
Returns:
superclass name
Throws:
xdoclet.XDocletException -
doc.tag
type = "content"

getDependentClassFor

protected String getDependentClassFor(XClass clazz,
                                      String type)
            throws xdoclet.XDocletException
Gets the DependentClassFor attribute of the PkTagsHandler object
Overrides:
getDependentClassFor in interface EjbTagsHandler
Parameters:
clazz - Describe what the parameter does
type - Describe what the parameter does
Returns:
The DependentClassFor value
Throws:
xdoclet.XDocletException -

getEntityPkClassPattern

protected static String getEntityPkClassPattern()
Returns the pattern which is used to calculate the Primary Key class' name from the EJB name. The default is to append "PK", unless overridden on the subtask.
Returns:
pattern

getPkClassFor

public static String getPkClassFor(XClass clazz)
            throws xdoclet.XDocletException
Get the primary key class specified for a given class. If a primary key field has been specified, using the primkey-field parameter on the ejb.bean tag, this will be the return type of that field's getter method. Otherwise, it will be determined by the various parameters of the ejb.pk tag and the subtask's settings for default pattern, packageSubstitution, etc.
Parameters:
clazz - The class to look into
Returns:
Fully qualified name of the primary key's type
Throws:
xdoclet.XDocletException -

getPkClassForEjbJarXmlFor

public static String getPkClassForEjbJarXmlFor(XClass clazz)
            throws xdoclet.XDocletException
Gets the PkClassForEjbJarXmlFor attribute of the PkTagsHandler class
Parameters:
clazz - The class to look into
Returns:
The PkClassForEjbJarXmlFor value
Throws:
xdoclet.XDocletException -

getPrimkeyFieldFor

public static String getPrimkeyFieldFor(XClass clazz)
            throws xdoclet.XDocletException
Get the primary key field specified for a given class. This is given by the primkey-field parameter on the ejb.bean tag, although this may be inherited from a superclass.
Parameters:
clazz - The class to look into
Returns:
The value of the ejb.bean primkey-field parameter
Throws:
xdoclet.XDocletException -

getPrimkeyGetterFor

public static String getPrimkeyGetterFor(XClass clazz)
            throws xdoclet.XDocletException
Returns the getter method of the primary key field specified for a given class.
Parameters:
clazz - The class to look into
Returns:
The name of the ejb.bean primkey-field parameter's getter method, or null if there isn't one
Throws:
xdoclet.XDocletException -

getPrimkeySetterFor

public static String getPrimkeySetterFor(XClass clazz)
            throws xdoclet.XDocletException
Returns the setter method of the primary key field specified for a given class.
Parameters:
clazz - The class to look into
Returns:
The name of the ejb.bean primkey-field parameter's setter method, or null if there isn't one
Throws:
xdoclet.XDocletException -

ifDoesntHavePrimkeyField

public void ifDoesntHavePrimkeyField(String template,
                                     Properties attributes)
            throws xdoclet.XDocletException
Process the tag body if the current class doesn't have a defined primkey-field.
Parameters:
template - The body of the block tag
attributes - The attributes of the template tag
Throws:
xdoclet.XDocletException -
doc.tag
type = "block"

ifHasPrimkeyField

public void ifHasPrimkeyField(String template,
                              Properties attributes)
            throws xdoclet.XDocletException
Process the tag body if the current class has a defined primkey-field.
Parameters:
template - The body of the block tag
attributes - The attributes of the template tag
Throws:
xdoclet.XDocletException -
doc.tag
type = "block"

ifHasPrimkeySetter

public void ifHasPrimkeySetter(String template,
                               Properties attributes)
            throws xdoclet.XDocletException
Process the tag body if the current class has defined a setter for the primkey-field.
Parameters:
template - The body of the block tag
attributes - The attributes of the template tag
Throws:
xdoclet.XDocletException -
doc.tag
type = "block"

ifIsNotPrimkeyField

public void ifIsNotPrimkeyField(String template,
                                Properties attributes)
            throws xdoclet.XDocletException
Process the tag body if the current method is not a getter or setter for the primkey-field.
Parameters:
template - The body of the block tag
attributes - The attributes of the template tag
Throws:
xdoclet.XDocletException -
doc.tag
type = "block"

ifIsPkField

public void ifIsPkField(String template)
            throws xdoclet.XDocletException
Evaluates the body if the current method is a primary key field.
Parameters:
template - The body of the block tag
Throws:
xdoclet.XDocletException -
doc.tag
type = "block"

ifIsPrimkeyField

public void ifIsPrimkeyField(String template,
                             Properties attributes)
            throws xdoclet.XDocletException
Process the tag body if the current method is a getter or setter for the primkey-field.
Parameters:
template - The body of the block tag
attributes - The attributes of the template tag
Throws:
xdoclet.XDocletException -
doc.tag
type = "block"

isMethodPrimkeyField

public static boolean isMethodPrimkeyField(XClass clazz,
                                           XMethod method)
            throws xdoclet.XDocletException
Test if a given method is the getter or setter for the primary key field specified for the class.
Parameters:
clazz - The class to look into
method - The method to check for primkey-field
Returns:
true if the method is a getter or setter for the primkey-field
Throws:
xdoclet.XDocletException -

pkClass

public String pkClass()
            throws xdoclet.XDocletException
Returns the name of generated PK class for the current class.
Returns:
The name of generated PK class.
Throws:
xdoclet.XDocletException -
doc.tag
type = "content"

pkClassForEjbJarXml

public String pkClassForEjbJarXml()
            throws xdoclet.XDocletException
Returns the name of PK class for the current class.
Returns:
The name of generated PK class.
Throws:
xdoclet.XDocletException -
doc.tag
type = "content"

pkfieldList

public String pkfieldList()
            throws xdoclet.XDocletException
Returns a string containing comma-separated list of primary key fields with their types.
Returns:
A string containing comma-separated list of primary key fields with their types.
Throws:
xdoclet.XDocletException -
doc.tag
type = "content"

pkfieldListFrom

public String pkfieldListFrom(Properties attributes)
            throws xdoclet.XDocletException
Returns a string containing comma-separated list of primary key fields getting from an object specified as parameter.
Parameters:
attributes - The attributes of the template tag
Returns:
A string containing comma-separated list of primary key fields without their types.
Throws:
xdoclet.XDocletException -
doc.tag
type = "content"
doc.param
name = "name" optional = "false" description = "The name of the variable to get the fields from."

primkeyField

public String primkeyField(Properties attributes)
            throws xdoclet.XDocletException
Returns the primkey-field defined for the current class.
Parameters:
attributes - The attributes of the template tag
Returns:
The value of the ejb.bean primkey-field parameter
Throws:
xdoclet.XDocletException -
doc.tag
type = "content"

primkeyGetter

public String primkeyGetter(Properties attributes)
            throws xdoclet.XDocletException
Returns the getter name for the primkey-field.
Parameters:
attributes - The attributes of the template tag
Returns:
The primkey-field getter
Throws:
xdoclet.XDocletException -
doc.tag
type = "content"

primkeySetter

public String primkeySetter(Properties attributes)
            throws xdoclet.XDocletException
Returns the setter name for the primkey-field.
Parameters:
attributes - The attributes of the template tag
Returns:
The primkey-field setter
Throws:
xdoclet.XDocletException -
doc.tag
type = "content"