## xdoclet.modules.ejb.dd
Class RelationTagsHandler

    java.lang.Object
      xdoclet.template.TemplateTagHandler
          xdoclet.XDocletTagSupport
              xdoclet.modules.ejb.EjbTagsHandler
                  xdoclet.modules.ejb.dd.RelationTagsHandler

Direct Known Subclasses:
  BorlandRelationTagsHandler, JBossRelationTagsHandler, 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 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(String template)` Evaluates the body block for each relationship.
`protected boolean` `hasRelationships()`
`void` `ifHasLeftRoleName(String template)` Describe what the method does
`void` `ifHasRelationships(String template)` Evaluates the body if at least one of the classes has an ejb:relation tag, otherwise not.
`void` `ifHasRightRoleName(String template)` Describe what the method does
`void` `ifIsBidirectional(String template)` Describe what the method does
`void` `ifIsLeftMany(String template)` Describe what the method does
`void` `ifIsMany2Many(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(String template)` Evaluates the body block if current method's return type is not a java.util.Collection or java.util.Set.
`void` `ifIsOne2Many(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(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(String template)` Describe what the method does
`void` `ifIsUnidirectional(String template)` Describe what the method does
`void` `ifLeftCascadeDelete(String template)` Evaluates the body if the left side of this relation has cascade-delete=yes
`void` `ifLeftNavigable(String template)` Describe what the method does
`void` `ifNotHasRelationships(String template)` Evaluates the body if none of the classes has an ejb:relation tag, otherwise not.
`void` `ifNotIsMany2Many(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(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(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(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(String template)` Describe what the method does
`protected boolean` `isSetOrCollection(String type)` Returns true if current method's return type is a java.util.Collection or java.util.Set, false otherwise.
`String` `leftEJBName()` Returns the EJB Name of the left side of this relationship
`String` `leftFieldName()` Describe what the method does
`String` `leftFieldType()` Describe what the method does
`String` `leftMultiplicity()` Describe what the method does
`String` `leftRoleName()` Describe what the method does
`String` `relationComment()` Describe what the method does
`String` `relationName()`
`String` `rightEJBName()` Returns the EJB Name of the right side of this relationship
`String` `rightFieldName()` Describe what the method does
`String` `rightFieldType()` Describe what the method does
`String` `rightMultiplicity()` Describe what the method does
`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 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(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(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 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 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(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(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 String relationName()
                        throws XDocletException

  Returns:
    the name of the current relation
  Throws:
    `XDocletException`

### forAllRelationships

    public void forAllRelationships(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(String template)
                      throws XDocletException

  Describe what the method does

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

### ifIsRightMany

    public void ifIsRightMany(String template)
                       throws XDocletException

  Describe what the method does

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

### leftFieldName

    public String leftFieldName()
                         throws XDocletException

  Describe what the method does

  Returns:
    Describe the return value
  Throws:
    `XDocletException`

### rightFieldName

    public String rightFieldName()
                          throws XDocletException

  Describe what the method does

  Returns:
    Describe the return value
  Throws:
    `XDocletException`

### leftFieldType

    public String leftFieldType()
                         throws XDocletException

  Describe what the method does

  Returns:
    Describe the return value
  Throws:
    `XDocletException`

### rightFieldType

    public String rightFieldType()
                          throws XDocletException

  Describe what the method does

  Returns:
    Describe the return value
  Throws:
    `XDocletException`

### ifIsNotACollection

    public void ifIsNotACollection(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 String relationComment()

  Describe what the method does

  Returns:
    Describe the return value

### ifIsOne2One

    public void ifIsOne2One(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(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(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(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(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(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(String template)
                           throws XDocletException

  Describe what the method does

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

### ifIsUnidirectional

    public void ifIsUnidirectional(String template)
                            throws XDocletException

  Describe what the method does

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

### ifHasLeftRoleName

    public void ifHasLeftRoleName(String template)
                           throws XDocletException

  Describe what the method does

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

### ifHasRightRoleName

    public void ifHasRightRoleName(String template)
                            throws XDocletException

  Describe what the method does

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

### ifLeftNavigable

    public void ifLeftNavigable(String template)
                         throws XDocletException

  Describe what the method does

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

### ifRightNavigable

    public void ifRightNavigable(String template)
                          throws XDocletException

  Describe what the method does

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

### leftRoleName

    public String leftRoleName()
                        throws XDocletException

  Describe what the method does

  Returns:
    Describe the return value
  Throws:
    `XDocletException`

### rightRoleName

    public String rightRoleName()
                         throws XDocletException

  Describe what the method does

  Returns:
    Describe the return value
  Throws:
    `XDocletException`

### leftMultiplicity

    public String leftMultiplicity()
                            throws XDocletException

  Describe what the method does

  Returns:
    Describe the return value
  Throws:
    `XDocletException`

### rightMultiplicity

    public String rightMultiplicity()
                             throws XDocletException

  Describe what the method does

  Returns:
    Describe the return value
  Throws:
    `XDocletException`

### isSetOrCollection

    protected boolean isSetOrCollection(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/