001: /*
002: * BEGIN_HEADER - DO NOT EDIT
003: *
004: * The contents of this file are subject to the terms
005: * of the Common Development and Distribution License
006: * (the "License"). You may not use this file except
007: * in compliance with the License.
008: *
009: * You can obtain a copy of the license at
010: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
011: * See the License for the specific language governing
012: * permissions and limitations under the License.
013: *
014: * When distributing Covered Code, include this CDDL
015: * HEADER in each file and include the License file at
016: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
017: * If applicable add the following below this CDDL HEADER,
018: * with the fields enclosed by brackets "[]" replaced with
019: * your own identifying information: Portions Copyright
020: * [year] [name of copyright owner]
021: */
022:
023: /*
024: * @(#)ComponentStatisticsData.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029:
030: package com.sun.esb.management.common.data;
031:
032: import java.io.Serializable;
033: import java.util.HashMap;
034: import java.util.Iterator;
035: import java.util.Map;
036:
037: import javax.management.openmbean.CompositeData;
038: import javax.management.openmbean.CompositeType;
039: import javax.management.openmbean.TabularData;
040: import javax.xml.parsers.ParserConfigurationException;
041: import javax.xml.transform.TransformerException;
042:
043: import com.sun.esb.management.common.ManagementRemoteException;
044: import com.sun.esb.management.common.data.helper.ComponentStatisticsDataCreator;
045: import com.sun.esb.management.common.data.helper.ComponentStatisticsDataWriter;
046:
047: /**
048: * Provides Component Statistics
049: *
050: * @author graj
051: *
052: */
053: public class ComponentStatisticsData implements Serializable {
054: static final long serialVersionUID = -1L;
055:
056: public static final String INSTANCENAME_KEY = "InstanceName";
057:
058: public static final String COMPONENTUPTIME_KEY = "ComponentUpTime (ms)";
059:
060: public static final String NUMACTIVATEDENDPOINTS_KEY = "NumActivatedEndpoints";
061:
062: public static final String NUMRECEIVEDREQUESTS_KEY = "NumReceivedRequests";
063:
064: public static final String NUMSENTREQUESTS_KEY = "NumSentRequests";
065:
066: public static final String NUMRECEIVEDREPLIES_KEY = "NumReceivedReplies";
067:
068: public static final String NUMSENTREPLIES_KEY = "NumSentReplies";
069:
070: public static final String NUMRECEIVEDDONES_KEY = "NumReceivedDONEs";
071:
072: public static final String NUMSENTDONES_KEY = "NumSentDONEs";
073:
074: public static final String NUMRECEIVEDFAULTS_KEY = "NumReceivedFaults";
075:
076: public static final String NUMSENTFAULTS_KEY = "NumSentFaults";
077:
078: public static final String NUMRECEIVEDERRORS_KEY = "NumReceivedErrors";
079:
080: public static final String NUMSENTERRORS_KEY = "NumSentErrors";
081:
082: public static final String NUMCOMPLETEDEXCHANGES_KEY = "NumCompletedExchanges";
083:
084: public static final String NUMACTIVEEXCHANGES_KEY = "NumActiveExchanges";
085:
086: public static final String NUMERROREXCHANGES_KEY = "NumErrorExchanges";
087:
088: public static final String ME_RESPONSETIME_AVG_KEY = "MessageExchangeResponseTime Avg (ns)";
089:
090: public static final String ME_COMPONENTTIME_AVG_KEY = "MessageExchangeComponentTime Avg (ns)";
091:
092: public static final String ME_DELIVERYCHANNELTIME_AVG_KEY = "MessageExchangeDeliveryTime Avg (ns)";
093:
094: public static final String ME_MESSAGESERVICETIME_AVG_KEY = "MessageExchangeNMRTime Avg (ns)";
095:
096: public static final String COMPONENTEXTENSIONSTATS_KEY = "ComponentExtensionStats";
097:
098: protected String instanceName;
099:
100: protected long componentUpTime;
101:
102: protected long numberOfActivatedEndpoints;
103:
104: protected long numberOfReceivedRequests;
105:
106: protected long numberOfSentRequests;
107:
108: protected long numberOfReceivedReplies;
109:
110: protected long numberOfSentReplies;
111:
112: protected long numberOfReceivedDones;
113:
114: protected long numberOfSentDones;
115:
116: protected long numberOfReceivedFaults;
117:
118: protected long numberOfSentFaults;
119:
120: protected long numberOfReceivedErrors;
121:
122: protected long numberOfSentErrors;
123:
124: protected long numberOfCompletedExchanges;
125:
126: protected long numberOfActiveExchanges;
127:
128: protected long numberOfErrorExchanges;
129:
130: protected double messageExchangeResponseTimeAverage;
131:
132: protected double messageExchangeComponentTimeAverage;
133:
134: protected double messageExchangeDeliveryChannelTimeAverage;
135:
136: protected double messageExchangeMessageServiceTimeAverage;
137:
138: protected CompositeData componentExtensionStatus;
139:
140: protected String componentExtensionStatusAsString;
141:
142: /** Constructor - creates a ComponentStatisticsData object */
143: public ComponentStatisticsData() {
144: }
145:
146: /**
147: * Generate Tabular Data for this object
148: * @return tabular data of this object
149: */
150: static public TabularData generateTabularData(
151: Map<String /* instanceName */, ComponentStatisticsData> map) {
152: TabularData tabularData = null;
153: try {
154: tabularData = ComponentStatisticsDataCreator
155: .createTabularData(map);
156: } catch (ManagementRemoteException e) {
157: }
158: return tabularData;
159: }
160:
161: /**
162: * Retrieves the Component Statistics Data Map
163: *
164: * @param tabularData
165: * @return Component Statistics Data
166: */
167: @SuppressWarnings("unchecked")
168: static public Map<String /* instanceName */, ComponentStatisticsData> retrieveDataMap(
169: TabularData tabularData) {
170: ComponentStatisticsData data = null;
171: Map<String /* instanceName */, ComponentStatisticsData> dataMap = null;
172: dataMap = new HashMap<String /* instanceName */, ComponentStatisticsData>();
173: for (Iterator dataIterator = tabularData.values().iterator(); dataIterator
174: .hasNext();) {
175: CompositeData compositeData = (CompositeData) dataIterator
176: .next();
177: CompositeType compositeType = compositeData
178: .getCompositeType();
179: data = new ComponentStatisticsData();
180: for (Iterator<String> itemIterator = compositeType.keySet()
181: .iterator(); itemIterator.hasNext();) {
182: String item = (String) itemIterator.next();
183: if (true == item
184: .equals(ComponentStatisticsData.INSTANCENAME_KEY)) {
185: String value = (String) compositeData.get(item);
186: data.setInstanceName(value);
187: }
188: if (true == item
189: .equals(ComponentStatisticsData.COMPONENTUPTIME_KEY)) {
190: Long value = (Long) compositeData.get(item);
191: data.setComponentUpTime(value.longValue());
192: }
193: if (true == item
194: .equals(ComponentStatisticsData.NUMACTIVATEDENDPOINTS_KEY)) {
195: Long value = (Long) compositeData.get(item);
196: data.setNumberOfActivatedEndpoints(value
197: .longValue());
198: }
199: if (true == item
200: .equals(ComponentStatisticsData.NUMRECEIVEDREQUESTS_KEY)) {
201: Long value = (Long) compositeData.get(item);
202: data.setNumberOfReceivedRequests(value.longValue());
203: }
204: if (true == item
205: .equals(ComponentStatisticsData.NUMSENTREQUESTS_KEY)) {
206: Long value = (Long) compositeData.get(item);
207: data.setNumberOfSentRequests(value.longValue());
208: }
209: if (true == item
210: .equals(ComponentStatisticsData.NUMRECEIVEDREPLIES_KEY)) {
211: Long value = (Long) compositeData.get(item);
212: data.setNumberOfReceivedReplies(value.longValue());
213: }
214: if (true == item
215: .equals(ComponentStatisticsData.NUMSENTREPLIES_KEY)) {
216: Long value = (Long) compositeData.get(item);
217: data.setNumberOfSentReplies(value.longValue());
218: }
219: if (true == item
220: .equals(ComponentStatisticsData.NUMRECEIVEDDONES_KEY)) {
221: Long value = (Long) compositeData.get(item);
222: data.setNumberOfReceivedDones(value.longValue());
223: }
224: if (true == item
225: .equals(ComponentStatisticsData.NUMSENTDONES_KEY)) {
226: Long value = (Long) compositeData.get(item);
227: data.setNumberOfSentDones(value.longValue());
228: }
229: if (true == item
230: .equals(ComponentStatisticsData.NUMRECEIVEDFAULTS_KEY)) {
231: Long value = (Long) compositeData.get(item);
232: data.setNumberOfReceivedFaults(value.longValue());
233: }
234: if (true == item
235: .equals(ComponentStatisticsData.NUMSENTFAULTS_KEY)) {
236: Long value = (Long) compositeData.get(item);
237: data.setNumberOfSentFaults(value.longValue());
238: }
239: if (true == item
240: .equals(ComponentStatisticsData.NUMRECEIVEDERRORS_KEY)) {
241: Long value = (Long) compositeData.get(item);
242: data.setNumberOfReceivedErrors(value.longValue());
243: }
244: if (true == item
245: .equals(ComponentStatisticsData.NUMSENTERRORS_KEY)) {
246: Long value = (Long) compositeData.get(item);
247: data.setNumberOfSentErrors(value.longValue());
248: }
249: if (true == item
250: .equals(ComponentStatisticsData.NUMCOMPLETEDEXCHANGES_KEY)) {
251: Long value = (Long) compositeData.get(item);
252: data.setNumberOfCompletedExchanges(value
253: .longValue());
254: }
255: if (true == item
256: .equals(ComponentStatisticsData.NUMACTIVEEXCHANGES_KEY)) {
257: Long value = (Long) compositeData.get(item);
258: data.setNumberOfActiveExchanges(value.longValue());
259: }
260: if (true == item
261: .equals(ComponentStatisticsData.NUMERROREXCHANGES_KEY)) {
262: Long value = (Long) compositeData.get(item);
263: data.setNumberOfErrorExchanges(value.longValue());
264: }
265: if (true == item
266: .equals(ComponentStatisticsData.ME_RESPONSETIME_AVG_KEY)) {
267: Double value = (Double) compositeData.get(item);
268: data.setMessageExchangeResponseTimeAverage(value
269: .doubleValue());
270: }
271: if (true == item
272: .equals(ComponentStatisticsData.ME_DELIVERYCHANNELTIME_AVG_KEY)) {
273: Double value = (Double) compositeData.get(item);
274: data
275: .setMessageExchangeDeliveryChannelTimeAverage(value
276: .doubleValue());
277: }
278: if (true == item
279: .equals(ComponentStatisticsData.ME_MESSAGESERVICETIME_AVG_KEY)) {
280: Double value = (Double) compositeData.get(item);
281: data
282: .setMessageExchangeMessageServiceTimeAverage(value
283: .doubleValue());
284: }
285: if (true == item
286: .equals(ComponentStatisticsData.COMPONENTEXTENSIONSTATS_KEY)) {
287: CompositeData value = (CompositeData) compositeData
288: .get(item);
289: data.setComponentExtensionStatus(value);
290: }
291: }
292: dataMap.put(data.getInstanceName(), data);
293:
294: }
295: return dataMap;
296: }
297:
298: /**
299: * Converts a Component Statistics Data to an XML String
300: *
301: * @param map
302: * @return XML string representing a Component Statistics Datum
303: * @throws ManagementRemoteException
304: */
305: static public String convertDataMapToXML(
306: Map<String /* instanceName */, ComponentStatisticsData> map)
307: throws ManagementRemoteException {
308: String xmlText = null;
309: try {
310: xmlText = ComponentStatisticsDataWriter.serialize(map);
311: } catch (ParserConfigurationException e) {
312: throw new ManagementRemoteException(e);
313: } catch (TransformerException e) {
314: throw new ManagementRemoteException(e);
315: }
316:
317: return xmlText;
318: }
319:
320: /**
321: * @return the instanceName
322: */
323: public String getInstanceName() {
324: return this .instanceName;
325: }
326:
327: /**
328: * @param instanceName
329: * the instanceName to set
330: */
331: public void setInstanceName(String instanceName) {
332: this .instanceName = instanceName;
333: }
334:
335: /**
336: * @return the componentUpTime
337: */
338: public long getComponentUpTime() {
339: return this .componentUpTime;
340: }
341:
342: /**
343: * @param componentUpTime
344: * the componentUpTime to set
345: */
346: public void setComponentUpTime(long componentUpTime) {
347: this .componentUpTime = componentUpTime;
348: }
349:
350: /**
351: * @return the numberOfActivatedEndpoints
352: */
353: public long getNumberOfActivatedEndpoints() {
354: return this .numberOfActivatedEndpoints;
355: }
356:
357: /**
358: * @param numberOfActivatedEndpoints
359: * the numberOfActivatedEndpoints to set
360: */
361: public void setNumberOfActivatedEndpoints(
362: long numberOfActivatedEndpoints) {
363: this .numberOfActivatedEndpoints = numberOfActivatedEndpoints;
364: }
365:
366: /**
367: * @return the numberOfReceivedRequests
368: */
369: public long getNumberOfReceivedRequests() {
370: return this .numberOfReceivedRequests;
371: }
372:
373: /**
374: * @param numberOfReceivedRequests
375: * the numberOfReceivedRequests to set
376: */
377: public void setNumberOfReceivedRequests(
378: long numberOfReceivedRequests) {
379: this .numberOfReceivedRequests = numberOfReceivedRequests;
380: }
381:
382: /**
383: * @return the numberOfSentRequests
384: */
385: public long getNumberOfSentRequests() {
386: return this .numberOfSentRequests;
387: }
388:
389: /**
390: * @param numberOfSentRequests
391: * the numberOfSentRequests to set
392: */
393: public void setNumberOfSentRequests(long numberOfSentRequests) {
394: this .numberOfSentRequests = numberOfSentRequests;
395: }
396:
397: /**
398: * @return the numberOfReceivedReplies
399: */
400: public long getNumberOfReceivedReplies() {
401: return this .numberOfReceivedReplies;
402: }
403:
404: /**
405: * @param numberOfReceivedReplies
406: * the numberOfReceivedReplies to set
407: */
408: public void setNumberOfReceivedReplies(long numberOfReceivedReplies) {
409: this .numberOfReceivedReplies = numberOfReceivedReplies;
410: }
411:
412: /**
413: * @return the numberOfSentReplies
414: */
415: public long getNumberOfSentReplies() {
416: return this .numberOfSentReplies;
417: }
418:
419: /**
420: * @param numberOfSentReplies
421: * the numberOfSentReplies to set
422: */
423: public void setNumberOfSentReplies(long numberOfSentReplies) {
424: this .numberOfSentReplies = numberOfSentReplies;
425: }
426:
427: /**
428: * @return the numberOfReceivedDones
429: */
430: public long getNumberOfReceivedDones() {
431: return this .numberOfReceivedDones;
432: }
433:
434: /**
435: * @param numberOfReceivedDones
436: * the numberOfReceivedDones to set
437: */
438: public void setNumberOfReceivedDones(long numberOfReceivedDones) {
439: this .numberOfReceivedDones = numberOfReceivedDones;
440: }
441:
442: /**
443: * @return the numberOfSentDones
444: */
445: public long getNumberOfSentDones() {
446: return this .numberOfSentDones;
447: }
448:
449: /**
450: * @param numberOfSentDones
451: * the numberOfSentDones to set
452: */
453: public void setNumberOfSentDones(long numberOfSentDones) {
454: this .numberOfSentDones = numberOfSentDones;
455: }
456:
457: /**
458: * @return the numberOfReceivedFaults
459: */
460: public long getNumberOfReceivedFaults() {
461: return this .numberOfReceivedFaults;
462: }
463:
464: /**
465: * @param numberOfReceivedFaults
466: * the numberOfReceivedFaults to set
467: */
468: public void setNumberOfReceivedFaults(long numberOfReceivedFaults) {
469: this .numberOfReceivedFaults = numberOfReceivedFaults;
470: }
471:
472: /**
473: * @return the numberOfSentFaults
474: */
475: public long getNumberOfSentFaults() {
476: return this .numberOfSentFaults;
477: }
478:
479: /**
480: * @param numberOfSentFaults
481: * the numberOfSentFaults to set
482: */
483: public void setNumberOfSentFaults(long numberOfSentFaults) {
484: this .numberOfSentFaults = numberOfSentFaults;
485: }
486:
487: /**
488: * @return the numberOfReceivedErrors
489: */
490: public long getNumberOfReceivedErrors() {
491: return this .numberOfReceivedErrors;
492: }
493:
494: /**
495: * @param numberOfReceivedErrors
496: * the numberOfReceivedErrors to set
497: */
498: public void setNumberOfReceivedErrors(long numberOfReceivedErrors) {
499: this .numberOfReceivedErrors = numberOfReceivedErrors;
500: }
501:
502: /**
503: * @return the numberOfSentErrors
504: */
505: public long getNumberOfSentErrors() {
506: return this .numberOfSentErrors;
507: }
508:
509: /**
510: * @param numberOfSentErrors
511: * the numberOfSentErrors to set
512: */
513: public void setNumberOfSentErrors(long numberOfSentErrors) {
514: this .numberOfSentErrors = numberOfSentErrors;
515: }
516:
517: /**
518: * @return the numberOfCompletedExchanges
519: */
520: public long getNumberOfCompletedExchanges() {
521: return this .numberOfCompletedExchanges;
522: }
523:
524: /**
525: * @param numberOfCompletedExchanges
526: * the numberOfCompletedExchanges to set
527: */
528: public void setNumberOfCompletedExchanges(
529: long numberOfCompletedExchanges) {
530: this .numberOfCompletedExchanges = numberOfCompletedExchanges;
531: }
532:
533: /**
534: * @return the numberOfActiveExchanges
535: */
536: public long getNumberOfActiveExchanges() {
537: return this .numberOfActiveExchanges;
538: }
539:
540: /**
541: * @param numberOfActiveExchanges
542: * the numberOfActiveExchanges to set
543: */
544: public void setNumberOfActiveExchanges(long numberOfActiveExchanges) {
545: this .numberOfActiveExchanges = numberOfActiveExchanges;
546: }
547:
548: /**
549: * @return the numberOfErrorExchanges
550: */
551: public long getNumberOfErrorExchanges() {
552: return this .numberOfErrorExchanges;
553: }
554:
555: /**
556: * @param numberOfErrorExchanges
557: * the numberOfErrorExchanges to set
558: */
559: public void setNumberOfErrorExchanges(long numberOfErrorExchanges) {
560: this .numberOfErrorExchanges = numberOfErrorExchanges;
561: }
562:
563: /**
564: * @return the messageExchangeResponseTimeAverage
565: */
566: public double getMessageExchangeResponseTimeAverage() {
567: return this .messageExchangeResponseTimeAverage;
568: }
569:
570: /**
571: * @param messageExchangeResponseTimeAverage
572: * the messageExchangeResponseTimeAverage to set
573: */
574: public void setMessageExchangeResponseTimeAverage(
575: double messageExchangeResponseTimeAverage) {
576: this .messageExchangeResponseTimeAverage = messageExchangeResponseTimeAverage;
577: }
578:
579: /**
580: * @return the messageExchangeComponentTimeAverage
581: */
582: public double getMessageExchangeComponentTimeAverage() {
583: return this .messageExchangeComponentTimeAverage;
584: }
585:
586: /**
587: * @param messageExchangeComponentTimeAverage
588: * the messageExchangeComponentTimeAverage to set
589: */
590: public void setMessageExchangeComponentTimeAverage(
591: double messageExchangeComponentTimeAverage) {
592: this .messageExchangeComponentTimeAverage = messageExchangeComponentTimeAverage;
593: }
594:
595: /**
596: * @return the messageExchangeDeliveryChannelTimeAverage
597: */
598: public double getMessageExchangeDeliveryChannelTimeAverage() {
599: return this .messageExchangeDeliveryChannelTimeAverage;
600: }
601:
602: /**
603: * @param messageExchangeDeliveryChannelTimeAverage
604: * the messageExchangeDeliveryChannelTimeAverage to set
605: */
606: public void setMessageExchangeDeliveryChannelTimeAverage(
607: double messageExchangeDeliveryChannelTimeAverage) {
608: this .messageExchangeDeliveryChannelTimeAverage = messageExchangeDeliveryChannelTimeAverage;
609: }
610:
611: /**
612: * @return the messageExchangeMessageServiceTimeAverage
613: */
614: public double getMessageExchangeMessageServiceTimeAverage() {
615: return this .messageExchangeMessageServiceTimeAverage;
616: }
617:
618: /**
619: * @param messageExchangeMessageServiceTimeAverage
620: * the messageExchangeMessageServiceTimeAverage to set
621: */
622: public void setMessageExchangeMessageServiceTimeAverage(
623: double messageExchangeMessageServiceTimeAverage) {
624: this .messageExchangeMessageServiceTimeAverage = messageExchangeMessageServiceTimeAverage;
625: }
626:
627: /**
628: * @return the componentExtensionStatus
629: */
630: public CompositeData getComponentExtensionStatus() {
631: return this .componentExtensionStatus;
632: }
633:
634: /**
635: * @param componentExtensionStatus
636: * the componentExtensionStatus to set
637: */
638: public void setComponentExtensionStatus(
639: CompositeData componentExtensionStatus) {
640: this .componentExtensionStatus = componentExtensionStatus;
641: if (componentExtensionStatus != null) {
642: this .componentExtensionStatusAsString = componentExtensionStatus
643: .toString();
644: }
645: }
646:
647: /**
648: * @return the componentExtensionStatusAsString
649: */
650: public String getComponentExtensionStatusAsString() {
651: return this .componentExtensionStatusAsString;
652: }
653:
654: /**
655: * @param componentExtensionStatusAsString the componentExtensionStatusAsString to set
656: */
657: public void setComponentExtensionStatusAsString(
658: String componentExtensionStatusAsString) {
659: this .componentExtensionStatusAsString = componentExtensionStatusAsString;
660: }
661:
662: /**
663: * Return a displayable string of values
664: *
665: * @return
666: */
667: public String getDisplayString() {
668: StringBuffer buffer = new StringBuffer();
669: buffer.append("\n Instance Name" + "="
670: + this .getInstanceName());
671: buffer.append("\n Component UpTime" + "="
672: + this .getComponentUpTime());
673: buffer.append("\n Message Exchange Component Time Average"
674: + "=" + this .getMessageExchangeComponentTimeAverage());
675: buffer
676: .append("\n Message Exchange Delivery Channel Time Average"
677: + "="
678: + this
679: .getMessageExchangeDeliveryChannelTimeAverage());
680: buffer
681: .append("\n Message Exchange Message Service Time Average"
682: + "="
683: + this
684: .getMessageExchangeMessageServiceTimeAverage());
685: buffer.append("\n Message Exchange Response Time Average"
686: + "=" + this .getMessageExchangeResponseTimeAverage());
687: buffer.append("\n Number Of Activated Endpoints" + "="
688: + this .getNumberOfActivatedEndpoints());
689: buffer.append("\n Number Of Active Exchanges" + "="
690: + this .getNumberOfActiveExchanges());
691: buffer.append("\n Number Of Completed Exchanges" + "="
692: + this .getNumberOfCompletedExchanges());
693: buffer.append("\n Number Of Error Exchanges" + "="
694: + this .getNumberOfErrorExchanges());
695: buffer.append("\n Number Of Received Dones" + "="
696: + this .getNumberOfReceivedDones());
697: buffer.append("\n Number Of Received Errors" + "="
698: + this .getNumberOfReceivedErrors());
699: buffer.append("\n Number Of Received Faults" + "="
700: + this .getNumberOfReceivedFaults());
701: buffer.append("\n Number Of Received Replies" + "="
702: + this .getNumberOfReceivedReplies());
703: buffer.append("\n Number Of Received Requests" + "="
704: + this .getNumberOfReceivedRequests());
705: buffer.append("\n Number Of Sent Dones" + "="
706: + this .getNumberOfSentDones());
707: buffer.append("\n Number Of Sent Errors" + "="
708: + this .getNumberOfSentErrors());
709: buffer.append("\n Number Of Sent Faults" + "="
710: + this .getNumberOfSentFaults());
711: buffer.append("\n Number Of Sent Replies" + "="
712: + this .getNumberOfSentReplies());
713: buffer.append("\n Number Of Sent Requests" + "="
714: + this .getNumberOfSentRequests());
715: buffer.append("\n Component Extension Status" + "="
716: + this .getComponentExtensionStatus());
717: buffer.append("\n");
718: return buffer.toString();
719: }
720:
721: /**
722: * @param args
723: */
724: public static void main(String[] args) {
725: // TODO Auto-generated method stub
726:
727: }
728:
729: }
|