001    /**
002     * <copyright>
003     * </copyright>
004     *
005     * $Id$
006     */
007    package com.hammurapi.party;
008    
009    import java.util.Date;
010    
011    /**
012     * <!-- begin-user-doc -->
013     * A representation of the model object '<em><b>Date Effective Object</b></em>'.
014     * <!-- end-user-doc -->
015     *
016     * <!-- begin-model-doc -->
017     * Object which is effective for a certain period of time.
018     * <!-- end-model-doc -->
019     *
020     * <p>
021     * The following features are supported:
022     * <ul>
023     *   <li>{@link com.hammurapi.party.DateEffectiveObject#getStart <em>Start</em>}</li>
024     *   <li>{@link com.hammurapi.party.DateEffectiveObject#getEnd <em>End</em>}</li>
025     * </ul>
026     * </p>
027     *
028     * @see com.hammurapi.party.PartyPackage#getDateEffectiveObject()
029     * @model interface="true" abstract="true"
030     * @generated
031     */
032    public interface DateEffectiveObject extends Tagged {
033            /**
034             * Returns the value of the '<em><b>Start</b></em>' attribute.
035             * <!-- begin-user-doc -->
036             * <!-- end-user-doc -->
037             * <!-- begin-model-doc -->
038             * Start date.
039             * <!-- end-model-doc -->
040             * @return the value of the '<em>Start</em>' attribute.
041             * @see #setStart(Date)
042             * @see com.hammurapi.party.PartyPackage#getDateEffectiveObject_Start()
043             * @model
044             * @generated
045             */
046            Date getStart();
047    
048            /**
049             * Sets the value of the '{@link com.hammurapi.party.DateEffectiveObject#getStart <em>Start</em>}' attribute.
050             * <!-- begin-user-doc -->
051             * <!-- end-user-doc -->
052             * @param value the new value of the '<em>Start</em>' attribute.
053             * @see #getStart()
054             * @generated
055             */
056            void setStart(Date value);
057    
058            /**
059             * Returns the value of the '<em><b>End</b></em>' attribute.
060             * <!-- begin-user-doc -->
061             * <!-- end-user-doc -->
062             * <!-- begin-model-doc -->
063             * End date.
064             * 
065             * <!-- end-model-doc -->
066             * @return the value of the '<em>End</em>' attribute.
067             * @see #setEnd(Date)
068             * @see com.hammurapi.party.PartyPackage#getDateEffectiveObject_End()
069             * @model
070             * @generated
071             */
072            Date getEnd();
073    
074            /**
075             * Sets the value of the '{@link com.hammurapi.party.DateEffectiveObject#getEnd <em>End</em>}' attribute.
076             * <!-- begin-user-doc -->
077             * <!-- end-user-doc -->
078             * @param value the new value of the '<em>End</em>' attribute.
079             * @see #getEnd()
080             * @generated
081             */
082            void setEnd(Date value);
083    
084            /**
085             * <!-- begin-user-doc -->
086             * <!-- end-user-doc -->
087             * <!-- begin-model-doc -->
088             * Returns true if object is currently effective.
089             * <!-- end-model-doc -->
090             * @model kind="operation"
091             * @generated
092             */
093            boolean isEffectiveNow();
094    
095            /**
096             * <!-- begin-user-doc -->
097             * <!-- end-user-doc -->
098             * <!-- begin-model-doc -->
099             * Returns true if object is effective at given date.
100             * @param date Date for which effectiveness is checked.
101             * <!-- end-model-doc -->
102             * @model
103             * @generated
104             */
105            boolean isEffective(Date date);
106    
107    } // DateEffectiveObject