|
Found it. XDtClass:classTagValueMatch and XDtClass:matchValue did the trick. I can now specify my constants in my EJB class. So the following comments:
* @ejb:const name="TEXT_FIELD" type="String" value="text" * @ejb:const name="CHAR_FIELD" type="char" value="A" * @ejb:const name="PRIMITIVE_FIELD" type="int" value="100" * @ejb:const name="OBJECT_FIELD" type="Integer" value="200"
Generates the following code: public static final String TEXT_FIELD = "text"; public static final char CHAR_FIELD = 'A'; public static final int PRIMITIVE_FIELD = 100; public static final Integer OBJECT_FIELD = new Integer(200);
I use this as my remote-custom.xdt: <XDtClass:ifHasClassTag tagName="ejb:const"> <XDtClass:forAllClassTags tagName="ejb:const"> <XDtClass:classTagValueMatch tagName="ejb:const" paramName="type"/> <XDtType:ifIsPrimitive value="<XDtClass:matchValue/>"> <XDtClass:ifClassTagValueEquals tagName="ejb:const" paramName="type" value="char"> public static final <XDtClass:matchValue/> <XDtClass:classTagValue tagName="ejb:const" paramName="name"/> = '<XDtClass:classTagValue tagName="ejb:const" paramName="value"/>'; </XDtClass:ifClassTagValueEquals> <XDtClass:ifClassTagValueNotEquals tagName="ejb:const" paramName="type" value="char"> public static final <XDtClass:matchValue/> <XDtClass:classTagValue tagName="ejb:const" paramName="name"/> = <XDtClass:classTagValue tagName="ejb:const" paramName="value"/>; </XDtClass:ifClassTagValueNotEquals> </XDtType:ifIsPrimitive> <XDtType:ifIsNotPrimitive value="<XDtClass:matchValue/>"> <XDtClass:ifClassTagValueEquals tagName="ejb:const" paramName="type" value="String"> public static final <XDtClass:matchValue/> <XDtClass:classTagValue tagName="ejb:const" paramName="name"/> = "<XDtClass:classTagValue tagName="ejb:const" paramName="value"/>"; </XDtClass:ifClassTagValueEquals> <XDtClass:ifClassTagValueNotEquals tagName="ejb:const" paramName="type" value="String"> public static final <XDtClass:matchValue/> <XDtClass:classTagValue tagName="ejb:const" paramName="name"/> = new <XDtClass:matchValue/>(<XDtClass:classTagValue tagName="ejb:const" paramName="value"/>); </XDtClass:ifClassTagValueNotEquals> </XDtType:ifIsNotPrimitive> </XDtClass:forAllClassTags> </XDtClass:ifHasClassTag> <XDtClass:ifDoesntHaveClassTag tagName="ejb:const"> // if you want to add public static fields please use the tag ejb.const (remote-custom.xdt) </XDtClass:ifDoesntHaveClassTag>
-----Original Message-----
I have an _expression_ <XDtClass:classTagValue tagName="ejb:const" paramName="value"/> that I want to use inside of a <XDtType:ifIsNotPrimitiveOrString> _expression_. But I can’t seem to find how to save the _expression_ as a variable to use be used as the “value” parameter of ifIsNotPrimitiveOrString. Any ideas?
Basically what I’m trying to do is build on top of an idea someone had to allow you to specify constants in an EJB remote interface: <XDtClass:ifHasClassTag tagName="ejb:const"> <XDtClass:forAllClassTags tagName="ejb:const"> public static final <XDtClass:classTagValue tagName="ejb:const" paramName="type"/> <XDtClass:classTagValue tagName="ejb:const" paramName="name"/> = new <XDtClass:classTagValue tagName="ejb:const" paramName="type"/>(<XDtClass:classTagValue tagName="ejb:const" paramName="value"/>); </XDtClass:forAllClassTags> </XDtClass:ifHasClassTag> <XDtClass:ifDoesntHaveClassTag tagName="ejb:const"> // if you want to add public static fields please use the tag ejb.const (remote-custom.xdt) </XDtClass:ifDoesntHaveClassTag>
|
- [Xdoclet-user] Templates and variables william.poitras
- RE: [Xdoclet-user] Templates and variables william.poitras
