001: /**
002: * Copyright 2004-2005 jManage.org
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */package org.jmanage.core.config;
016:
017: import org.jmanage.core.util.Expression;
018:
019: import java.util.List;
020: import java.util.Iterator;
021:
022: /**
023: *
024: * Date: Jun 12, 2005
025: * @author Rakesh Kalra
026: */
027: public class GraphConfig {
028:
029: private String id;
030: private String name;
031: private long pollingInterval;
032: // optional attributes
033: private String yAxisLabel;
034: private Double scaleFactor;
035: private Boolean scaleUp;
036:
037: // list of GraphAttrbuteConfig objects
038: private List attributes;
039: private ApplicationConfig appConfig;
040:
041: public static String getNextGraphId() {
042: return String.valueOf(System.currentTimeMillis());
043: }
044:
045: public GraphConfig(String id, String name, long pollingInterval,
046: ApplicationConfig appConfig, List attributes) {
047: this .id = id;
048: this .name = name;
049: this .pollingInterval = pollingInterval;
050: this .appConfig = appConfig;
051: this .attributes = attributes;
052: }
053:
054: public String getId() {
055: return id;
056: }
057:
058: public String getName() {
059: return name;
060: }
061:
062: public long getPollingInterval() {
063: return pollingInterval;
064: }
065:
066: public List getAttributes() {
067: return attributes;
068: }
069:
070: public ApplicationConfig getAppConfig() {
071: return appConfig;
072: }
073:
074: /**
075: * Output is of the format:
076: * <p>
077: * [applicationId/jmanage:name=Configuration/AppUptime],
078: * [testApp2/jmanage:name=Configuration/AppUptime]
079: * @return
080: */
081: public String getAttributesAsString() {
082: StringBuffer graphAttributes = new StringBuffer();
083: for (Iterator it = attributes.iterator(); it.hasNext();) {
084: if (graphAttributes.length() > 0) {
085: graphAttributes.append(",");
086: }
087: GraphAttributeConfig attrConfig = (GraphAttributeConfig) it
088: .next();
089:
090: // todo: it will be good to bring in a concept of ExpressionList
091: // todo: object which parses an expression into multiple
092: // todo: Expression objects - RK
093: graphAttributes.append("[");
094: Expression expr = new Expression(appConfig.getName(),
095: attrConfig.getMBean(), attrConfig.getAttribute());
096: graphAttributes.append(expr.toString());
097: graphAttributes.append("]");
098: }
099: return graphAttributes.toString();
100: }
101:
102: /**
103: * output if of the form
104: * @return
105: */
106: public String getAttributeDisplayNames() {
107: StringBuffer displayNames = new StringBuffer();
108: for (Iterator it = attributes.iterator(); it.hasNext();) {
109: if (displayNames.length() > 0) {
110: displayNames.append("|");
111: }
112: GraphAttributeConfig attrConfig = (GraphAttributeConfig) it
113: .next();
114: displayNames.append(attrConfig.getDisplayName());
115: }
116: return displayNames.toString();
117: }
118:
119: public void setName(String name) {
120: this .name = name;
121: }
122:
123: public void setPollingInterval(long pollingInterval) {
124: this .pollingInterval = pollingInterval;
125: }
126:
127: public void setAttributes(List attributes) {
128: this .attributes = attributes;
129: }
130:
131: public void setAppConfig(ApplicationConfig appConfig) {
132: this .appConfig = appConfig;
133: }
134:
135: public String getYAxisLabel() {
136: return this .yAxisLabel;
137: }
138:
139: public Double getScaleFactor() {
140: return this .scaleFactor;
141: }
142:
143: public Boolean isScaleUp() {
144: return this .scaleUp;
145: }
146:
147: public void setYAxisLabel(String yAxisLabel) {
148: this .yAxisLabel = yAxisLabel;
149: }
150:
151: public void setScaleFactor(Double scaleFactor) {
152: this .scaleFactor = scaleFactor;
153: }
154:
155: public void setScaleUp(Boolean scaleUp) {
156: this.scaleUp = scaleUp;
157: }
158: }
|