ingo@8: package de.intevation.flys.client.shared.model;
ingo@8:
ingo@12: import java.io.Serializable;
ingo@12:
ingo@12:
ingo@8: /**
felix@4433: * The artifact description describes a state of an artifact. There are
ingo@8: * operations defined that return former inserted data, possible input values
ingo@8: * and output targets that are available in the current state of the artifact.
ingo@8: *
ingo@8: * @author Ingo Weinzierl
ingo@8: */
ingo@12: public interface ArtifactDescription extends Serializable {
ingo@8:
ingo@8: /**
ingo@8: * Returns the data that have been inserted in former states of the
ingo@8: * artifact.
ingo@8: *
ingo@8: * @return the old data of former states.
ingo@8: */
ingo@51: public DataList[] getOldData();
ingo@8:
ingo@8:
ingo@8: /**
ingo@8: * Returns the data with all its options that might be inserted in the
ingo@8: * current state of the artifact.
ingo@8: *
ingo@8: * @return the current data.
ingo@8: */
ingo@51: public DataList getCurrentData();
ingo@8:
ingo@8:
ingo@8: /**
ingo@8: * Returns the current state as string.
ingo@8: *
ingo@8: * @return the current state.
ingo@8: */
ingo@8: public String getCurrentState();
ingo@8:
ingo@8:
ingo@8: /**
ingo@8: * Returns the reachable states as string.
ingo@8: *
ingo@8: * @return the reachable states.
ingo@8: */
ingo@8: public String[] getReachableStates();
ingo@64:
ingo@64:
ingo@64: /**
ingo@1279: * Returns the name of the selected river.
ingo@1279: *
ingo@1279: * @return the selected river.
ingo@1279: */
ingo@1279: public String getRiver();
ingo@1279:
ingo@1279:
ingo@1279: /**
ingo@1279: * Returns the selected min and max kilomter if existing otherwise null.
ingo@1279: *
ingo@1279: * @return an array of [min-km, max-km] if existing otherwise null.
ingo@1279: */
ingo@1279: public double[] getKMRange();
ingo@1279:
ingo@1279:
ingo@1279: /**
ingo@2467: * Returns the selected reference gauge (which needs to be a data named
ingo@2467: * 'reference_gauge'.
ingo@2467: *
ingo@2467: * @return the selected reference gauge (which needs to be a data named
ingo@2467: * 'reference_gauge'.
ingo@2467: */
ingo@2467: public String getReferenceGauge();
ingo@2467:
ingo@2467:
ingo@2467: /**
ingo@2467: * Returns the string value of a data object with name dataName.
ingo@2467: *
ingo@2467: * @return the string value of a data object with name dataName.
ingo@2467: */
ingo@2467: public String getDataValueAsString(String dataName);
ingo@2467:
ingo@2467:
ingo@2467: /**
ingo@64: * Returns the available output modes.
sascha@615: *
ingo@64: * @return the available output modes.
ingo@64: */
ingo@64: public OutputMode[] getOutputModes();
ingo@803:
ingo@803:
ingo@803: /**
ingo@803: * Returns the recommended artifacts suggested by the server.
ingo@803: *
ingo@803: * @return the recommended artifacts.
ingo@803: */
ingo@807: public Recommendation[] getRecommendations();
ingo@8: }
ingo@8: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :