package org.csstudio.dal.simple.impl; import java.util.Arrays; import org.csstudio.dal.DynamicValueProperty; public final class StringSeqAnyDataImpl extends AbstractAnyDataImpl<String[]> { public static final String[] UNINITIALIZED_VALUE = new String[]{""}; public StringSeqAnyDataImpl(DynamicValueProperty<String[]> property, long beamID) { super(property, beamID); } public StringSeqAnyDataImpl(DynamicValueProperty<String[]> property) { super(property, Long.MIN_VALUE); } @Override public Object[] anySeqValue() { return response.getValue(); } @Override public Object anyValue() { return response.getValue(); } @Override public double[] doubleSeqValue() { return DataUtil.toDoubleSeq(response.getValue()); } @Override public double doubleValue() { try { return new Double(response.getValue()[0]); } catch (Exception e) { return Double.NaN; } } @Override public long[] longSeqValue() { return DataUtil.toLongSeq(response.getValue()); } @Override public long longValue() { try { return DataUtil.castTo(response.getValue()[0], Long.class); } catch (Exception e) { return Long.MIN_VALUE; // TODO any better idea? } } @Override public Number[] numberSeqValue() { return DataUtil.toNumberSeq(response.getValue()); } @Override public Number numberValue() { return DataUtil.castTo(response.getValue()[0], Double.class); } @Override public String[] stringSeqValue() { return response.getValue(); } @Override public String stringValue() { return Arrays.toString(response.getValue()); } @Override protected String[] confirmValue(String[] value) { if (value != null) return value; return UNINITIALIZED_VALUE; } }