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