/** * <copyright> * </copyright> * * $Id: TimeDependency.java,v 1.2 2011/03/05 21:51:25 auhl Exp $ */ package data.timedependency; import data.classes.Association; import data.classes.SapClass; import org.eclipse.emf.ecore.EObject; /** * <!-- begin-user-doc --> * A representation of the model object '<em><b>Time Dependency</b></em>'. * <!-- end-user-doc --> * * <!-- begin-model-doc --> * Captures the specification for how to deal in detail with the time-dependent nature of the annotated structural feature. * * Time dependence of a class means that the existence of an instance of that class is timie dependent. A time-dependent association means that the existence of each link of that association is time dependent. * * Read operations on time-dependent classes and associations (such as queries and navigation) can optionally specify a point in time or a timespan. If no time or timespan is specified, the current time is assumed. * * Write/update operations by default will use the current time as the point in time, or an open time interval starting at the current time (in case of a timespan feature). Any open previous timespan by default will be closed at the current time by an update. * * Read and update operations of time-dependent features can optionally be equipped with a time/timespan telling the temporal validity of the values updated or the values to be read. * <!-- end-model-doc --> * * <p> * The following features are supported: * <ul> * <li>{@link data.timedependency.TimeDependency#getRecordCutoffInMilliseconds <em>Record Cutoff In Milliseconds</em>}</li> * <li>{@link data.timedependency.TimeDependency#isCanChangePast <em>Can Change Past</em>}</li> * <li>{@link data.timedependency.TimeDependency#isTimespan <em>Timespan</em>}</li> * <li>{@link data.timedependency.TimeDependency#getTheClass <em>The Class</em>}</li> * <li>{@link data.timedependency.TimeDependency#getAssociation <em>Association</em>}</li> * </ul> * </p> * * @see data.timedependency.TimedependencyPackage#getTimeDependency() * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL RecordCutoffGreaterOrEqualZero='self.recordCutoffInMilliseconds >= 0'" * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='RecordCutoffGreaterOrEqualZero'" * @generated */ public interface TimeDependency extends EObject { /** * Returns the value of the '<em><b>Record Cutoff In Milliseconds</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * The number of milliseconds for which to keep historic versions of this feature. Only values greater or equal to zero are permitted. 0 means that no historic versions are kept at all. * <!-- end-model-doc --> * @return the value of the '<em>Record Cutoff In Milliseconds</em>' attribute. * @see #setRecordCutoffInMilliseconds(int) * @see data.timedependency.TimedependencyPackage#getTimeDependency_RecordCutoffInMilliseconds() * @model unique="false" required="true" ordered="false" * @generated */ int getRecordCutoffInMilliseconds(); /** * Sets the value of the '{@link data.timedependency.TimeDependency#getRecordCutoffInMilliseconds <em>Record Cutoff In Milliseconds</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Record Cutoff In Milliseconds</em>' attribute. * @see #getRecordCutoffInMilliseconds() * @generated */ void setRecordCutoffInMilliseconds(int value); /** * Returns the value of the '<em><b>Can Change Past</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * If true, it is permissible to change values of the time-dependent feature for previous times. * <!-- end-model-doc --> * @return the value of the '<em>Can Change Past</em>' attribute. * @see #setCanChangePast(boolean) * @see data.timedependency.TimedependencyPackage#getTimeDependency_CanChangePast() * @model unique="false" required="true" ordered="false" * @generated */ boolean isCanChangePast(); /** * Sets the value of the '{@link data.timedependency.TimeDependency#isCanChangePast <em>Can Change Past</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Can Change Past</em>' attribute. * @see #isCanChangePast() * @generated */ void setCanChangePast(boolean value); /** * Returns the value of the '<em><b>Timespan</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc --> * If true, data is valid over a given timespan, not only a single point in time. When writing data, the validity period is to be specified as a timespan rather than a point in time. * * If false, data samples are valid only at a single point in time, such as from an RFID reader or a temperature sensor. Access APIs would have to allow for conveniently finding the "nearest" match for a given point in time. * <!-- end-model-doc --> * @return the value of the '<em>Timespan</em>' attribute. * @see #setTimespan(boolean) * @see data.timedependency.TimedependencyPackage#getTimeDependency_Timespan() * @model unique="false" required="true" ordered="false" * @generated */ boolean isTimespan(); /** * Sets the value of the '{@link data.timedependency.TimeDependency#isTimespan <em>Timespan</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Timespan</em>' attribute. * @see #isTimespan() * @generated */ void setTimespan(boolean value); /** * Returns the value of the '<em><b>The Class</b></em>' container reference. * It is bidirectional and its opposite is '{@link data.classes.SapClass#getTimeDependency <em>Time Dependency</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>The Class</em>' container reference isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>The Class</em>' container reference. * @see #setTheClass(SapClass) * @see data.timedependency.TimedependencyPackage#getTimeDependency_TheClass() * @see data.classes.SapClass#getTimeDependency * @model opposite="timeDependency" * @generated */ SapClass getTheClass(); /** * Sets the value of the '{@link data.timedependency.TimeDependency#getTheClass <em>The Class</em>}' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>The Class</em>' container reference. * @see #getTheClass() * @generated */ void setTheClass(SapClass value); /** * Returns the value of the '<em><b>Association</b></em>' container reference. * It is bidirectional and its opposite is '{@link data.classes.Association#getTimeDependency <em>Time Dependency</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Association</em>' container reference isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Association</em>' container reference. * @see #setAssociation(Association) * @see data.timedependency.TimedependencyPackage#getTimeDependency_Association() * @see data.classes.Association#getTimeDependency * @model opposite="timeDependency" * @generated */ Association getAssociation(); /** * Sets the value of the '{@link data.timedependency.TimeDependency#getAssociation <em>Association</em>}' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Association</em>' container reference. * @see #getAssociation() * @generated */ void setAssociation(Association value); } // TimeDependency