/**
 */
package ua.ansymo.hintco;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Hierarchical Unit Port</b></em>'.
 * <!-- end-user-doc -->
 *
 *
 * @see ua.ansymo.hintco.HintcoPackage#getHierarchicalUnitPort()
 * @model
 * @generated
 */
public interface HierarchicalUnitPort extends InputPortInstance, OutputPortInstance {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model kind="operation" unique="false"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean _xblockexpression = false;\n{\n\tfinal &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%&gt;&lt;&lt;%ua.ansymo.hintco.OutputPortInstance%&gt;, &lt;%java.lang.Boolean%&gt;&gt; _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%&gt;&lt;&lt;%ua.ansymo.hintco.OutputPortInstance%&gt;, &lt;%java.lang.Boolean%&gt;&gt;()\n\t{\n\t\tpublic &lt;%java.lang.Boolean%&gt; apply(final &lt;%ua.ansymo.hintco.OutputPortInstance%&gt; p)\n\t\t{\n\t\t\t&lt;%ua.ansymo.hintco.OutputPortInstance%&gt; _valueFrom = &lt;%this%&gt;.getValueFrom();\n\t\t\treturn &lt;%java.lang.Boolean%&gt;.valueOf(&lt;%com.google.common.base.Objects%&gt;.equal(p, _valueFrom));\n\t\t}\n\t};\n\tboolean _exists = &lt;%org.eclipse.xtext.xbase.lib.IteratorExtensions%&gt;.&lt;&lt;%ua.ansymo.hintco.OutputPortInstance%&gt;&gt;exists(&lt;%com.google.common.collect.Iterators%&gt;.&lt;&lt;%ua.ansymo.hintco.OutputPortInstance%&gt;&gt;filter(this.getUnit().eAllContents(), &lt;%ua.ansymo.hintco.OutputPortInstance%&gt;.class), _function);\n\tfinal boolean auxIsInput = (!_exists);\n\tfinal boolean auxAltIsInput = this.altIsInput();\n\tif (((auxIsInput &amp;&amp; (!auxAltIsInput)) || ((!auxIsInput) &amp;&amp; auxAltIsInput)))\n\t{\n\t\tthrow new &lt;%java.lang.RuntimeException%&gt;(\"Something wrong with the implementation of isInput\");\n\t}\n\t_xblockexpression = auxIsInput;\n}\nreturn _xblockexpression;'"
	 * @generated
	 */
	boolean isInput();

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model unique="false"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean _xifexpression = false;\nboolean _isEmpty = this.getValueTo().isEmpty();\nif (_isEmpty)\n{\n\t_xifexpression = false;\n}\nelse\n{\n\tfinal &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%&gt;&lt;&lt;%ua.ansymo.hintco.InputPortInstance%&gt;, &lt;%java.lang.Boolean%&gt;&gt; _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%&gt;&lt;&lt;%ua.ansymo.hintco.InputPortInstance%&gt;, &lt;%java.lang.Boolean%&gt;&gt;()\n\t{\n\t\tpublic &lt;%java.lang.Boolean%&gt; apply(final &lt;%ua.ansymo.hintco.InputPortInstance%&gt; trgP)\n\t\t{\n\t\t\tboolean _xifexpression = false;\n\t\t\t&lt;%ua.ansymo.hintco.UnitInstance%&gt; _unit = trgP.getUnit();\n\t\t\t&lt;%ua.ansymo.hintco.UnitInstance%&gt; _unit_1 = &lt;%this%&gt;.getUnit();\n\t\t\tboolean _tripleEquals = (_unit == _unit_1);\n\t\t\tif (_tripleEquals)\n\t\t\t{\n\t\t\t\t_xifexpression = false;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tboolean _xblockexpression = false;\n\t\t\t\t{\n\t\t\t\t\tfinal &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%&gt;&lt;&lt;%ua.ansymo.hintco.InputPortInstance%&gt;, &lt;%java.lang.Boolean%&gt;&gt; _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%&gt;&lt;&lt;%ua.ansymo.hintco.InputPortInstance%&gt;, &lt;%java.lang.Boolean%&gt;&gt;()\n\t\t\t\t\t{\n\t\t\t\t\t\tpublic &lt;%java.lang.Boolean%&gt; apply(final &lt;%ua.ansymo.hintco.InputPortInstance%&gt; ip)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn &lt;%java.lang.Boolean%&gt;.valueOf((ip == trgP));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tfinal boolean internal = &lt;%org.eclipse.xtext.xbase.lib.IteratorExtensions%&gt;.&lt;&lt;%ua.ansymo.hintco.InputPortInstance%&gt;&gt;exists(&lt;%com.google.common.collect.Iterators%&gt;.&lt;&lt;%ua.ansymo.hintco.InputPortInstance%&gt;&gt;filter(&lt;%this%&gt;.getUnit().eAllContents(), &lt;%ua.ansymo.hintco.InputPortInstance%&gt;.class), _function);\n\t\t\t\t\tboolean _xifexpression_1 = false;\n\t\t\t\t\tif ((!internal))\n\t\t\t\t\t{\n\t\t\t\t\t\t_xifexpression_1 = false;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tboolean _xifexpression_2 = false;\n\t\t\t\t\t\tif ((trgP instanceof &lt;%ua.ansymo.hintco.HierarchicalUnitPort%&gt;))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t_xifexpression_2 = ((&lt;%ua.ansymo.hintco.HierarchicalUnitPort%&gt;)trgP).altIsInput();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t_xifexpression_2 = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_xifexpression_1 = _xifexpression_2;\n\t\t\t\t\t}\n\t\t\t\t\t_xblockexpression = _xifexpression_1;\n\t\t\t\t}\n\t\t\t\t_xifexpression = _xblockexpression;\n\t\t\t}\n\t\t\treturn &lt;%java.lang.Boolean%&gt;.valueOf(_xifexpression);\n\t\t}\n\t};\n\t_xifexpression = &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%&gt;.&lt;&lt;%ua.ansymo.hintco.InputPortInstance%&gt;&gt;forall(this.getValueTo(), _function);\n}\nreturn _xifexpression;'"
	 * @generated
	 */
	boolean altIsInput();

} // HierarchicalUnitPort
