001    /**
002     * <copyright>
003     * </copyright>
004     *
005     * $Id$
006     */
007    package com.hammurapi.flow;
008    
009    import org.eclipse.emf.common.util.EList;
010    import org.eclipse.emf.ecore.EObject;
011    
012    import com.hammurapi.config.Factory;
013    
014    /**
015     * <!-- begin-user-doc -->
016     * A representation of the model object '<em><b>Pin</b></em>'.
017     * <!-- end-user-doc -->
018     *
019     * <!-- begin-model-doc -->
020     * Pin is a connection point for transitions.
021     * <!-- end-model-doc -->
022     *
023     * <p>
024     * The following features are supported:
025     * <ul>
026     *   <li>{@link com.hammurapi.flow.Pin#getOutput <em>Output</em>}</li>
027     *   <li>{@link com.hammurapi.flow.Pin#getInput <em>Input</em>}</li>
028     *   <li>{@link com.hammurapi.flow.Pin#getNode <em>Node</em>}</li>
029     *   <li>{@link com.hammurapi.flow.Pin#getPinConfig <em>Pin Config</em>}</li>
030     *   <li>{@link com.hammurapi.flow.Pin#getName <em>Name</em>}</li>
031     * </ul>
032     * </p>
033     *
034     * @see com.hammurapi.flow.FlowPackage#getPin()
035     * @model
036     * @generated
037     */
038    public interface Pin extends EObject {
039            /**
040             * Returns the value of the '<em><b>Output</b></em>' reference list.
041             * The list contents are of type {@link com.hammurapi.flow.Transition}.
042             * It is bidirectional and its opposite is '{@link com.hammurapi.flow.Transition#getFromPin <em>From Pin</em>}'.
043             * <!-- begin-user-doc -->
044             * <p>
045             * If the meaning of the '<em>Output</em>' reference list isn't clear,
046             * there really should be more of a description here...
047             * </p>
048             * <!-- end-user-doc -->
049             * @return the value of the '<em>Output</em>' reference list.
050             * @see com.hammurapi.flow.FlowPackage#getPin_Output()
051             * @see com.hammurapi.flow.Transition#getFromPin
052             * @model opposite="fromPin"
053             * @generated
054             */
055            EList<Transition> getOutput();
056    
057            /**
058             * Returns the value of the '<em><b>Input</b></em>' reference list.
059             * The list contents are of type {@link com.hammurapi.flow.Transition}.
060             * It is bidirectional and its opposite is '{@link com.hammurapi.flow.Transition#getToPin <em>To Pin</em>}'.
061             * <!-- begin-user-doc -->
062             * <p>
063             * If the meaning of the '<em>Input</em>' reference list isn't clear,
064             * there really should be more of a description here...
065             * </p>
066             * <!-- end-user-doc -->
067             * @return the value of the '<em>Input</em>' reference list.
068             * @see com.hammurapi.flow.FlowPackage#getPin_Input()
069             * @see com.hammurapi.flow.Transition#getToPin
070             * @model opposite="toPin"
071             * @generated
072             */
073            EList<Transition> getInput();
074    
075            /**
076             * Returns the value of the '<em><b>Node</b></em>' container reference.
077             * It is bidirectional and its opposite is '{@link com.hammurapi.flow.Node#getPin <em>Pin</em>}'.
078             * <!-- begin-user-doc -->
079             * <p>
080             * If the meaning of the '<em>Node</em>' container reference 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>Node</em>' container reference.
085             * @see #setNode(Node)
086             * @see com.hammurapi.flow.FlowPackage#getPin_Node()
087             * @see com.hammurapi.flow.Node#getPin
088             * @model opposite="pin" required="true" transient="false"
089             * @generated
090             */
091            Node getNode();
092    
093            /**
094             * Sets the value of the '{@link com.hammurapi.flow.Pin#getNode <em>Node</em>}' container reference.
095             * <!-- begin-user-doc -->
096             * <!-- end-user-doc -->
097             * @param value the new value of the '<em>Node</em>' container reference.
098             * @see #getNode()
099             * @generated
100             */
101            void setNode(Node value);
102    
103            /**
104             * Returns the value of the '<em><b>Name</b></em>' attribute.
105             * <!-- begin-user-doc -->
106             * <p>
107             * If the meaning of the '<em>Name</em>' attribute isn't clear,
108             * there really should be more of a description here...
109             * </p>
110             * <!-- end-user-doc -->
111             * @return the value of the '<em>Name</em>' attribute.
112             * @see #setName(String)
113             * @see com.hammurapi.flow.FlowPackage#getPin_Name()
114             * @model required="true"
115             * @generated
116             */
117            String getName();
118    
119            /**
120             * Sets the value of the '{@link com.hammurapi.flow.Pin#getName <em>Name</em>}' attribute.
121             * <!-- begin-user-doc -->
122             * <!-- end-user-doc -->
123             * @param value the new value of the '<em>Name</em>' attribute.
124             * @see #getName()
125             * @generated
126             */
127            void setName(String value);
128    
129            /**
130             * Returns the value of the '<em><b>Pin Config</b></em>' containment reference.
131             * <!-- begin-user-doc -->
132             * <!-- end-user-doc -->
133             * <!-- begin-model-doc -->
134             * Optional pin configuration data.
135             * <!-- end-model-doc -->
136             * @return the value of the '<em>Pin Config</em>' containment reference.
137             * @see #setPinConfig(Factory)
138             * @see com.hammurapi.flow.FlowPackage#getPin_PinConfig()
139             * @model containment="true"
140             * @generated
141             */
142            Factory getPinConfig();
143    
144            /**
145             * Sets the value of the '{@link com.hammurapi.flow.Pin#getPinConfig <em>Pin Config</em>}' containment reference.
146             * <!-- begin-user-doc -->
147             * <!-- end-user-doc -->
148             * @param value the new value of the '<em>Pin Config</em>' containment reference.
149             * @see #getPinConfig()
150             * @generated
151             */
152            void setPinConfig(Factory value);
153    
154    } // Pin