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

import org.eclipse.emf.common.util.EList;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Decomposition Unit Adaptation</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * </p>
 * <ul>
 *   <li>{@link ua.ansymo.hintco.DecompositionUnitAdaptation#getChildren <em>Children</em>}</li>
 *   <li>{@link ua.ansymo.hintco.DecompositionUnitAdaptation#getName <em>Name</em>}</li>
 * </ul>
 *
 * @see ua.ansymo.hintco.HintcoPackage#getDecompositionUnitAdaptation()
 * @model abstract="true"
 * @generated
 */
public interface DecompositionUnitAdaptation extends UnitAdaptation {
	/**
	 * Returns the value of the '<em><b>Children</b></em>' containment reference list.
	 * The list contents are of type {@link ua.ansymo.hintco.UnitAdaptation}.
	 * It is bidirectional and its opposite is '{@link ua.ansymo.hintco.UnitAdaptation#getParent <em>Parent</em>}'.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Children</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Children</em>' containment reference list.
	 * @see ua.ansymo.hintco.HintcoPackage#getDecompositionUnitAdaptation_Children()
	 * @see ua.ansymo.hintco.UnitAdaptation#getParent
	 * @model opposite="parent" containment="true"
	 * @generated
	 */
	EList<UnitAdaptation> getChildren();

	/**
	 * Returns the value of the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Name</em>' attribute.
	 * @see ua.ansymo.hintco.HintcoPackage#getDecompositionUnitAdaptation_Name()
	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='int _weight = this.getWeight();\n&lt;%java.lang.String%&gt; _plus = (\"(w=\" + &lt;%java.lang.Integer%&gt;.valueOf(_weight));\nreturn (_plus + \")\");'"
	 * @generated
	 */
	String getName();

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model unique="false"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='int _size = this.getChildren().size();\nfinal &lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%&gt;&gt; res = new &lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%&gt;&gt;(_size);\nfinal &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%&gt;&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%&gt;, &lt;%java.lang.Boolean%&gt;&gt; _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%&gt;&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%&gt;, &lt;%java.lang.Boolean%&gt;&gt;()\n{\n\tpublic &lt;%java.lang.Boolean%&gt; apply(final &lt;%ua.ansymo.hintco.UnitAdaptation%&gt; a)\n\t{\n\t\treturn &lt;%java.lang.Boolean%&gt;.valueOf(a.isSelected());\n\t}\n};\n&lt;%java.lang.Iterable%&gt;&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%&gt;&gt; _filter = &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%&gt;.&lt;&lt;%ua.ansymo.hintco.UnitAdaptation%&gt;&gt;filter(this.getChildren(), _function);\nfor (final &lt;%ua.ansymo.hintco.UnitAdaptation%&gt; c : _filter)\n{\n\tif ((c instanceof &lt;%ua.ansymo.hintco.DecompositionUnitAdaptation%&gt;))\n\t{\n\t\tres.addAll(((&lt;%ua.ansymo.hintco.DecompositionUnitAdaptation%&gt;)c).selectedAdaptations());\n\t}\n\telse\n\t{\n\t\tres.add(c);\n\t}\n}\nreturn res;'"
	 * @generated
	 */
	EList<UnitAdaptation> selectedAdaptations();

} // DecompositionUnitAdaptation
