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