xdoclet.modules.ejb.dd
Class RelationTagsHandler

java.lang.Object
  extended by xdoclet.template.TemplateTagHandler
      extended by xdoclet.XDocletTagSupport
          extended by xdoclet.modules.ejb.EjbTagsHandler
              extended by xdoclet.modules.ejb.dd.RelationTagsHandler
Direct Known Subclasses:
BorlandRelationTagsHandler, JBossRelationTagsHandler, JonasRelationTagsHandler, ResinEjbTagsHandler, WeblogicRelationTagsHandler

public class RelationTagsHandler
extends EjbTagsHandler

Version:
$Revision: 1.12 $
Author:
Aslak Helles?y, Ara Abrahamian (ara_e@email.com)
xdoclet.taghandler
namespace = "EjbRel"
created
Oct 15, 2001

Nested Class Summary
 class RelationTagsHandler.RelationHolder
          Holds class/method of the two end points of a relationship.
 
Field Summary
protected static RelationTagsHandler.RelationHolder currentRelation
          The current relation, set by forAllRelationships and used by forAllRelationshipRoles.
protected static java.util.Map relationMap
          A map containing all relations.
 
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
 
Constructor Summary
RelationTagsHandler()
           
 
Method Summary
 void forAllRelationships(java.lang.String template)
          Evaluates the body block for each relationship.
protected  boolean hasRelationships()
           
 void ifHasLeftRoleName(java.lang.String template)
          Describe what the method does
 void ifHasRelationships(java.lang.String template)
          Evaluates the body if at least one of the classes has an ejb:relation tag, otherwise not.
 void ifHasRightRoleName(java.lang.String template)
          Describe what the method does
 void ifIsBidirectional(java.lang.String template)
          Describe what the method does
 void ifIsLeftMany(java.lang.String template)
          Describe what the method does
 void ifIsMany2Many(java.lang.String template)
          Evaluates the body block if the current relationship is a many to many type, meaning, both sides of the relation returns java.util.Collection or java.util.Set.
 void ifIsNotACollection(java.lang.String template)
          Evaluates the body block if current method's return type is not a java.util.Collection or java.util.Set.
 void ifIsOne2Many(java.lang.String template)
          Evaluates the body block if the current relationship is a one to many type, meaning, ONLY ONE side of the relation returns java.util.Collection or java.util.Set.
 void ifIsOne2One(java.lang.String template)
          Evaluates the body block if the current relationship is a one to one type, meaning, neither side of the relation returns java.util.Collection or java.util.Set.
 void ifIsRightMany(java.lang.String template)
          Describe what the method does
 void ifIsUnidirectional(java.lang.String template)
          Describe what the method does
 void ifLeftCascadeDelete(java.lang.String template)
          Evaluates the body if the left side of this relation has cascade-delete=yes
 void ifLeftNavigable(java.lang.String template)
          Describe what the method does
 void ifNotHasRelationships(java.lang.String template)
          Evaluates the body if none of the classes has an ejb:relation tag, otherwise not.
 void ifNotIsMany2Many(java.lang.String template)
          Evaluates the body block if the current relationship IS NOT a many to many type, meaning, at least one side of the relation does not return java.util.Collection or java.util.Set.
 void ifNotIsOne2Many(java.lang.String template)
          Evaluates the body block if the current relationship IS NOT a one to many type, meaning, either both sides, or neither side of the relation returns java.util.Collection or java.util.Set.
 void ifNotIsOne2One(java.lang.String template)
          Evaluates the body block if the current relationship IS NOT a one to one type, meaning, at least one side of the relation returns java.util.Collection or java.util.Set.
 void ifRightCascadeDelete(java.lang.String template)
          Evaluates the body if the right side of this relation has cascade-delete=yes, or the left side has target-relation cascade-delete="yes"
 void ifRightNavigable(java.lang.String template)
          Describe what the method does
protected  boolean isSetOrCollection(java.lang.String type)
          Returns true if current method's return type is a java.util.Collection or java.util.Set, false otherwise.
 java.lang.String leftEJBName()
          Returns the EJB Name of the left side of this relationship
 java.lang.String leftFieldName()
          Describe what the method does
 java.lang.String leftFieldType()
          Describe what the method does
 java.lang.String leftMultiplicity()
          Describe what the method does
 java.lang.String leftRoleName()
          Describe what the method does
 java.lang.String relationComment()
          Describe what the method does
 java.lang.String relationName()
           
 java.lang.String rightEJBName()
          Returns the EJB Name of the right side of this relationship
 java.lang.String rightFieldName()
          Describe what the method does
 java.lang.String rightFieldType()
          Describe what the method does
 java.lang.String rightMultiplicity()
          Describe what the method does
 java.lang.String rightRoleName()
          Describe what the method does
 
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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

relationMap

protected static java.util.Map relationMap
A map containing all relations.


currentRelation

protected static RelationTagsHandler.RelationHolder currentRelation
The current relation, set by forAllRelationships and used by forAllRelationshipRoles. It somehow is like the current index for the forAllRelationships loop.

See Also:
forAllRelationships(java.lang.String)
Constructor Detail

RelationTagsHandler

public RelationTagsHandler()
Method Detail

ifLeftCascadeDelete

public void ifLeftCascadeDelete(java.lang.String template)
                         throws XDocletException
Evaluates the body if the left side of this relation has cascade-delete=yes

Parameters:
template - The body of the block tag
Throws:
XDocletException

ifRightCascadeDelete

public void ifRightCascadeDelete(java.lang.String template)
                          throws XDocletException
Evaluates the body if the right side of this relation has cascade-delete=yes, or the left side has target-relation cascade-delete="yes"

Parameters:
template - The body of the block tag
Throws:
XDocletException

leftEJBName

public java.lang.String leftEJBName()
                             throws XDocletException
Returns the EJB Name of the left side of this relationship

Returns:
Left side's EJB name
Throws:
XDocletException

rightEJBName

public java.lang.String rightEJBName()
                              throws XDocletException
Returns the EJB Name of the right side of this relationship

Returns:
Right side's EJB name
Throws:
XDocletException

ifHasRelationships

public void ifHasRelationships(java.lang.String template)
                        throws XDocletException
Evaluates the body if at least one of the classes has an ejb:relation tag, otherwise not.

Parameters:
template - The body of the block tag
Throws:
XDocletException

ifNotHasRelationships

public void ifNotHasRelationships(java.lang.String template)
                           throws XDocletException
Evaluates the body if none of the classes has an ejb:relation tag, otherwise not.

Parameters:
template - The body of the block tag
Throws:
XDocletException

relationName

public java.lang.String relationName()
                              throws XDocletException
Returns:
the name of the current relation
Throws:
XDocletException

forAllRelationships

public void forAllRelationships(java.lang.String template)
                         throws XDocletException
Evaluates the body block for each relationship. Relations are denoted by ejb:relation for the getter method of the cmr-field.

Parameters:
template - The body of the block tag
Throws:
XDocletException
See Also:
CmpTagsHandler.isEntityCmp(xjavadoc.XClass), PersistentTagsHandler.isPersistentField(xjavadoc.XMethod), MethodTagsHandler.isGetter(java.lang.String), isSetOrCollection(java.lang.String)
doc.tag
type = "block"

ifIsLeftMany

public void ifIsLeftMany(java.lang.String template)
                  throws XDocletException
Describe what the method does

Parameters:
template - Describe what the parameter does
Throws:
XDocletException

ifIsRightMany

public void ifIsRightMany(java.lang.String template)
                   throws XDocletException
Describe what the method does

Parameters:
template - Describe what the parameter does
Throws:
XDocletException

leftFieldName

public java.lang.String leftFieldName()
                               throws XDocletException
Describe what the method does

Returns:
Describe the return value
Throws:
XDocletException

rightFieldName

public java.lang.String rightFieldName()
                                throws XDocletException
Describe what the method does

Returns:
Describe the return value
Throws:
XDocletException

leftFieldType

public java.lang.String leftFieldType()
                               throws XDocletException
Describe what the method does

Returns:
Describe the return value
Throws:
XDocletException

rightFieldType

public java.lang.String rightFieldType()
                                throws XDocletException
Describe what the method does

Returns:
Describe the return value
Throws:
XDocletException

ifIsNotACollection

public void ifIsNotACollection(java.lang.String template)
                        throws XDocletException
Evaluates the body block if current method's return type is not a java.util.Collection or java.util.Set. Used by forAllRelationships.

Parameters:
template - The body of the block tag
Throws:
XDocletException
See Also:
forAllRelationships(java.lang.String)
doc.tag
type = "block"

relationComment

public java.lang.String relationComment()
Describe what the method does

Returns:
Describe the return value

ifIsOne2One

public void ifIsOne2One(java.lang.String template)
                 throws XDocletException
Evaluates the body block if the current relationship is a one to one type, meaning, neither side of the relation returns java.util.Collection or java.util.Set. Used by forAllRelationships.

Parameters:
template - The body of the block tag
Throws:
XDocletException
See Also:
forAllRelationships(java.lang.String)
doc.tag
type = "block"

ifNotIsOne2One

public void ifNotIsOne2One(java.lang.String template)
                    throws XDocletException
Evaluates the body block if the current relationship IS NOT a one to one type, meaning, at least one side of the relation returns java.util.Collection or java.util.Set. Used by forAllRelationships.

Parameters:
template - The body of the block tag
Throws:
XDocletException
See Also:
forAllRelationships(java.lang.String)
doc.tag
type = "block"

ifIsOne2Many

public void ifIsOne2Many(java.lang.String template)
                  throws XDocletException
Evaluates the body block if the current relationship is a one to many type, meaning, ONLY ONE side of the relation returns java.util.Collection or java.util.Set. Used by forAllRelationships.

Parameters:
template - The body of the block tag
Throws:
XDocletException
See Also:
forAllRelationships(java.lang.String)
doc.tag
type = "block"

ifNotIsOne2Many

public void ifNotIsOne2Many(java.lang.String template)
                     throws XDocletException
Evaluates the body block if the current relationship IS NOT a one to many type, meaning, either both sides, or neither side of the relation returns java.util.Collection or java.util.Set. Used by forAllRelationships.

Parameters:
template - The body of the block tag
Throws:
XDocletException
See Also:
forAllRelationships(java.lang.String)
doc.tag
type = "block"

ifIsMany2Many

public void ifIsMany2Many(java.lang.String template)
                   throws XDocletException
Evaluates the body block if the current relationship is a many to many type, meaning, both sides of the relation returns java.util.Collection or java.util.Set. Used by forAllRelationships.

Parameters:
template - The body of the block tag
Throws:
XDocletException
See Also:
forAllRelationships(java.lang.String)
doc.tag
type = "block"

ifNotIsMany2Many

public void ifNotIsMany2Many(java.lang.String template)
                      throws XDocletException
Evaluates the body block if the current relationship IS NOT a many to many type, meaning, at least one side of the relation does not return java.util.Collection or java.util.Set. Used by forAllRelationships.

Parameters:
template - The body of the block tag
Throws:
XDocletException
See Also:
forAllRelationships(java.lang.String)
doc.tag
type = "block"

ifIsBidirectional

public void ifIsBidirectional(java.lang.String template)
                       throws XDocletException
Describe what the method does

Parameters:
template - Describe what the parameter does
Throws:
XDocletException

ifIsUnidirectional

public void ifIsUnidirectional(java.lang.String template)
                        throws XDocletException
Describe what the method does

Parameters:
template - Describe what the parameter does
Throws:
XDocletException

ifHasLeftRoleName

public void ifHasLeftRoleName(java.lang.String template)
                       throws XDocletException
Describe what the method does

Parameters:
template - Describe what the parameter does
Throws:
XDocletException

ifHasRightRoleName

public void ifHasRightRoleName(java.lang.String template)
                        throws XDocletException
Describe what the method does

Parameters:
template - Describe what the parameter does
Throws:
XDocletException

ifLeftNavigable

public void ifLeftNavigable(java.lang.String template)
                     throws XDocletException
Describe what the method does

Parameters:
template - Describe what the parameter does
Throws:
XDocletException

ifRightNavigable

public void ifRightNavigable(java.lang.String template)
                      throws XDocletException
Describe what the method does

Parameters:
template - Describe what the parameter does
Throws:
XDocletException

leftRoleName

public java.lang.String leftRoleName()
                              throws XDocletException
Describe what the method does

Returns:
Describe the return value
Throws:
XDocletException

rightRoleName

public java.lang.String rightRoleName()
                               throws XDocletException
Describe what the method does

Returns:
Describe the return value
Throws:
XDocletException

leftMultiplicity

public java.lang.String leftMultiplicity()
                                  throws XDocletException
Describe what the method does

Returns:
Describe the return value
Throws:
XDocletException

rightMultiplicity

public java.lang.String rightMultiplicity()
                                   throws XDocletException
Describe what the method does

Returns:
Describe the return value
Throws:
XDocletException

isSetOrCollection

protected boolean isSetOrCollection(java.lang.String type)
Returns true if current method's return type is a java.util.Collection or java.util.Set, false otherwise.

Parameters:
type - Description of Parameter
Returns:
true if Collection or Set

hasRelationships

protected boolean hasRelationships()

http://xdoclet.sourceforge.net/