/*
* 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.dal.simple;
import org.csstudio.dal.AccessType;
import org.csstudio.dal.CommonDataTypes;
/** Base interface for a sample's meta data.
* @see AnyData
* @see INumericMetaData
* @see IEnumeratedMetaData
* @author Kay Kasemir
*/
public interface MetaData
{
/** @return Suggested lower display limit. */
public double getDisplayLow();
/** @return Suggested upper display limit. */
public double getDisplayHigh();
/** @return Low warning limit. */
public double getWarnLow();
/** @return High warning limit. */
public double getWarnHigh();
/** @return Low alarm limit. */
public double getAlarmLow();
/** @return High alarm limit. */
public double getAlarmHigh();
/** @return Suggested display precision (fractional digits). */
public int getPrecision();
/** @return The engineering units string. */
public String getUnits();
/**
* Obtains the states.
* <p>
* The array element <code>i</code> represents enum number <code>i</code>.
*
* @return The state string array, never <code>null</code>.
*/
public String[] getStates();
/**
* Convenience routine for getting the state.
*
* @param index the index for which the enum description is returned
*
* @return the enum description.
*/
public String getState(int index);
/**
* Obtains the enumeration values.
* <p>
* The array element <code>i</code> represents enum number <code>i</code>.
*
* @return The state value object array, never <code>null</code>.
*/
public Object[] getStateValues();
/**
* Convenience routine for getting a state value.
*
* @param index the index for which the value is returned
*
* @return the state value
*/
public Object getStateValue(int index);
/**
* Return the display format for the numerical values.
*
* @return the display format
*/
public String getFormat();
/**
* Returns the access type.
*
* @return the access type
*/
public AccessType getAccessType();
/**
* Returns the host name of the channel that this meta data belongs to.
*
* @return the host name
*/
public String getHostname();
/**
* Returns the datatype of the channel. This method returns one of the
* string in {@link CommonDataTypes}.
*
* @return the datatype
*/
public String getDataType();
/**
* Returns the description of the channel.
*
* @return the description
*/
public String getDescription();
/**
* Returns the name of the channel.
*
* @return the name of the channel
*/
public String getName();
/**
* Returns the sequence length
*
* @return the sequence length
*/
public int getSequenceLength();
}