/*
* Copyright (c) 2008 Stiftung Deutsches Elektronen-Synchrotron,
* Member of the Helmholtz Association, (DESY), HAMBURG, GERMANY.
*
* THIS SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "../AS IS" BASIS.
* WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE AND
* NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
* FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE. SHOULD THE SOFTWARE PROVE DEFECTIVE
* IN ANY RESPECT, THE USER ASSUMES THE COST OF ANY NECESSARY SERVICING, REPAIR OR
* CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
* NO USE OF ANY SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
* DESY HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
* OR MODIFICATIONS.
* THE FULL LICENSE SPECIFYING FOR THE SOFTWARE THE REDISTRIBUTION, MODIFICATION,
* USAGE AND OTHER RIGHTS AND OBLIGATIONS IS INCLUDED WITH THE DISTRIBUTION OF THIS
* PROJECT IN THE FILE LICENSE.HTML. IF THE LICENSE IS NOT INCLUDED YOU MAY FIND A COPY
* AT HTTP://WWW.DESY.DE/LEGAL/LICENSE.HTM
*/
package org.csstudio.platform.simpledal;
/**
* The state of a connection to a PV.
*
* @author Sven Wende
*/
@Deprecated
public enum ConnectionState {
/**
* If state is not a valid DAL-state.
* Used as initial connection state.
*/
UNKNOWN(null),
INITIAL(org.csstudio.dal.context.ConnectionState.INITIAL),
/**
* If connection is valid and connected.
*/
CONNECTED(org.csstudio.dal.context.ConnectionState.CONNECTED),
/**
* If the connection get lost in case of any problem.
*/
CONNECTION_LOST(org.csstudio.dal.context.ConnectionState.CONNECTION_LOST),
/**
* If the connection to the PV failed or failed in re-connect.
*/
CONNECTION_FAILED(org.csstudio.dal.context.ConnectionState.CONNECTION_FAILED),
/**
* If connection get disposed / disconnected.
*/
DISCONNECTED(org.csstudio.dal.context.ConnectionState.DISCONNECTED);
private org.csstudio.dal.context.ConnectionState _dalState;
/**
* Constructor.
* @param dalState
*/
private ConnectionState(org.csstudio.dal.context.ConnectionState dalState) {
_dalState = dalState;
}
/**
* Transfers this state into a DAL-state.
*
* @return The DAL-state of this state.
*/
public org.csstudio.dal.context.ConnectionState getDalState() {
return _dalState;
}
/**
* Translates a DAL-state to a matching value of this state-type.
*
* @param dalState
* The DAL-state to be translated.
* @return The matching state of this type, {@link ConnectionState.UNKNOWN}
* if not avail.
*/
public static ConnectionState translate(org.csstudio.dal.context.ConnectionState dalState) {
ConnectionState result = UNKNOWN;
for (ConnectionState s : values()) {
if(s.getDalState() == dalState) {
result = s;
}
}
// TODO:
// If the incomming state is org.csstudio.dal.context.ConnectionState.OPERATIONAL,
// the result value is always UNKNOWN
// because the old ConnectionState enum does not contain such a state.
// This causes always an error in the application DepartmentDecision (NAMS)
if ((result == UNKNOWN) && (dalState == org.csstudio.dal.context.ConnectionState.OPERATIONAL)) {
result = ConnectionState.CONNECTED;
}
return result;
}
}