KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > webjmx > tags > QueryNamesTag


1 /*
2  * Copyright (C) WebJMX.
3  * All rights reserved.
4  *
5  * This software is distributed under the terms of the WebJMX License version 2.0.
6  * See the terms of the WebJMX License in the documentation provided with this software.
7  */

8 /*
9  * QueryNamesTag.java
10  *
11  * Created on October 24, 2001, 10:15 AM
12  */

13
14 package org.webjmx.tags;
15
16 import java.io.*;
17 import java.util.*;
18 import javax.management.*;
19 import javax.servlet.jsp.*;
20 import javax.servlet.jsp.tagext.*;
21
22 /** This puts a set of ObjectName instance in the page context under the given ID.
23  * CALL -> server.queryNames(name, query)
24  *
25  * @author John Aronson
26  */

27 public class QueryNamesTag extends BodyTagSupport
28     implements JMXTaglibConstants
29 {
30     /** Holds value of property id. */
31     private String JavaDoc id;
32     
33     /** server is the ID of a page attribute of type MBeanServer. */
34     private String JavaDoc server;
35     
36     /** name is the ID of a page attribute of type ObjectName, or a String that
37     * can be directly converted to an ObjectName.
38     */

39     private String JavaDoc name;
40     
41     /** query is the ID of a page attribute of type QueryExp. */
42     private String JavaDoc query;
43     
44     /** Creates new QueryNamesTag */
45     public QueryNamesTag()
46     { }
47
48     /** Process the start tag for this instance.
49      * @throws JspException
50      */

51     public int doEndTag()
52         throws JspException
53     {
54         Object JavaDoc o = pageContext.getAttribute(server);
55         if(o == null ||!(o instanceof MBeanServer))
56             throw new JspException("QueryNamesTag requires type MBeanServer, Illegal server: " +o.getClass());
57         MBeanServer s = (MBeanServer)o;
58         if(name == null)
59         {
60             //try to read the name out of the body content
61
BufferedReader in = new BufferedReader(getBodyContent().getReader());
62             StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
63
64             try
65             {
66                 String JavaDoc line = in.readLine();
67                 while(line != null)
68                 {
69                     sb.append(line);
70                     line = in.readLine();
71                 }
72                 if(Boolean.getBoolean(DEBUG_PROP)) pageContext.getServletContext().log("mbean tag body content: " +sb.toString());
73                 getBodyContent().clear();
74             }catch(IOException ie)
75             { ie.printStackTrace(); }
76             name = sb.toString();
77         }
78         if(Boolean.getBoolean(DEBUG_PROP)) pageContext.getServletContext().log("name: " +name);
79         o = pageContext.getAttribute(name);
80         if(Boolean.getBoolean(DEBUG_PROP)) pageContext.getServletContext().log("object name: " +o);
81         if(o == null)
82         {
83             try{ o = new ObjectName(name); }
84             catch(MalformedObjectNameException mfe) { mfe.printStackTrace(); }
85         }if(o != null && !(o instanceof ObjectName))
86             throw new JspException("QueryNamesTag requires type ObjectName, Illegal name: " +o);
87         ObjectName n = (ObjectName)o;
88         if(Boolean.getBoolean(DEBUG_PROP)) pageContext.getServletContext().log("object name: " +n);
89         if(query != null)
90         {
91             o = pageContext.getAttribute(query);
92             if(o != null && !(o instanceof QueryExp))
93                 throw new JspException("QueryNamesTag requires type QueryExp, Illegal query: " +o);
94         }else
95             o = null;
96         QueryExp q = (QueryExp)o;
97         Set names = s.queryNames(n, q);
98         if(Boolean.getBoolean(DEBUG_PROP)) pageContext.getServletContext().log("queryNames[" +name +"] set size: " +names.size());
99         pageContext.setAttribute(id, names);
100         return (SKIP_BODY);
101     }
102     
103     /** Getter for property id.
104      * @return Value of property id.
105      */

106     public String JavaDoc getId()
107     {
108         return id;
109     }
110     
111     /** Setter for property id.
112      * @param id New value of property id.
113      */

114     public void setId(String JavaDoc id)
115     {
116         this.id = id;
117     }
118     
119     /** Getter for property server.
120      * @return Value of property server.
121      */

122     public String JavaDoc getServer()
123     {
124         return server;
125     }
126     
127     /** Setter for property server.
128      * @param server New value of property server.
129      */

130     public void setServer(String JavaDoc server)
131     {
132         this.server = server;
133     }
134     
135     /** Getter for property name.
136      * @return Value of property name.
137      */

138     public String JavaDoc getName()
139     {
140         return name;
141     }
142     
143     /** Setter for property name.
144      * @param name New value of property name.
145      */

146     public void setName(String JavaDoc name)
147     {
148         this.name = name;
149     }
150     
151     /** Getter for property query.
152      * @return Value of property query.
153      */

154     public String JavaDoc getQuery()
155     {
156         return query;
157     }
158     
159     /** Setter for property query.
160      * @param query New value of property query.
161      */

162     public void setQuery(String JavaDoc query)
163     {
164         this.query = query;
165     }
166     
167     /** Called on a Tag handler to release state
168      *
169      */

170     public void release()
171     {
172         name = id = server = query = null;
173     }
174     
175 }
176
Popular Tags