View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    * 
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   * 
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  
18  
19  package org.apache.commons.modeler;
20  
21  
22  import java.io.Serializable;
23  
24  import javax.management.MBeanParameterInfo;
25  
26  
27  /***
28   * <p>Internal configuration information for a <code>Parameter</code>
29   * descriptor.</p>
30   *
31   * @author Craig R. McClanahan
32   * @version $Revision: 480402 $ $Date: 2006-11-29 04:43:23 +0000 (Wed, 29 Nov 2006) $
33   */
34  
35  public class ParameterInfo extends FeatureInfo implements Serializable {
36      static final long serialVersionUID = 2222796006787664020L;
37      // ----------------------------------------------------------- Constructors
38  
39  
40      /***
41       * Standard zero-arguments constructor.
42       */
43      public ParameterInfo() {
44  
45          super();
46  
47      }
48  
49  
50      /***
51       * Special constructor for setting up parameters programatically.
52       *
53       * @param name Name of this parameter
54       * @param type Java class of this parameter
55       * @param description Description of this parameter
56       */
57      public ParameterInfo(String name, String type, String description) {
58  
59          super();
60          setName(name);
61          setType(type);
62          setDescription(description);
63  
64      }
65  
66  
67      // ----------------------------------------------------- Instance Variables
68  
69  
70      /***
71       * The <code>MBeanParameterInfo</code> object that corresponds
72       * to this <code>ParameterInfo</code> instance.
73       */
74      transient MBeanParameterInfo info = null;
75      protected String type = null;
76  
77      // ------------------------------------------------------------- Properties
78  
79  
80      /***
81       * Override the <code>description</code> property setter.
82       *
83       * @param description The new description
84       */
85      public void setDescription(String description) {
86          super.setDescription(description);
87          this.info = null;
88      }
89  
90  
91      /***
92       * Override the <code>name</code> property setter.
93       *
94       * @param name The new name
95       */
96      public void setName(String name) {
97          super.setName(name);
98          this.info = null;
99      }
100 
101 
102     /***
103      * The fully qualified Java class name of this parameter.
104      */
105     public String getType() {
106         return (this.type);
107     }
108 
109     public void setType(String type) {
110         this.type = type;
111         this.info = null;
112     }
113 
114 
115     // --------------------------------------------------------- Public Methods
116 
117 
118     /***
119      * Create and return a <code>MBeanParameterInfo</code> object that
120      * corresponds to the parameter described by this instance.
121      */
122     public MBeanParameterInfo createParameterInfo() {
123 
124         // Return our cached information (if any)
125         if (info != null)
126             return (info);
127 
128         // Create and return a new information object
129         info = new MBeanParameterInfo
130             (getName(), getType(), getDescription());
131         return (info);
132 
133     }
134 
135 
136     /***
137      * Return a string representation of this parameter descriptor.
138      */
139     public String toString() {
140 
141         StringBuffer sb = new StringBuffer("ParameterInfo[");
142         sb.append("name=");
143         sb.append(name);
144         sb.append(", description=");
145         sb.append(description);
146         sb.append(", type=");
147         sb.append(type);
148         sb.append("]");
149         return (sb.toString());
150 
151     }
152 }