/******************************************************************************* * Copyright (c) 2011 Oak Ridge National Laboratory. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html ******************************************************************************/ package org.csstudio.data.values; import org.csstudio.data.values.IValue.Quality; import org.csstudio.data.values.internal.DoubleValue; import org.csstudio.data.values.internal.EnumeratedMetaData; import org.csstudio.data.values.internal.EnumeratedValue; import org.csstudio.data.values.internal.LongValue; import org.csstudio.data.values.internal.MinMaxDoubleValue; import org.csstudio.data.values.internal.NumericMetaData; import org.csstudio.data.values.internal.SeverityInstances; import org.csstudio.data.values.internal.StringValue; /** Factory for IValue-based types. * @author Kay Kasemir */ public class ValueFactory { /** Prohibit instance creation. */ private ValueFactory() { /* NOP */ } /** Create an 'OK' ISeverity. * @return ISeverity */ public static final ISeverity createOKSeverity() { return SeverityInstances.ok; } /** Create a 'minor' ISeverity. * @return ISeverity */ public static final ISeverity createMinorSeverity() { return SeverityInstances.minor; } /** Create a 'major' ISeverity. * @return ISeverity */ public static final ISeverity createMajorSeverity() { return SeverityInstances.major; } /** Create an 'invalid' ISeverity. * @return ISeverity */ public static final ISeverity createInvalidSeverity() { return SeverityInstances.invalid; } /** Create instance of {@link INumericMetaData}. * @param disp_low Low end of suggested display range. * @param disp_high High end of suggested display range. * @param warn_low Lower warning limit. * @param warn_high Upper warning limit. * @param alarm_low Lower alarm limit. * @param alarm_high Upper alarm limit. * @param prec Suggested display precision. * @param units Engineering units string. * @return Instance of INumericMetaData. */ public static final INumericMetaData createNumericMetaData(double disp_low, double disp_high, double warn_low, double warn_high, double alarm_low, double alarm_high, int prec, String units) { return new NumericMetaData(disp_low, disp_high, warn_low, warn_high, alarm_low, alarm_high, prec, units); } /** Create instance of {@link IEnumeratedMetaData}. * @param states State strings * @return Instance of IEnumeratedMetaData. */ public static final IEnumeratedMetaData createEnumeratedMetaData(String states[]) { return new EnumeratedMetaData(states); } /** Create instance of {@link IDoubleValue}. * @param time Time stamp * @param severity Severity descriptor * @param status Status string. * @param meta_data Numeric meta data. * @param quality Data quality descriptor. * @param values The actual values. * @return Instance of IDoubleValue. */ public static final IDoubleValue createDoubleValue(final ITimestamp time, final ISeverity severity, final String status, final INumericMetaData meta_data, final Quality quality, final double values[]) { return new DoubleValue(time, severity, status, meta_data, quality, values); } /** Create instance of {@link IMinMaxDoubleValue}. * @param time Time stamp * @param severity Severity descriptor * @param status Status string. * @param meta_data Numeric meta data. * @param quality Data quality descriptor. * @param values The actual values. * @param minimum Minimum * @param maximum Maximum * @return Instance of IMinMaxDoubleValue. */ public static final IMinMaxDoubleValue createMinMaxDoubleValue(final ITimestamp time, final ISeverity severity, final String status, final INumericMetaData meta_data, final Quality quality, final double values[], final double minimum, final double maximum) { return new MinMaxDoubleValue(time, severity, status, meta_data, quality, values, minimum, maximum); } /** Create instance of {@link ILongValue}. * @param time Time stamp * @param severity Severity descriptor * @param status Status string. * @param meta_data Numeric meta data. * @param quality Data quality descriptor. * @param values The actual values. * @return Instance of IIntegerValue. */ public static final ILongValue createLongValue(final ITimestamp time, final ISeverity severity, final String status, final INumericMetaData meta_data, final Quality quality, final long values[]) { return new LongValue(time, severity, status, meta_data, quality, values); } /** Create instance of {@link IEnumeratedValue}. * @param time Time stamp * @param severity Severity descriptor * @param status Status string. * @param meta_data Enumerated meta data. * @param quality Data quality descriptor. * @param values The actual values. * @return Instance of IEnumValue. */ public static final IEnumeratedValue createEnumeratedValue(final ITimestamp time, final ISeverity severity, final String status, final IEnumeratedMetaData meta_data, final Quality quality, final int values[]) { return new EnumeratedValue(time, severity, status, meta_data, quality, values); } /** Create instance of {@link IStringValue}. * @param time Time stamp * @param severity Severity descriptor * @param status Status string. * @param quality Data quality descriptor. * @param values The actual values. * @return Instance of IStringValue. */ public static final IStringValue createStringValue(final ITimestamp time, final ISeverity severity, final String status, final Quality quality, final String values[]) { return new StringValue(time, severity, status, quality, values); } }