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
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 public void printMBean(Map mbean) {
087 if (formatter == null) {
088 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
089 }
090 formatter.printMBean(mbean);
091 }
092
093 /**
094 * Print a Collection format of mbeans
095 *
096 * @param mbean - collection of mbeans
097 */
098 public void printMBean(Collection mbean) {
099 if (formatter == null) {
100 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
101 }
102 formatter.printMBean(mbean);
103 }
104
105 /**
106 * Print a Map format of a JMS message
107 *
108 * @param msg
109 */
110 public void printMessage(Map msg) {
111 if (formatter == null) {
112 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
113 }
114 formatter.printMessage(msg);
115 }
116
117 /**
118 * Print a Message format of a JMS message
119 *
120 * @param msg - JMS message to print
121 */
122 public void printMessage(Message msg) {
123 if (formatter == null) {
124 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
125 }
126 formatter.printMessage(msg);
127 }
128
129 /**
130 * Print a collection of JMS messages
131 *
132 * @param msg - collection of JMS messages
133 */
134 public void printMessage(Collection msg) {
135 if (formatter == null) {
136 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
137 }
138 formatter.printMessage(msg);
139 }
140
141 /**
142 * Print help messages
143 *
144 * @param helpMsgs - help messages to print
145 */
146 public void printHelp(String[] helpMsgs) {
147 if (formatter == null) {
148 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
149 }
150 formatter.printHelp(helpMsgs);
151 }
152
153 /**
154 * Print an information message
155 *
156 * @param info - information message to print
157 */
158 public void printInfo(String info) {
159 if (formatter == null) {
160 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
161 }
162 formatter.printInfo(info);
163 }
164
165 /**
166 * Print an exception message
167 *
168 * @param e - exception to print
169 */
170 public void printException(Exception e) {
171 if (formatter == null) {
172 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
173 }
174 formatter.printException(e);
175 }
176
177 /**
178 * Print a version information
179 *
180 * @param version - version info to print
181 */
182 public void printVersion(String version) {
183 if (formatter == null) {
184 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
185 }
186 formatter.printVersion(version);
187 }
188
189 /**
190 * Print a generic key value mapping
191 *
192 * @param map to print
193 */
194 public void print(Map map) {
195 if (formatter == null) {
196 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
197 }
198 formatter.print(map);
199 }
200
201 /**
202 * Print a generic array of strings
203 *
204 * @param strings - string array to print
205 */
206 public void print(String[] strings) {
207 if (formatter == null) {
208 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
209 }
210 formatter.print(strings);
211 }
212
213 /**
214 * Print a collection of objects
215 *
216 * @param collection - collection to print
217 */
218 public void print(Collection collection) {
219 if (formatter == null) {
220 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
221 }
222 formatter.print(collection);
223 }
224
225 /**
226 * Print a java string
227 *
228 * @param string - string to print
229 */
230 public void print(String string) {
231 if (formatter == null) {
232 throw new IllegalStateException("No OutputFormatter specified. Use GlobalWriter.instantiate(OutputFormatter).");
233 }
234 formatter.print(string);
235 }
236
237 public OutputFormatter getFormatter() {
238 return formatter;
239 }
240
241 public void setFormatter(OutputFormatter formatter) {
242 this.formatter = formatter;
243 }
244 }