/*
* Copyright (c) 2011 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.sds.model;
/**
* TODO (hrickens) :
*
* @author hrickens
* @since 21.12.2011
*/
public enum PrecisionEnum {
PREC_SYSTEM(-1,"From CS"),
PREC_ZERO(0,"0"),
PREC_ONE(1,"1"),
PREC_TWO(2,"2"),
PREC_THREE(3,"3"),
PREC_FOUR(4,"4"),
PREC_FIVE(5,"5"),
PREC_SIX(6,"6"),
PREC_SEVEN(7,"7"),
PREC_EIGTH(8,"8"),
PREC_NINE(9,"9"),
PREC_FULL(-2,"FULL");
public static final int TYPE_TEXT = 0;
/**
* The index of his enum.
*/
private int _index;
/**
* The display name of this enum.
*/
private String _displayName;
/**
* Constructor.
*
* @param index
* The index of this value
* @param displayName
* The name of this value
*/
private PrecisionEnum(final int index, final String displayName) {
_index = index;
_displayName = displayName;
}
/**
* Returns the index of this {@link PrecisionEnum}.
*
* @return The index
*/
public int getIndex() {
return _index;
}
/**
* Returns the display name of this {@link PrecisionEnum}.
*
* @return The display name
*/
public String getDisplayName() {
return _displayName;
}
/**
* Returns the display names of the all text types.
*
* @return The display names
*/
public static String[] getDisplayNames() {
final PrecisionEnum[] PrecisionEnums = PrecisionEnum.values();
final String[] result = new String[PrecisionEnums.length];
for (int i = 0; i < PrecisionEnums.length; i++) {
result[i] = PrecisionEnums[i].getDisplayName();
}
return result;
}
// /**
// * Check if new input Character belongs to value format.
// *
// * @param chars
// * The new input characters.
// * @param pos
// * position of new input character.
// * @return only true if new value belongs to value format.
// */
// public boolean isValidChars(final char character, final CharSequence chars, final int pos) {
// final PrecisionEnum propertyValue = this;
// if (character == SWT.CR || character == SWT.KEYPAD_CR || character == SWT.DEL
// || character == SWT.BS
// || (pos == 1 || pos == 2) && (character == 'X' || character == 'x')) {
// return true;
// }
// Pattern pattern;
// switch (propertyValue) {
// case HEX:
// case EXP:
// case DOUBLE:
// pattern = Pattern.compile("[\\.\\p{XDigit}eE-]*");
// return pattern.matcher(chars).matches();
// default:
// return true;
// }
// }
/**
* Returns the corresponding {@link PrecisionEnum} to the given index or <code>null</code> if the
* index is unknown.
*
* @param index
* The index of the enum
* @return The corresponding {@link PrecisionEnum} or <code>null</code> if the index is unknown
*/
public static PrecisionEnum getEnumForIndex(final int index) {
for (final PrecisionEnum pEnum : PrecisionEnum.values()) {
if (pEnum.getIndex() == index) {
return pEnum;
}
}
return null;
}
}