001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017 package org.apache.activemq.console;
018
019 import java.io.OutputStream;
020 import java.util.Collection;
021 import java.util.Map;
022
023 import javax.jms.Message;
024 import javax.management.AttributeList;
025 import javax.management.ObjectInstance;
026 import javax.management.ObjectName;
027
028 import org.apache.activemq.console.formatter.OutputFormatter;
029
030 public final class CommandContext {
031 private OutputFormatter formatter;
032
033 /**
034 * Retrieve the output stream being used by the global formatter
035 *
036 * @return formatter's output stream
037 */
038 public OutputStream getOutputStream() {
039 if (formatter == null) {
040 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
041 }
042 return formatter.getOutputStream();
043 }
044
045 /**
046 * Print an ObjectInstance format of an mbean
047 *
048 * @param mbean - mbean to print
049 */
050 public void printMBean(ObjectInstance mbean) {
051 if (formatter == null) {
052 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
053 }
054 formatter.printMBean(mbean);
055 }
056
057 /**
058 * Print an ObjectName format of an mbean
059 *
060 * @param mbean - mbean to print
061 */
062 public void printMBean(ObjectName mbean) {
063 if (formatter == null) {
064 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
065 }
066 formatter.printMBean(mbean);
067 }
068
069 /**
070 * Print an AttributeList format of an mbean
071 *
072 * @param mbean - mbean to print
073 */
074 public void printMBean(AttributeList mbean) {
075 if (formatter == null) {
076 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
077 }
078 formatter.printMBean(mbean);
079 }
080
081 /**
082 * Print a Map format of an mbean
083 *
084 * @param mbean
085 */
086 @SuppressWarnings("rawtypes")
087 public void printMBean(Map mbean) {
088 if (formatter == null) {
089 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
090 }
091 formatter.printMBean(mbean);
092 }
093
094 /**
095 * Print a Collection format of mbeans
096 *
097 * @param mbean - collection of mbeans
098 */
099 @SuppressWarnings("rawtypes")
100 public void printMBean(Collection mbean) {
101 if (formatter == null) {
102 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
103 }
104 formatter.printMBean(mbean);
105 }
106
107 /**
108 * Print a Map format of a JMS message
109 *
110 * @param msg
111 */
112 @SuppressWarnings("rawtypes")
113 public void printMessage(Map msg) {
114 if (formatter == null) {
115 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
116 }
117 formatter.printMessage(msg);
118 }
119
120 /**
121 * Print a Message format of a JMS message
122 *
123 * @param msg - JMS message to print
124 */
125 public void printMessage(Message msg) {
126 if (formatter == null) {
127 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
128 }
129 formatter.printMessage(msg);
130 }
131
132 /**
133 * Print a collection of JMS messages
134 *
135 * @param msg - collection of JMS messages
136 */
137 @SuppressWarnings("rawtypes")
138 public void printMessage(Collection msg) {
139 if (formatter == null) {
140 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
141 }
142 formatter.printMessage(msg);
143 }
144
145 /**
146 * Print help messages
147 *
148 * @param helpMsgs - help messages to print
149 */
150 public void printHelp(String[] helpMsgs) {
151 if (formatter == null) {
152 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
153 }
154 formatter.printHelp(helpMsgs);
155 }
156
157 /**
158 * Print an information message
159 *
160 * @param info - information message to print
161 */
162 public void printInfo(String info) {
163 if (formatter == null) {
164 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
165 }
166 formatter.printInfo(info);
167 }
168
169 /**
170 * Print an exception message
171 *
172 * @param e - exception to print
173 */
174 public void printException(Exception e) {
175 if (formatter == null) {
176 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
177 }
178 formatter.printException(e);
179 }
180
181 /**
182 * Print a version information
183 *
184 * @param version - version info to print
185 */
186 public void printVersion(String version) {
187 if (formatter == null) {
188 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
189 }
190 formatter.printVersion(version);
191 }
192
193 /**
194 * Print a generic key value mapping
195 *
196 * @param map to print
197 */
198 @SuppressWarnings("rawtypes")
199 public void print(Map map) {
200 if (formatter == null) {
201 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
202 }
203 formatter.print(map);
204 }
205
206 /**
207 * Print a generic array of strings
208 *
209 * @param strings - string array to print
210 */
211 public void print(String[] strings) {
212 if (formatter == null) {
213 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
214 }
215 formatter.print(strings);
216 }
217
218 /**
219 * Print a collection of objects
220 *
221 * @param collection - collection to print
222 */
223 @SuppressWarnings("rawtypes")
224 public void print(Collection collection) {
225 if (formatter == null) {
226 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
227 }
228 formatter.print(collection);
229 }
230
231 /**
232 * Print a java string
233 *
234 * @param string - string to print
235 */
236 public void print(String string) {
237 if (formatter == null) {
238 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
239 }
240 formatter.print(string);
241 }
242
243 public OutputFormatter getFormatter() {
244 return formatter;
245 }
246
247 public void setFormatter(OutputFormatter formatter) {
248 this.formatter = formatter;
249 }
250 }