001    /**
002     * <copyright>
003     * </copyright>
004     *
005     * $Id$
006     */
007    package com.hammurapi.eventbus.snapshot;
008    
009    import org.eclipse.emf.common.util.EList;
010    
011    /**
012     * <!-- begin-user-doc -->
013     * A representation of the model object '<em><b>Extractor</b></em>'.
014     * <!-- end-user-doc -->
015     *
016     * <!-- begin-model-doc -->
017     * Predicate.
018     * <!-- end-model-doc -->
019     *
020     * <p>
021     * The following features are supported:
022     * <ul>
023     *   <li>{@link com.hammurapi.eventbus.snapshot.Extractor#getRole <em>Role</em>}</li>
024     *   <li>{@link com.hammurapi.eventbus.snapshot.Extractor#getParts <em>Parts</em>}</li>
025     *   <li>{@link com.hammurapi.eventbus.snapshot.Extractor#getParameterIndices <em>Parameter Indices</em>}</li>
026     *   <li>{@link com.hammurapi.eventbus.snapshot.Extractor#getCost <em>Cost</em>}</li>
027     * </ul>
028     * </p>
029     *
030     * @see com.hammurapi.eventbus.snapshot.SnapshotPackage#getExtractor()
031     * @model
032     * @generated
033     */
034    public interface Extractor extends SnapshotElement {
035            /**
036             * Returns the value of the '<em><b>Role</b></em>' attribute.
037             * <!-- begin-user-doc -->
038             * <!-- end-user-doc -->
039             * <!-- begin-model-doc -->
040             * For composite/facade predicates role is the role of child in the parent.
041             * <!-- end-model-doc -->
042             * @return the value of the '<em>Role</em>' attribute.
043             * @see #setRole(String)
044             * @see com.hammurapi.eventbus.snapshot.SnapshotPackage#getExtractor_Role()
045             * @model
046             * @generated
047             */
048            String getRole();
049    
050            /**
051             * Sets the value of the '{@link com.hammurapi.eventbus.snapshot.Extractor#getRole <em>Role</em>}' attribute.
052             * <!-- begin-user-doc -->
053             * <!-- end-user-doc -->
054             * @param value the new value of the '<em>Role</em>' attribute.
055             * @see #getRole()
056             * @generated
057             */
058            void setRole(String value);
059    
060            /**
061             * Returns the value of the '<em><b>Parts</b></em>' containment reference list.
062             * The list contents are of type {@link com.hammurapi.eventbus.snapshot.Extractor}.
063             * <!-- begin-user-doc -->
064             * <!-- end-user-doc -->
065             * <!-- begin-model-doc -->
066             * Predicate parts (for composite/comparison/complex predicates).
067             * <!-- end-model-doc -->
068             * @return the value of the '<em>Parts</em>' containment reference list.
069             * @see com.hammurapi.eventbus.snapshot.SnapshotPackage#getExtractor_Parts()
070             * @model containment="true"
071             * @generated
072             */
073            EList<Extractor> getParts();
074    
075            /**
076             * Returns the value of the '<em><b>Parameter Indices</b></em>' attribute list.
077             * The list contents are of type {@link java.lang.Integer}.
078             * <!-- begin-user-doc -->
079             * <p>
080             * If the meaning of the '<em>Parameter Indices</em>' attribute list isn't clear,
081             * there really should be more of a description here...
082             * </p>
083             * <!-- end-user-doc -->
084             * @return the value of the '<em>Parameter Indices</em>' attribute list.
085             * @see com.hammurapi.eventbus.snapshot.SnapshotPackage#getExtractor_ParameterIndices()
086             * @model
087             * @generated
088             */
089            EList<Integer> getParameterIndices();
090    
091            /**
092             * Returns the value of the '<em><b>Cost</b></em>' attribute.
093             * <!-- begin-user-doc -->
094             * <p>
095             * If the meaning of the '<em>Cost</em>' attribute isn't clear,
096             * there really should be more of a description here...
097             * </p>
098             * <!-- end-user-doc -->
099             * @return the value of the '<em>Cost</em>' attribute.
100             * @see #setCost(Double)
101             * @see com.hammurapi.eventbus.snapshot.SnapshotPackage#getExtractor_Cost()
102             * @model
103             * @generated
104             */
105            Double getCost();
106    
107            /**
108             * Sets the value of the '{@link com.hammurapi.eventbus.snapshot.Extractor#getCost <em>Cost</em>}' attribute.
109             * <!-- begin-user-doc -->
110             * <!-- end-user-doc -->
111             * @param value the new value of the '<em>Cost</em>' attribute.
112             * @see #getCost()
113             * @generated
114             */
115            void setCost(Double value);
116    
117    } // Extractor