xdoclet.modules.ejb.intf

Class InterfaceTagsHandler


public class InterfaceTagsHandler
extends EjbTagsHandler

Version:
$Revision: 1.21 $
Authors:
Ara Abrahamian (ara_e@email.com)
Christoph G. Jung (christoph.jung@infor.de)
xdoclet.taghandler
namespace = "EjbIntf"
created
Oct 15, 2001

Field Summary

static String
SERVICE_ENDPOINT_EXTENDS_PARAM
static String
SERVICE_ENDPOINT_INTERFACE

Method Summary

String
beanClassNameFromInterfaceName(Properties attributes)
Returns the bean implementation class name for the interface name specified as the return type of current method or the method specified by parameter interface if any.
String
classTagIntf()
Returns the current interface inside a forAllClassTagIntf block
String
componentInterface(Properties attributes)
Returns the full qualified local or remote interface name for the bean, depending on the value of type parameter.
String
extendsFrom(Properties attributes)
Returns the name of the class home interface extends.
void
forAllClassTagIntf(String template, Properties attributes)
Evaluates the body for all interfaces which are compatible to the view-type which is set on the current class tag.
void
forAllInterfaceViewTypes(String template, Properties attributes)
Evaluates the body block for each view-type of current method.
protected String
fromInterfaceToBean(String value)
Loops over all classes and if value equals to local or remote or service-endpoint interface name of an EJBean full qualified name of that EJB is returned.
static String
getBeanClassNameFromInterfaceNameFor(String return_type)
Gets the BeanClassNameFromInterfaceNameFor attribute of the InterfaceTagsHandler class
static String
getComponentInterface(String type, XClass clazz)
Return the fully qualified name of the component interface of type specified.
protected String
getDependentClassFor(XClass clazz, String type)
Gets the DependentClassFor attribute of the InterfaceTagsHandler object
protected String
getInterfaceMethodName(String name)
Returns the interface method name depending on its type.
protected static String
getLocalClassPattern()
Gets the LocalClassPattern attribute of the InterfaceTagsHandler class
protected static String
getRemoteClassPattern()
Gets the RemoteClassPattern attribute of the InterfaceTagsHandler class
protected static String
getServiceEndpointClassPattern()
Gets the LocalClassPattern attribute of the InterfaceTagsHandler class
void
ifCurrentMethodViewTypeEquals(String template, Properties attributes)
Evaluates the body if the view-type of the current method is compatible with the value of the current method tag's parameter with the passed name.
void
ifHasClassTagIntf(String template)
Evaluates the body if a current interface is available inside a forAllClassTagIntf block
void
ifIsInterfaceMethod(String template)
Evaluates the body block if ejb:interface-method defined for current method.
void
ifIsInterfaceMethod(String template, Properties attributes)
Evaluate the body block if the current method is an EJB local or remote interface method.
void
ifIsNotInterfaceMethod(String template, Properties attributes)
Evaluate the body block if the current method is not an EJB local or remote interface method.
String
interfaceMethodName()
Returns interface method name for the current interface method.
static boolean
isComponentInterfaceMethod(XMethod method)
Returns true if method is a component interface method, false otherwise.
protected boolean
isInterfaceMethod(String intFace)
Implements functionality required by ifIsInterfaceMethod and ifIsNotInterfaceMethod(String,Properties).
static boolean
isInterfaceMethod(XMethod method)
Returns true if method is an interface method, false otherwise.
static boolean
isLocalMethod(XMethod method)
Returns true if method is a local interface method by looking at view-type parameter.
static boolean
isRemoteMethod(XMethod method)
Returns true if method is a remote interface method by looking at view-type parameter.
static boolean
isServiceEndpointMethod(XMethod method)
Returns true if method is a local interface method by looking at view-type parameter.
String
methodIntf(Properties attributes)
Returns "Remote" is current method has ejb:remote-method defined, "Home" otherwise.

Field Details

SERVICE_ENDPOINT_EXTENDS_PARAM

public static final String SERVICE_ENDPOINT_EXTENDS_PARAM

SERVICE_ENDPOINT_INTERFACE

public static final String SERVICE_ENDPOINT_INTERFACE

Method Details

beanClassNameFromInterfaceName

public String beanClassNameFromInterfaceName(Properties attributes)
            throws xdoclet.XDocletException
Returns the bean implementation class name for the interface name specified as the return type of current method or the method specified by parameter interface if any.
Parameters:
attributes -
Returns:
Bean class name
Throws:
xdoclet.XDocletException -
doc.tag
type = "content"

classTagIntf

public String classTagIntf()
            throws xdoclet.XDocletException
Returns the current interface inside a forAllClassTagIntf block
Returns:
Throws:
xdoclet.XDocletException - Description of Exception
doc.tag
type = "content"

componentInterface

public String componentInterface(Properties attributes)
            throws xdoclet.XDocletException
Returns the full qualified local or remote interface name for the bean, depending on the value of type parameter.
Parameters:
attributes - The attributes of the template tag
Returns:
Description of the Returned Value
Throws:
xdoclet.XDocletException -
doc.tag
type = "content"
doc.param
name = "type" optional = "false" values = "remote,local" description = "Specifies the type of component interface."

extendsFrom

public String extendsFrom(Properties attributes)
            throws xdoclet.XDocletException
Returns the name of the class home interface extends.
Parameters:
attributes -
Returns:
The name of generated PK class.
Throws:
xdoclet.XDocletException -
doc.tag
type = "content"

forAllClassTagIntf

public void forAllClassTagIntf(String template,
                               Properties attributes)
            throws xdoclet.XDocletException
Evaluates the body for all interfaces which are compatible to the view-type which is set on the current class tag. The body of this tag is also evaluated once, if no view-type attribute is set on the current class tag.
Parameters:
template - The body of the block tag
attributes - The attributes of the template tag
Throws:
xdoclet.XDocletException - Description of Exception
doc.tag
type = "block"
doc.param
name = "paramName" optional = "false" description = "The param name for the view-type on the current class tag."

forAllInterfaceViewTypes

public void forAllInterfaceViewTypes(String template,
                                     Properties attributes)
            throws xdoclet.XDocletException
Evaluates the body block for each view-type of current method. Sets currentMethodViewType internal variable of tag handler class, used by nested methodIntf.
Parameters:
template - The body of the block tag
attributes - The attributes of the template tag
Throws:
xdoclet.XDocletException -
doc.tag
type = "block"

fromInterfaceToBean

protected String fromInterfaceToBean(String value)
            throws xdoclet.XDocletException
Loops over all classes and if value equals to local or remote or service-endpoint interface name of an EJBean full qualified name of that EJB is returned.
Parameters:
value - Description of Parameter
Returns:
Description of the Returned Value
Throws:
xdoclet.XDocletException -

getBeanClassNameFromInterfaceNameFor

public static String getBeanClassNameFromInterfaceNameFor(String return_type)
            throws xdoclet.XDocletException
Gets the BeanClassNameFromInterfaceNameFor attribute of the InterfaceTagsHandler class
Parameters:
return_type - Describe what the parameter does
Returns:
The BeanClassNameFromInterfaceNameFor value
Throws:
xdoclet.XDocletException -

getComponentInterface

public static String getComponentInterface(String type,
                                           XClass clazz)
            throws xdoclet.XDocletException
Return the fully qualified name of the component interface of type specified. Works based on the ejb:interface class level tag. Relevant parameters for the ejb:interface tag are:
  • remote-class: The fully qualified name of the remote class - overrides all set patterns
  • local-class: The fully qualified name of the local class - overrides all set patterns
  • service-endpoint-class: The fully qualified name of the service endpoint class - overrides all set patterns
  • remote-pattern: The pattern to be used to determine the unqualified name of the remote class
  • local-pattern: The pattern to be used to determine the unqualified name of the local class
  • service-endpoint-pattern: The pattern to be used to determine the unqualified name of the service-endpoint class
  • pattern: The pattern to be used in determining the unqualified remote and/or local and/or service-endpoint interface name - used where remote- or local- or service-endpoint-pattern are not specified.
  • remote-package: The package the remote interface is to be placed in
  • local-package: The package the local interface is to be placed in
  • service-endpoint-package: The package the service-endpoint interface is to be placed in
  • package: The package the remote and/or local and/or service-endpoint interface is to be placed in - used where remote- or local- or service-endpoint-package are not specified.
Parameters:
type - Can be remote or local. Defaults to remote.
clazz - Description of Parameter
Returns:
The fully qualified name of the interface.
Throws:
xdoclet.XDocletException -

getDependentClassFor

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

getInterfaceMethodName

protected String getInterfaceMethodName(String name)
            throws xdoclet.XDocletException
Returns the interface method name depending on its type.
Parameters:
name - Description of Parameter
Returns:
"create" if ejbCreate, "remote" if ejbRemove, find if ejbFind, home if ejbHome.
Throws:
xdoclet.XDocletException -

getLocalClassPattern

protected static String getLocalClassPattern()
Gets the LocalClassPattern attribute of the InterfaceTagsHandler class
Returns:
The LocalClassPattern value

getRemoteClassPattern

protected static String getRemoteClassPattern()
Gets the RemoteClassPattern attribute of the InterfaceTagsHandler class
Returns:
The RemoteClassPattern value

getServiceEndpointClassPattern

protected static String getServiceEndpointClassPattern()
Gets the LocalClassPattern attribute of the InterfaceTagsHandler class
Returns:
The LocalClassPattern value

ifCurrentMethodViewTypeEquals

public void ifCurrentMethodViewTypeEquals(String template,
                                          Properties attributes)
            throws xdoclet.XDocletException
Evaluates the body if the view-type of the current method is compatible with the value of the current method tag's parameter with the passed name.
Parameters:
template - The body of the block tag
attributes - The attributes of the template tag
Throws:
xdoclet.XDocletException - Description of Exception
doc.tag
type = "block"
doc.param
name = "paramName" optional = "false" description = +The paramnamefor theview-typeon thecurrentmethod tag"

ifHasClassTagIntf

public void ifHasClassTagIntf(String template)
            throws xdoclet.XDocletException
Evaluates the body if a current interface is available inside a forAllClassTagIntf block
Parameters:
template - The body of the block tag
Throws:
xdoclet.XDocletException - Description of Exception
doc.tag
type = "block"

ifIsInterfaceMethod

public void ifIsInterfaceMethod(String template)
            throws xdoclet.XDocletException
Evaluates the body block if ejb:interface-method defined for current method.
Parameters:
template - The body of the block tag
Throws:
xdoclet.XDocletException -
See Also:
isInterfaceMethod(xjavadoc.XMethod)
doc.tag
type = "block"

ifIsInterfaceMethod

public void ifIsInterfaceMethod(String template,
                                Properties attributes)
            throws xdoclet.XDocletException
Evaluate the body block if the current method is an EJB local or remote interface method.
Parameters:
template - The body of the block tag
attributes - The attributes of the template tag
Throws:
xdoclet.XDocletException -
doc.tag
type = "block"
doc.param
name = "interface" optional = "false" description = "The type of interface to check for the methods validity in. Can be either \"local\" or \"remote\"."
name = "superclasses" optional = "true" description = "Traverse superclasses too. With false value used in remote/local. Default is True."

ifIsNotInterfaceMethod

public void ifIsNotInterfaceMethod(String template,
                                   Properties attributes)
            throws xdoclet.XDocletException
Evaluate the body block if the current method is not an EJB local or remote interface method.
Parameters:
template - The body of the block tag
attributes - The attributes of the template tag
Throws:
xdoclet.XDocletException -
doc.tag
type = "block"
doc.param
name = "interface" optional = "false" description = "The type of interface to check for the methods validity in. Can be either \"local\" or \"remote\"."

interfaceMethodName

public String interfaceMethodName()
            throws xdoclet.XDocletException
Returns interface method name for the current interface method.
Returns:
"Remote" or "Home".
Throws:
xdoclet.XDocletException -
See Also:
getInterfaceMethodName(java.lang.String)
doc.tag
type = "content"

isComponentInterfaceMethod

public static boolean isComponentInterfaceMethod(XMethod method)
Returns true if method is a component interface method, false otherwise. Component interface methods are marked with a ejb:interface-method tag.
Parameters:
method - Description of Parameter
Returns:
The RemoteMethod value

isInterfaceMethod

protected boolean isInterfaceMethod(String intFace)
            throws xdoclet.XDocletException
Implements functionality required by ifIsInterfaceMethod and ifIsNotInterfaceMethod(String,Properties). To determine what interfaces the method should appear in, check the first for a view-type parameter to the method level ejb:interface-method tag. If that is absent use the view-type tag from ejb:bean .
Parameters:
intFace - The type of interface to test the method for.
Returns:
true if the method should occur in the specified interface.
Throws:
xdoclet.XDocletException -

isInterfaceMethod

public static boolean isInterfaceMethod(XMethod method)
Returns true if method is an interface method, false otherwise. Interface methods are remote/create/remove/finder/home methods.
Parameters:
method - Description of Parameter
Returns:
The InterfaceMethod value

isLocalMethod

public static boolean isLocalMethod(XMethod method)
            throws xdoclet.XDocletException
Returns true if method is a local interface method by looking at view-type parameter.
Parameters:
method - Description of Parameter
Returns:
The isRemoteMethod value
Throws:
xdoclet.XDocletException -

isRemoteMethod

public static boolean isRemoteMethod(XMethod method)
            throws xdoclet.XDocletException
Returns true if method is a remote interface method by looking at view-type parameter.
Parameters:
method - Description of Parameter
Returns:
The isRemoteMethod value
Throws:
xdoclet.XDocletException -

isServiceEndpointMethod

public static boolean isServiceEndpointMethod(XMethod method)
            throws xdoclet.XDocletException
Returns true if method is a local interface method by looking at view-type parameter.
Parameters:
method - Description of Parameter
Returns:
The isRemoteMethod value
Throws:
xdoclet.XDocletException -

methodIntf

public String methodIntf(Properties attributes)
            throws xdoclet.XDocletException
Returns "Remote" is current method has ejb:remote-method defined, "Home" otherwise.
Parameters:
attributes - The attributes of the template tag
Returns:
"Remote" or "Home".
Throws:
xdoclet.XDocletException -
See Also:
isRemoteMethod(xjavadoc.XMethod)
doc.tag
type = "content"