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: * @(#)ServiceAssemblyState.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: package com.sun.jbi;
030:
031: import java.util.List;
032: import javax.jbi.management.DeploymentServiceMBean;
033:
034: /**
035: * This interface provides information on Service Assemblys.
036: *
037: * @author Sun Microsystems, Inc.
038: */
039: public enum ServiceAssemblyState {
040: SHUTDOWN("Shutdown"), STOPPED("Stopped"), STARTED("Started"), UNKNOWN(
041: "Unknown");
042:
043: /** The String value */
044: private String mString;
045:
046: ServiceAssemblyState(String strValue) {
047: mString = strValue;
048: }
049:
050: /**
051: * Compute the effective state of the Service Assembly.
052: *
053: * If one or more SUs is in a STARTED state the state is STARTED
054: * If one or more SUs is in the STOPPED state and no SU is in the STARTED state
055: * the state is STOPPED
056: * If no SU is in the STOPPED or STARTED state the state is SHUTDOWN
057: *
058: * @param suStates - a List of service unit states.
059: * @return the effective service assembly state
060: */
061: public static ServiceAssemblyState computeServiceAssemblyState(
062: List<ServiceUnitState> suStates) {
063: if (suStates.contains(ServiceUnitState.STARTED)) {
064: return ServiceAssemblyState.STARTED;
065: } else if (suStates.contains(ServiceUnitState.STOPPED)) {
066: return ServiceAssemblyState.STOPPED;
067: } else {
068: return ServiceAssemblyState.SHUTDOWN;
069: }
070: }
071:
072: /**
073: * Compute the effective state of a Service Assembly given a list of
074: * Service Assembly States.
075: *
076: * If one or more SAs is in a STARTED state the state is STARTED
077: * If one or more SAs is in the STOPPED state and no SA is in the STARTED state
078: * the state is STOPPED
079: * If no SA is in the STOPPED or STARTED state and one or more SAs is in the SHUTDOWN
080: * state, the state is SHUTDOWN.
081: * If none of the aboe are true the state is UNKNOWN
082: *
083: * @return the effective service assembly state
084: */
085: public static ServiceAssemblyState getEffectiveServiceAssemblyState(
086: List<ServiceAssemblyState> saStates) {
087: if (saStates.contains(ServiceAssemblyState.STARTED)) {
088: return ServiceAssemblyState.STARTED;
089: } else if (saStates.contains(ServiceAssemblyState.STOPPED)) {
090: return ServiceAssemblyState.STOPPED;
091: } else if (saStates.contains(ServiceAssemblyState.SHUTDOWN)) {
092: return ServiceAssemblyState.SHUTDOWN;
093: } else {
094: return ServiceAssemblyState.UNKNOWN;
095: }
096: }
097:
098: /**
099: * Converts the service assembly state to the equivalent
100: * DeploymentService state.
101: */
102: public static String convertState(ServiceAssemblyState state) {
103: String dsState;
104:
105: if (state == ServiceAssemblyState.STARTED) {
106: dsState = DeploymentServiceMBean.STARTED;
107: } else if (state == ServiceAssemblyState.STOPPED) {
108: dsState = DeploymentServiceMBean.STOPPED;
109: } else {
110: dsState = DeploymentServiceMBean.SHUTDOWN;
111: }
112:
113: return dsState;
114: }
115:
116: /**
117: * Get the equivalent ServiceAssemblyState from DeploymentServiceMBean state.
118: */
119: public static ServiceAssemblyState valueOfDeploymentServiceState(
120: String state) {
121: ServiceAssemblyState saState;
122:
123: if (DeploymentServiceMBean.STARTED.equals(state)) {
124: saState = ServiceAssemblyState.STARTED;
125: } else if (DeploymentServiceMBean.STOPPED.equals(state)) {
126: saState = ServiceAssemblyState.STOPPED;
127: } else {
128: saState = ServiceAssemblyState.SHUTDOWN;
129: }
130:
131: return saState;
132: }
133:
134: /**
135: * @return the String value for the ServiceAssemblyType
136: */
137: public String toString() {
138: return mString;
139: }
140:
141: /**
142: * @return a ServuceAssemblyState based on the String value.
143: * @param valStr - the string whose equivalent ServiceAssemblyState
144: * instance is required. This operation
145: * ignores the case, i.e. Stopped or STOPPED
146: * or sToPped would return ServiceAssemblyState.STOPPED
147: */
148: public static ServiceAssemblyState valueOfString(String valStr) {
149: return ServiceAssemblyState.valueOf(valStr.toUpperCase());
150: }
151:
152: public static void main(String[] args) {
153: System.out.println(ServiceAssemblyState.STOPPED.toString());
154: System.out.println(ServiceAssemblyState
155: .valueOfString("Stopped").toString());
156: System.out.println(ServiceAssemblyState
157: .valueOfString("StoPPed").toString());
158: System.out.println(ServiceAssemblyState
159: .valueOfString("sTaRted").toString());
160: }
161: }
|