xdoclet.tagshandler

Class PackageTagsHandler.PackageSubstitution

Enclosing Class:
PackageTagsHandler
Implemented Interfaces:
Serializable

public static class PackageTagsHandler.PackageSubstitution
extends java.lang.Object
implements Serializable

It's good practice to put interfaces (such as remote/local interfaces, data objects and home interfaces) in a separate "interfaces" package rather than in the EJB bean implementation package. Previous versions of XDoclet dictated this behavior, so if package name of a bean ended with .beans or .ejb interfaces were put into .interfaces package. It's no more the case. You have full control over it. If you don't use a packageSubstitution element, then all interfaces are generated to the same package as the bean implementation class. But if you want to follow the pattern and put interfaces into a separate package you can, by providing the list of package name tails that interfaces of beans inside that packages should be placed into the package you define. For example interfaces of test.ejb.CustomerBean will be placed in test.interfaces by the following packageSubstitution:


<packageSubstitution packages="ejb,beans" substituteWith="interfaces" />

By using the useFirst attribute, you can tell xdoclet to substitute the first occurrence and not the last.
Now if you have a structure like

com.acme.foo.bar.ejb
com.acme.baz.lala.ejb

you want to gather all interfaces under one root/subtree like e.g.

com.acme.interfaces.bar.*
com.acme.interfaces.lala.*

now you can say:
<packagesubstitution packages="foo,baz" substituteWith="interfaces" useFirst="true"/>

created
10. september 2002

Method Summary

String
getPackages()
Gets the Packages attribute of the PackageSubstitution object
String
getSubstituteWith()
Gets the SubstituteWith attribute of the PackageSubstitution object
boolean
getUseFirst()
return the useAny attribute.
void
setPackages(String packages)
Sets the Packages attribute of the PackageSubstitution object
void
setSubstituteWith(String substituteWith)
Sets the SubstituteWith attribute of the PackageSubstitution object
void
setUseFirst(boolean first)
Sets the useFirst attribute

Method Details

getPackages

public String getPackages()
Gets the Packages attribute of the PackageSubstitution object

Returns:
The Packages value


getSubstituteWith

public String getSubstituteWith()
Gets the SubstituteWith attribute of the PackageSubstitution object

Returns:
The SubstituteWith value


getUseFirst

public boolean getUseFirst()
return the useAny attribute. This attribute specifies if the substitution can only appear at the end of a package (useAny=false) or also in the middle.

Returns:
boolean


setPackages

public void setPackages(String packages)
Sets the Packages attribute of the PackageSubstitution object

Parameters:
packages - The new Packages value


setSubstituteWith

public void setSubstituteWith(String substituteWith)
Sets the SubstituteWith attribute of the PackageSubstitution object

Parameters:
substituteWith - The new SubstituteWith value


setUseFirst

public void setUseFirst(boolean first)
Sets the useFirst attribute

Parameters:
first - should the first occurrence be used or not?