KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > xdoclet > modules > ibm > websphere > ejb > WebSphereTagsHandler


1 /*
2  * Copyright (c) 2001, 2002 The XDoclet team
3  * All rights reserved.
4  */

5 package xdoclet.modules.ibm.websphere.ejb;
6
7 import java.util.Collection JavaDoc;
8 import java.util.Iterator JavaDoc;
9 import java.util.Properties JavaDoc;
10 import xjavadoc.XTag;
11
12 import xdoclet.XDocletException;
13 import xdoclet.modules.ejb.env.EnvTagsHandler;
14
15 /**
16  * @author Matthias Germann (matthias@germann.com)
17  * @created December 24, 2004
18  * @modified Matthias Germann (matthias@germann.com)
19  * @xdoclet.taghandler namespace="WebSphere"
20  * @version $Revision: 1.3 $
21  */

22 public class WebSphereTagsHandler extends EnvTagsHandler
23 {
24     /**
25      * Iterates over all \@websphere.resource-ref tags with the same res-ref-name as the current tag
26      *
27      * @param template The body of the block tag
28      * @param attributes The attributes of the template tag
29      * @throws XDocletException if something goes wrong
30      * @doc.tag type="block"
31      * @doc.param name="nameParam" optional="true" default="res-ref-name" description="The name of the
32      * current tag's parameter which contains the name of the resource reference. The value of this parameter is
33      * used for finding the corresponding \@websphere.resource-ref tag"
34      */

35     public void forAllResourceRefs(String JavaDoc template, Properties JavaDoc attributes) throws XDocletException
36     {
37         if (currentTag == null) {
38             throw new XDocletException("XDtWebSphere.forAllResourceRefs can only be used inside XDtWebSphere.forAllTags");
39         }
40
41         String JavaDoc nameParam = attributes.getProperty("nameParam", "res-ref-name");
42         String JavaDoc resRefName = currentTag.getAttributeValue(nameParam);
43
44         XTag wsResRef = null;
45
46         if (currentMember == null) {
47             // class level
48
Collection JavaDoc tags = getCurrentClass().getDoc().getTags("websphere:resource-ref", true);
49
50             for (Iterator JavaDoc i = tags.iterator(); i.hasNext(); ) {
51                 XTag tag = (XTag) i.next();
52                 String JavaDoc attr = tag.getAttributeValue("res-ref-name");
53
54                 if (resRefName != null && !resRefName.equals(attr)) {
55                     continue;
56                 }
57
58                 wsResRef = tag;
59             }
60         }
61         else {
62             // field- or method-level
63
wsResRef = currentMember.getDoc().getTag("websphere:resource-ref", true);
64         }
65
66         if (wsResRef != null) {
67             XTag oldCurrentTag = currentTag;
68
69             currentTag = wsResRef;
70             generate(template);
71             currentTag = oldCurrentTag;
72         }
73     }
74 }
75
Popular Tags