/**
* Copyright (c) 2015-2016 Obeo, Inria
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* - William Piers <william.piers@obeo.fr>
* - Philippe Merle <philippe.merle@inria.fr>
*/
package org.occiware.clouddesigner.occi;
import java.util.Map;
import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EObject;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Extension</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* </p>
* <ul>
* <li>{@link org.occiware.clouddesigner.occi.Extension#getName <em>Name</em>}</li>
* <li>{@link org.occiware.clouddesigner.occi.Extension#getScheme <em>Scheme</em>}</li>
* <li>{@link org.occiware.clouddesigner.occi.Extension#getDescription <em>Description</em>}</li>
* <li>{@link org.occiware.clouddesigner.occi.Extension#getImport <em>Import</em>}</li>
* <li>{@link org.occiware.clouddesigner.occi.Extension#getKinds <em>Kinds</em>}</li>
* <li>{@link org.occiware.clouddesigner.occi.Extension#getMixins <em>Mixins</em>}</li>
* <li>{@link org.occiware.clouddesigner.occi.Extension#getTypes <em>Types</em>}</li>
* </ul>
*
* @see org.occiware.clouddesigner.occi.OCCIPackage#getExtension()
* @model annotation="http://www.eclipse.org/emf/2002/Ecore constraints='SchemeUnique KindsSchemeValid MixinsSchemeValid TermUnicity KindParentLocalOrImported MixinDependsLocalOrImported MixinAppliesLocalOrImported'"
* @generated
*/
public interface Extension extends EObject {
/**
* 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 #setName(String)
* @see org.occiware.clouddesigner.occi.OCCIPackage#getExtension_Name()
* @model dataType="org.occiware.clouddesigner.occi.String" required="true"
* annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException(); // FIXME Unimplemented http://schemas.ogf.org/occi/core/ecore!Extension!name'"
* @generated
*/
String getName();
/**
* Sets the value of the '{@link org.occiware.clouddesigner.occi.Extension#getName <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Name</em>' attribute.
* @see #getName()
* @generated
*/
void setName(String value);
/**
* Returns the value of the '<em><b>Scheme</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Scheme</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Scheme</em>' attribute.
* @see #setScheme(String)
* @see org.occiware.clouddesigner.occi.OCCIPackage#getExtension_Scheme()
* @model dataType="org.occiware.clouddesigner.occi.String" required="true"
* annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException(); // FIXME Unimplemented http://schemas.ogf.org/occi/core/ecore!Extension!scheme'"
* @generated
*/
String getScheme();
/**
* Sets the value of the '{@link org.occiware.clouddesigner.occi.Extension#getScheme <em>Scheme</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Scheme</em>' attribute.
* @see #getScheme()
* @generated
*/
void setScheme(String value);
/**
* Returns the value of the '<em><b>Description</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Description</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Description</em>' attribute.
* @see #setDescription(String)
* @see org.occiware.clouddesigner.occi.OCCIPackage#getExtension_Description()
* @model dataType="org.occiware.clouddesigner.occi.String"
* annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException(); // FIXME Unimplemented http://schemas.ogf.org/occi/core/ecore!Extension!description'"
* @generated
*/
String getDescription();
/**
* Sets the value of the '{@link org.occiware.clouddesigner.occi.Extension#getDescription <em>Description</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Description</em>' attribute.
* @see #getDescription()
* @generated
*/
void setDescription(String value);
/**
* Returns the value of the '<em><b>Import</b></em>' reference list.
* The list contents are of type {@link org.occiware.clouddesigner.occi.Extension}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Import</em>' reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Import</em>' reference list.
* @see org.occiware.clouddesigner.occi.OCCIPackage#getExtension_Import()
* @model annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException(); // FIXME Unimplemented http://schemas.ogf.org/occi/core/ecore!Extension!import'"
* @generated
*/
EList<Extension> getImport();
/**
* Returns the value of the '<em><b>Kinds</b></em>' containment reference list.
* The list contents are of type {@link org.occiware.clouddesigner.occi.Kind}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Kinds</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>Kinds</em>' containment reference list.
* @see org.occiware.clouddesigner.occi.OCCIPackage#getExtension_Kinds()
* @model containment="true" keys="term"
* annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException(); // FIXME Unimplemented http://schemas.ogf.org/occi/core/ecore!Extension!kinds'"
* @generated
*/
EList<Kind> getKinds();
/**
* Returns the value of the '<em><b>Mixins</b></em>' containment reference list.
* The list contents are of type {@link org.occiware.clouddesigner.occi.Mixin}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Mixins</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>Mixins</em>' containment reference list.
* @see org.occiware.clouddesigner.occi.OCCIPackage#getExtension_Mixins()
* @model containment="true" keys="term"
* annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException(); // FIXME Unimplemented http://schemas.ogf.org/occi/core/ecore!Extension!mixins'"
* @generated
*/
EList<Mixin> getMixins();
/**
* Returns the value of the '<em><b>Types</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.emf.ecore.EDataType}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Types</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>Types</em>' containment reference list.
* @see org.occiware.clouddesigner.occi.OCCIPackage#getExtension_Types()
* @model containment="true"
* annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException(); // FIXME Unimplemented http://schemas.ogf.org/occi/core/ecore!Extension!types'"
* @generated
*/
EList<EDataType> getTypes();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @model annotation="http://www.eclipse.org/emf/2002/GenModel body='/**\n * \n * inv KindsSchemeValid:\n * let severity : Integer[1] = \'Extension::KindsSchemeValid\'.getSeverity()\n * in\n * if severity <= 0\n * then true\n * else\n * let status : OclAny[?] = kinds->forAll(k | k.scheme = self.scheme)\n * in\n * \'Extension::KindsSchemeValid\'.logDiagnostic(self, null, diagnostics, context, null, severity, status, 0)\n * endif\n \052/\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.evaluation.Executor%> executor = <%org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal%>.getExecutor(this);\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.ids.IdResolver%> idResolver = executor.getIdResolver();\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.values.IntegerValue%> severity_0 = <%org.eclipse.ocl.pivot.library.string.CGStringGetSeverityOperation%>.INSTANCE.evaluate(executor, <%org.occiware.clouddesigner.occi.OCCITables%>.STR_Extension_c_c_KindsSchemeValid);\nfinal /*@NonInvalid\052/ boolean le = <%org.eclipse.ocl.pivot.library.oclany.OclComparableLessThanEqualOperation%>.INSTANCE.evaluate(executor, severity_0, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_0).booleanValue();\n/*@NonInvalid\052/ boolean symbol_0;\nif (le) {\n symbol_0 = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n}\nelse {\n /*@Caught\052/ /*@NonNull\052/ <%java.lang.Object%> CAUGHT_status;\n try {\n final /*@Thrown\052/ <%java.util.List%><<%org.occiware.clouddesigner.occi.Kind%>> kinds = this.getKinds();\n final /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.OrderedSetValue%> BOXED_kinds = idResolver.createOrderedSetOfAll(<%org.occiware.clouddesigner.occi.OCCITables%>.ORD_CLSSid_Kind, kinds);\n /*@Thrown\052/ <%java.lang.Object%> accumulator = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n /*@NonNull\052/ <%java.util.Iterator%><<%java.lang.Object%>> ITERATOR_k = BOXED_kinds.iterator();\n /*@Thrown\052/ boolean status;\n while (true) {\n if (!ITERATOR_k.hasNext()) {\n if (accumulator == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE) {\n status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n }\n else {\n throw (<%org.eclipse.ocl.pivot.values.InvalidValueException%>)accumulator;\n }\n break;\n }\n /*@NonInvalid\052/ <%org.occiware.clouddesigner.occi.Kind%> k = (<%org.occiware.clouddesigner.occi.Kind%>)ITERATOR_k.next();\n /**\n * k.scheme = self.scheme\n \052/\n /*@Caught\052/ /*@NonNull\052/ <%java.lang.Object%> CAUGHT_eq;\n try {\n final /*@Thrown\052/ <%java.lang.String%> scheme = k.getScheme();\n final /*@Thrown\052/ <%java.lang.String%> scheme_0 = this.getScheme();\n final /*@Thrown\052/ boolean eq = scheme.equals(scheme_0);\n CAUGHT_eq = eq;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_eq = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n //\n if (CAUGHT_eq == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.FALSE_VALUE) {\t\t\t\t\t// Normal unsuccessful body evaluation result\n status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.FALSE_VALUE;\n break;\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Stop immediately \n }\n else if (CAUGHT_eq == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE) {\t\t\t\t// Normal successful body evaluation result\n ;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Carry on\n }\n else if (CAUGHT_eq instanceof <%org.eclipse.ocl.pivot.values.InvalidValueException%>) {\t\t// Abnormal exception evaluation result\n accumulator = CAUGHT_eq;\t\t\t\t\t\t\t\t\t// Cache an exception failure\n }\n else {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Impossible badly typed result\n accumulator = new <%org.eclipse.ocl.pivot.values.InvalidValueException%>(<%org.eclipse.ocl.pivot.messages.PivotMessages%>.NonBooleanBody, \"forAll\");\n }\n }\n CAUGHT_status = status;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n final /*@NonInvalid\052/ boolean logDiagnostic = <%org.eclipse.ocl.pivot.library.string.CGStringLogDiagnosticOperation%>.INSTANCE.evaluate(executor, <%org.eclipse.ocl.pivot.ids.TypeId%>.BOOLEAN, <%org.occiware.clouddesigner.occi.OCCITables%>.STR_Extension_c_c_KindsSchemeValid, this, null, diagnostics, context, null, severity_0, CAUGHT_status, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_0).booleanValue();\n symbol_0 = logDiagnostic;\n}\nreturn Boolean.TRUE == symbol_0;'"
* @generated
*/
boolean KindsSchemeValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @model annotation="http://www.eclipse.org/emf/2002/GenModel body='/**\n * \n * inv KindParentLocalOrImported:\n * let\n * severity : Integer[1] = \'Extension::KindParentLocalOrImported\'.getSeverity()\n * in\n * if severity <= 0\n * then true\n * else\n * let\n * status : OclAny[?] = kinds->forAll(parent <> null implies\n * let parentExtension : OclElement[?] = parent.oclContainer()\n * in parentExtension = self or\n * import->includes(parentExtension))\n * in\n * \'Extension::KindParentLocalOrImported\'.logDiagnostic(self, null, diagnostics, context, null, severity, status, 0)\n * endif\n \052/\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.evaluation.Executor%> executor = <%org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal%>.getExecutor(this);\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.ids.IdResolver%> idResolver = executor.getIdResolver();\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.values.IntegerValue%> severity_0 = <%org.eclipse.ocl.pivot.library.string.CGStringGetSeverityOperation%>.INSTANCE.evaluate(executor, <%org.occiware.clouddesigner.occi.OCCITables%>.STR_Extension_c_c_KindParentLocalOrImported);\nfinal /*@NonInvalid\052/ boolean le = <%org.eclipse.ocl.pivot.library.oclany.OclComparableLessThanEqualOperation%>.INSTANCE.evaluate(executor, severity_0, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_0).booleanValue();\n/*@NonInvalid\052/ boolean symbol_1;\nif (le) {\n symbol_1 = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n}\nelse {\n /*@Caught\052/ /*@Nullable\052/ <%java.lang.Object%> CAUGHT_status;\n try {\n final /*@Thrown\052/ <%java.util.List%><<%org.occiware.clouddesigner.occi.Kind%>> kinds = this.getKinds();\n final /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.OrderedSetValue%> BOXED_kinds = idResolver.createOrderedSetOfAll(<%org.occiware.clouddesigner.occi.OCCITables%>.ORD_CLSSid_Kind, kinds);\n /*@Thrown\052/ <%java.lang.Object%> accumulator = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n /*@NonNull\052/ <%java.util.Iterator%><<%java.lang.Object%>> ITERATOR__1 = BOXED_kinds.iterator();\n /*@Thrown\052/ <%java.lang.Boolean%> status;\n while (true) {\n if (!ITERATOR__1.hasNext()) {\n if (accumulator == null) {\n status = null;\n }\n else if (accumulator == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE) {\n status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n }\n else {\n throw (<%org.eclipse.ocl.pivot.values.InvalidValueException%>)accumulator;\n }\n break;\n }\n /*@NonInvalid\052/ <%org.occiware.clouddesigner.occi.Kind%> _1 = (<%org.occiware.clouddesigner.occi.Kind%>)ITERATOR__1.next();\n /**\n * parent <> null implies\n * let parentExtension : OclElement[?] = parent.oclContainer()\n * in parentExtension = self or import->includes(parentExtension)\n \052/\n /*@Caught\052/ /*@Nullable\052/ <%java.lang.Object%> CAUGHT_implies;\n try {\n /*@Caught\052/ /*@NonNull\052/ <%java.lang.Object%> CAUGHT_ne;\n try {\n final /*@Thrown\052/ <%org.occiware.clouddesigner.occi.Kind%> parent = _1.getParent();\n final /*@Thrown\052/ boolean ne = parent != null;\n CAUGHT_ne = ne;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_ne = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n /*@Caught\052/ /*@Nullable\052/ <%java.lang.Object%> CAUGHT_or;\n try {\n /*@Caught\052/ /*@Nullable\052/ <%java.lang.Object%> CAUGHT_parentExtension;\n try {\n final /*@Thrown\052/ <%org.occiware.clouddesigner.occi.Kind%> parent_0 = _1.getParent();\n final /*@Thrown\052/ <%java.lang.Object%> parentExtension = <%org.eclipse.ocl.pivot.library.classifier.ClassifierOclContainerOperation%>.INSTANCE.evaluate(executor, parent_0);\n CAUGHT_parentExtension = parentExtension;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_parentExtension = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n /*@Caught\052/ /*@NonNull\052/ <%java.lang.Object%> CAUGHT_eq;\n try {\n if (CAUGHT_parentExtension instanceof <%org.eclipse.ocl.pivot.values.InvalidValueException%>) {\n throw (<%org.eclipse.ocl.pivot.values.InvalidValueException%>)CAUGHT_parentExtension;\n }\n final /*@Thrown\052/ boolean eq = this.equals(CAUGHT_parentExtension);\n CAUGHT_eq = eq;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_eq = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n /*@Caught\052/ /*@NonNull\052/ <%java.lang.Object%> CAUGHT_includes;\n try {\n final /*@Thrown\052/ <%java.util.List%><<%org.occiware.clouddesigner.occi.Extension%>> symbol_0 = this.getImport();\n final /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.OrderedSetValue%> BOXED_symbol_0 = idResolver.createOrderedSetOfAll(<%org.occiware.clouddesigner.occi.OCCITables%>.ORD_CLSSid_Extension, symbol_0);\n if (CAUGHT_parentExtension instanceof <%org.eclipse.ocl.pivot.values.InvalidValueException%>) {\n throw (<%org.eclipse.ocl.pivot.values.InvalidValueException%>)CAUGHT_parentExtension;\n }\n final /*@Thrown\052/ boolean includes = <%org.eclipse.ocl.pivot.library.collection.CollectionIncludesOperation%>.INSTANCE.evaluate(BOXED_symbol_0, CAUGHT_parentExtension).booleanValue();\n CAUGHT_includes = includes;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_includes = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n final /*@Thrown\052/ <%java.lang.Boolean%> or = <%org.eclipse.ocl.pivot.library.logical.BooleanOrOperation%>.INSTANCE.evaluate(CAUGHT_eq, CAUGHT_includes);\n CAUGHT_or = or;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_or = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n final /*@Thrown\052/ <%java.lang.Boolean%> implies = <%org.eclipse.ocl.pivot.library.logical.BooleanImpliesOperation%>.INSTANCE.evaluate(CAUGHT_ne, CAUGHT_or);\n CAUGHT_implies = implies;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_implies = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n //\n if (CAUGHT_implies == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.FALSE_VALUE) {\t\t\t\t\t// Normal unsuccessful body evaluation result\n status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.FALSE_VALUE;\n break;\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Stop immediately \n }\n else if (CAUGHT_implies == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE) {\t\t\t\t// Normal successful body evaluation result\n ;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Carry on\n }\n else if (CAUGHT_implies == null) {\t\t\t\t\t\t\t\t// Abnormal null body evaluation result\n if (accumulator == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE) {\n accumulator = null;\t\t\t\t\t\t\t\t\t\t// Cache a null failure\n }\n }\n else if (CAUGHT_implies instanceof <%org.eclipse.ocl.pivot.values.InvalidValueException%>) {\t\t// Abnormal exception evaluation result\n accumulator = CAUGHT_implies;\t\t\t\t\t\t\t\t\t// Cache an exception failure\n }\n else {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Impossible badly typed result\n accumulator = new <%org.eclipse.ocl.pivot.values.InvalidValueException%>(<%org.eclipse.ocl.pivot.messages.PivotMessages%>.NonBooleanBody, \"forAll\");\n }\n }\n CAUGHT_status = status;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n final /*@NonInvalid\052/ boolean logDiagnostic = <%org.eclipse.ocl.pivot.library.string.CGStringLogDiagnosticOperation%>.INSTANCE.evaluate(executor, <%org.eclipse.ocl.pivot.ids.TypeId%>.BOOLEAN, <%org.occiware.clouddesigner.occi.OCCITables%>.STR_Extension_c_c_KindParentLocalOrImported, this, null, diagnostics, context, null, severity_0, CAUGHT_status, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_0).booleanValue();\n symbol_1 = logDiagnostic;\n}\nreturn Boolean.TRUE == symbol_1;'"
* @generated
*/
boolean KindParentLocalOrImported(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @model annotation="http://www.eclipse.org/emf/2002/GenModel body='/**\n * \n * inv MixinsSchemeValid:\n * let severity : Integer[1] = \'Extension::MixinsSchemeValid\'.getSeverity()\n * in\n * if severity <= 0\n * then true\n * else\n * let\n * status : OclAny[?] = mixins->forAll(m |\n * m.scheme.substring(1, scheme.size() - 1) =\n * scheme.substring(1, scheme.size() - 1))\n * in\n * \'Extension::MixinsSchemeValid\'.logDiagnostic(self, null, diagnostics, context, null, severity, status, 0)\n * endif\n \052/\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.evaluation.Executor%> executor = <%org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal%>.getExecutor(this);\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.ids.IdResolver%> idResolver = executor.getIdResolver();\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.values.IntegerValue%> severity_0 = <%org.eclipse.ocl.pivot.library.string.CGStringGetSeverityOperation%>.INSTANCE.evaluate(executor, <%org.occiware.clouddesigner.occi.OCCITables%>.STR_Extension_c_c_MixinsSchemeValid);\nfinal /*@NonInvalid\052/ boolean le = <%org.eclipse.ocl.pivot.library.oclany.OclComparableLessThanEqualOperation%>.INSTANCE.evaluate(executor, severity_0, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_0).booleanValue();\n/*@NonInvalid\052/ boolean symbol_0;\nif (le) {\n symbol_0 = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n}\nelse {\n /*@Caught\052/ /*@NonNull\052/ <%java.lang.Object%> CAUGHT_status;\n try {\n final /*@Thrown\052/ <%java.util.List%><<%org.occiware.clouddesigner.occi.Mixin%>> mixins = this.getMixins();\n final /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.OrderedSetValue%> BOXED_mixins = idResolver.createOrderedSetOfAll(<%org.occiware.clouddesigner.occi.OCCITables%>.ORD_CLSSid_Mixin, mixins);\n /*@Thrown\052/ <%java.lang.Object%> accumulator = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n /*@NonNull\052/ <%java.util.Iterator%><<%java.lang.Object%>> ITERATOR_m = BOXED_mixins.iterator();\n /*@Thrown\052/ boolean status;\n while (true) {\n if (!ITERATOR_m.hasNext()) {\n if (accumulator == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE) {\n status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n }\n else {\n throw (<%org.eclipse.ocl.pivot.values.InvalidValueException%>)accumulator;\n }\n break;\n }\n /*@NonInvalid\052/ <%org.occiware.clouddesigner.occi.Mixin%> m = (<%org.occiware.clouddesigner.occi.Mixin%>)ITERATOR_m.next();\n /**\n * \n * m.scheme.substring(1, scheme.size() - 1) =\n * scheme.substring(1, scheme.size() - 1)\n \052/\n /*@Caught\052/ /*@NonNull\052/ <%java.lang.Object%> CAUGHT_eq;\n try {\n final /*@Thrown\052/ <%java.lang.String%> scheme_1 = this.getScheme();\n final /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.IntegerValue%> size_0 = <%org.eclipse.ocl.pivot.library.string.StringSizeOperation%>.INSTANCE.evaluate(scheme_1);\n final /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.IntegerValue%> diff_0 = (<%org.eclipse.ocl.pivot.values.IntegerValue%>)<%org.eclipse.ocl.pivot.library.numeric.NumericMinusOperation%>.INSTANCE.evaluate(size_0, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_1);\n final /*@Thrown\052/ <%java.lang.String%> scheme = m.getScheme();\n final /*@Thrown\052/ <%java.lang.String%> substring = <%org.eclipse.ocl.pivot.library.string.StringSubstringOperation%>.INSTANCE.evaluate(scheme, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_1, diff_0);\n final /*@Thrown\052/ <%java.lang.String%> substring_0 = <%org.eclipse.ocl.pivot.library.string.StringSubstringOperation%>.INSTANCE.evaluate(scheme_1, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_1, diff_0);\n final /*@Thrown\052/ boolean eq = substring.equals(substring_0);\n CAUGHT_eq = eq;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_eq = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n //\n if (CAUGHT_eq == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.FALSE_VALUE) {\t\t\t\t\t// Normal unsuccessful body evaluation result\n status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.FALSE_VALUE;\n break;\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Stop immediately \n }\n else if (CAUGHT_eq == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE) {\t\t\t\t// Normal successful body evaluation result\n ;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Carry on\n }\n else if (CAUGHT_eq instanceof <%org.eclipse.ocl.pivot.values.InvalidValueException%>) {\t\t// Abnormal exception evaluation result\n accumulator = CAUGHT_eq;\t\t\t\t\t\t\t\t\t// Cache an exception failure\n }\n else {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Impossible badly typed result\n accumulator = new <%org.eclipse.ocl.pivot.values.InvalidValueException%>(<%org.eclipse.ocl.pivot.messages.PivotMessages%>.NonBooleanBody, \"forAll\");\n }\n }\n CAUGHT_status = status;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n final /*@NonInvalid\052/ boolean logDiagnostic = <%org.eclipse.ocl.pivot.library.string.CGStringLogDiagnosticOperation%>.INSTANCE.evaluate(executor, <%org.eclipse.ocl.pivot.ids.TypeId%>.BOOLEAN, <%org.occiware.clouddesigner.occi.OCCITables%>.STR_Extension_c_c_MixinsSchemeValid, this, null, diagnostics, context, null, severity_0, CAUGHT_status, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_0).booleanValue();\n symbol_0 = logDiagnostic;\n}\nreturn Boolean.TRUE == symbol_0;'"
* @generated
*/
boolean MixinsSchemeValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @model annotation="http://www.eclipse.org/emf/2002/GenModel body='/**\n * \n * inv TermUnicity:\n * let severity : Integer[1] = \'Extension::TermUnicity\'.getSeverity()\n * in\n * if severity <= 0\n * then true\n * else\n * let\n * status : OclAny[1] = kinds.term->intersection(mixins.term)\n * ->isEmpty()\n * in\n * \'Extension::TermUnicity\'.logDiagnostic(self, null, diagnostics, context, null, severity, status, 0)\n * endif\n \052/\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.evaluation.Executor%> executor = <%org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal%>.getExecutor(this);\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.ids.IdResolver%> idResolver = executor.getIdResolver();\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.values.IntegerValue%> severity_0 = <%org.eclipse.ocl.pivot.library.string.CGStringGetSeverityOperation%>.INSTANCE.evaluate(executor, <%org.occiware.clouddesigner.occi.OCCITables%>.STR_Extension_c_c_TermUnicity);\nfinal /*@NonInvalid\052/ boolean le = <%org.eclipse.ocl.pivot.library.oclany.OclComparableLessThanEqualOperation%>.INSTANCE.evaluate(executor, severity_0, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_0).booleanValue();\n/*@NonInvalid\052/ boolean symbol_0;\nif (le) {\n symbol_0 = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n}\nelse {\n /*@Caught\052/ /*@NonNull\052/ <%java.lang.Object%> CAUGHT_status;\n try {\n final /*@Thrown\052/ <%java.util.List%><<%org.occiware.clouddesigner.occi.Kind%>> kinds = this.getKinds();\n final /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.OrderedSetValue%> BOXED_kinds = idResolver.createOrderedSetOfAll(<%org.occiware.clouddesigner.occi.OCCITables%>.ORD_CLSSid_Kind, kinds);\n /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.SequenceValue%>.Accumulator accumulator = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createSequenceAccumulatorValue(<%org.occiware.clouddesigner.occi.OCCITables%>.SEQ_PRIMid_String);\n /*@NonNull\052/ <%java.util.Iterator%><<%java.lang.Object%>> ITERATOR__1 = BOXED_kinds.iterator();\n /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.SequenceValue%> collect;\n while (true) {\n if (!ITERATOR__1.hasNext()) {\n collect = accumulator;\n break;\n }\n /*@NonInvalid\052/ <%org.occiware.clouddesigner.occi.Kind%> _1 = (<%org.occiware.clouddesigner.occi.Kind%>)ITERATOR__1.next();\n /**\n * term\n \052/\n final /*@Thrown\052/ <%java.lang.String%> term = _1.getTerm();\n //\n accumulator.add(term);\n }\n final /*@Thrown\052/ <%java.util.List%><<%org.occiware.clouddesigner.occi.Mixin%>> mixins = this.getMixins();\n final /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.OrderedSetValue%> BOXED_mixins = idResolver.createOrderedSetOfAll(<%org.occiware.clouddesigner.occi.OCCITables%>.ORD_CLSSid_Mixin, mixins);\n /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.SequenceValue%>.Accumulator accumulator_0 = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createSequenceAccumulatorValue(<%org.occiware.clouddesigner.occi.OCCITables%>.SEQ_PRIMid_String);\n /*@NonNull\052/ <%java.util.Iterator%><<%java.lang.Object%>> ITERATOR__1_0 = BOXED_mixins.iterator();\n /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.SequenceValue%> collect_0;\n while (true) {\n if (!ITERATOR__1_0.hasNext()) {\n collect_0 = accumulator_0;\n break;\n }\n /*@NonInvalid\052/ <%org.occiware.clouddesigner.occi.Mixin%> _1_0 = (<%org.occiware.clouddesigner.occi.Mixin%>)ITERATOR__1_0.next();\n /**\n * term\n \052/\n final /*@Thrown\052/ <%java.lang.String%> term_0 = _1_0.getTerm();\n //\n accumulator_0.add(term_0);\n }\n final /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.BagValue%> intersection = (<%org.eclipse.ocl.pivot.values.BagValue%>)<%org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation%>.INSTANCE.evaluate(collect, collect_0);\n final /*@Thrown\052/ boolean status = <%org.eclipse.ocl.pivot.library.collection.CollectionIsEmptyOperation%>.INSTANCE.evaluate(intersection).booleanValue();\n CAUGHT_status = status;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n final /*@NonInvalid\052/ boolean logDiagnostic = <%org.eclipse.ocl.pivot.library.string.CGStringLogDiagnosticOperation%>.INSTANCE.evaluate(executor, <%org.eclipse.ocl.pivot.ids.TypeId%>.BOOLEAN, <%org.occiware.clouddesigner.occi.OCCITables%>.STR_Extension_c_c_TermUnicity, this, null, diagnostics, context, null, severity_0, CAUGHT_status, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_0).booleanValue();\n symbol_0 = logDiagnostic;\n}\nreturn Boolean.TRUE == symbol_0;'"
* @generated
*/
boolean TermUnicity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @model annotation="http://www.eclipse.org/emf/2002/GenModel body='/**\n * \n * inv MixinAppliesLocalOrImported:\n * let\n * severity : Integer[1] = \'Extension::MixinAppliesLocalOrImported\'.getSeverity()\n * in\n * if severity <= 0\n * then true\n * else\n * let\n * status : OclAny[?] = mixins.applies->forAll(\n * let extension : OclElement[?] = oclContainer()\n * in extension = self or import->includes(extension))\n * in\n * \'Extension::MixinAppliesLocalOrImported\'.logDiagnostic(self, null, diagnostics, context, null, severity, status, 0)\n * endif\n \052/\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.evaluation.Executor%> executor = <%org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal%>.getExecutor(this);\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.ids.IdResolver%> idResolver = executor.getIdResolver();\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.values.IntegerValue%> severity_0 = <%org.eclipse.ocl.pivot.library.string.CGStringGetSeverityOperation%>.INSTANCE.evaluate(executor, <%org.occiware.clouddesigner.occi.OCCITables%>.STR_Extension_c_c_MixinAppliesLocalOrImported);\nfinal /*@NonInvalid\052/ boolean le = <%org.eclipse.ocl.pivot.library.oclany.OclComparableLessThanEqualOperation%>.INSTANCE.evaluate(executor, severity_0, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_0).booleanValue();\n/*@NonInvalid\052/ boolean symbol_1;\nif (le) {\n symbol_1 = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n}\nelse {\n /*@Caught\052/ /*@Nullable\052/ <%java.lang.Object%> CAUGHT_status;\n try {\n final /*@Thrown\052/ <%java.util.List%><<%org.occiware.clouddesigner.occi.Mixin%>> mixins = this.getMixins();\n final /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.OrderedSetValue%> BOXED_mixins = idResolver.createOrderedSetOfAll(<%org.occiware.clouddesigner.occi.OCCITables%>.ORD_CLSSid_Mixin, mixins);\n /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.SequenceValue%>.Accumulator accumulator = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createSequenceAccumulatorValue(<%org.occiware.clouddesigner.occi.OCCITables%>.SEQ_CLSSid_Kind);\n /*@NonNull\052/ <%java.util.Iterator%><<%java.lang.Object%>> ITERATOR__1 = BOXED_mixins.iterator();\n /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.SequenceValue%> collect;\n while (true) {\n if (!ITERATOR__1.hasNext()) {\n collect = accumulator;\n break;\n }\n /*@NonInvalid\052/ <%org.occiware.clouddesigner.occi.Mixin%> _1 = (<%org.occiware.clouddesigner.occi.Mixin%>)ITERATOR__1.next();\n /**\n * applies\n \052/\n final /*@Thrown\052/ <%java.util.List%><<%org.occiware.clouddesigner.occi.Kind%>> applies = _1.getApplies();\n final /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.OrderedSetValue%> BOXED_applies = idResolver.createOrderedSetOfAll(<%org.occiware.clouddesigner.occi.OCCITables%>.ORD_CLSSid_Kind, applies);\n //\n for (Object value : BOXED_applies.flatten().getElements()) {\n accumulator.add(value);\n }\n }\n /*@Thrown\052/ <%java.lang.Object%> accumulator_0 = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n /*@NonNull\052/ <%java.util.Iterator%><<%java.lang.Object%>> ITERATOR__1_0 = collect.iterator();\n /*@Thrown\052/ <%java.lang.Boolean%> status;\n while (true) {\n if (!ITERATOR__1_0.hasNext()) {\n if (accumulator_0 == null) {\n status = null;\n }\n else if (accumulator_0 == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE) {\n status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n }\n else {\n throw (<%org.eclipse.ocl.pivot.values.InvalidValueException%>)accumulator_0;\n }\n break;\n }\n /*@NonInvalid\052/ <%org.occiware.clouddesigner.occi.Kind%> _1_0 = (<%org.occiware.clouddesigner.occi.Kind%>)ITERATOR__1_0.next();\n /**\n * \n * let extension : OclElement[?] = oclContainer()\n * in extension = self or import->includes(extension)\n \052/\n /*@Caught\052/ /*@Nullable\052/ <%java.lang.Object%> CAUGHT_or;\n try {\n final /*@NonInvalid\052/ <%java.lang.Object%> extension = <%org.eclipse.ocl.pivot.library.classifier.ClassifierOclContainerOperation%>.INSTANCE.evaluate(executor, _1_0);\n final /*@NonInvalid\052/ boolean eq = this.equals(extension);\n /*@Caught\052/ /*@NonNull\052/ <%java.lang.Object%> CAUGHT_includes;\n try {\n final /*@Thrown\052/ <%java.util.List%><<%org.occiware.clouddesigner.occi.Extension%>> symbol_0 = this.getImport();\n final /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.OrderedSetValue%> BOXED_symbol_0 = idResolver.createOrderedSetOfAll(<%org.occiware.clouddesigner.occi.OCCITables%>.ORD_CLSSid_Extension, symbol_0);\n final /*@Thrown\052/ boolean includes = <%org.eclipse.ocl.pivot.library.collection.CollectionIncludesOperation%>.INSTANCE.evaluate(BOXED_symbol_0, extension).booleanValue();\n CAUGHT_includes = includes;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_includes = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n final /*@Thrown\052/ <%java.lang.Boolean%> or = <%org.eclipse.ocl.pivot.library.logical.BooleanOrOperation%>.INSTANCE.evaluate(eq, CAUGHT_includes);\n CAUGHT_or = or;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_or = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n //\n if (CAUGHT_or == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.FALSE_VALUE) {\t\t\t\t\t// Normal unsuccessful body evaluation result\n status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.FALSE_VALUE;\n break;\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Stop immediately \n }\n else if (CAUGHT_or == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE) {\t\t\t\t// Normal successful body evaluation result\n ;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Carry on\n }\n else if (CAUGHT_or == null) {\t\t\t\t\t\t\t\t// Abnormal null body evaluation result\n if (accumulator_0 == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE) {\n accumulator_0 = null;\t\t\t\t\t\t\t\t\t\t// Cache a null failure\n }\n }\n else if (CAUGHT_or instanceof <%org.eclipse.ocl.pivot.values.InvalidValueException%>) {\t\t// Abnormal exception evaluation result\n accumulator_0 = CAUGHT_or;\t\t\t\t\t\t\t\t\t// Cache an exception failure\n }\n else {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Impossible badly typed result\n accumulator_0 = new <%org.eclipse.ocl.pivot.values.InvalidValueException%>(<%org.eclipse.ocl.pivot.messages.PivotMessages%>.NonBooleanBody, \"forAll\");\n }\n }\n CAUGHT_status = status;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n final /*@NonInvalid\052/ boolean logDiagnostic = <%org.eclipse.ocl.pivot.library.string.CGStringLogDiagnosticOperation%>.INSTANCE.evaluate(executor, <%org.eclipse.ocl.pivot.ids.TypeId%>.BOOLEAN, <%org.occiware.clouddesigner.occi.OCCITables%>.STR_Extension_c_c_MixinAppliesLocalOrImported, this, null, diagnostics, context, null, severity_0, CAUGHT_status, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_0).booleanValue();\n symbol_1 = logDiagnostic;\n}\nreturn Boolean.TRUE == symbol_1;'"
* @generated
*/
boolean MixinAppliesLocalOrImported(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @model annotation="http://www.eclipse.org/emf/2002/GenModel body='/**\n * \n * inv SchemeUnique:\n * let severity : Integer[1] = \'Extension::SchemeUnique\'.getSeverity()\n * in\n * if severity <= 0\n * then true\n * else\n * let status : OclAny[1] = Extension.allInstances()->isUnique(scheme)\n * in\n * \'Extension::SchemeUnique\'.logDiagnostic(self, null, diagnostics, context, null, severity, status, 0)\n * endif\n \052/\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.evaluation.Executor%> executor = <%org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal%>.getExecutor(this);\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.ids.IdResolver%> idResolver = executor.getIdResolver();\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.values.IntegerValue%> severity_0 = <%org.eclipse.ocl.pivot.library.string.CGStringGetSeverityOperation%>.INSTANCE.evaluate(executor, <%org.occiware.clouddesigner.occi.OCCITables%>.STR_Extension_c_c_SchemeUnique);\nfinal /*@NonInvalid\052/ boolean le = <%org.eclipse.ocl.pivot.library.oclany.OclComparableLessThanEqualOperation%>.INSTANCE.evaluate(executor, severity_0, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_0).booleanValue();\n/*@NonInvalid\052/ boolean symbol_0;\nif (le) {\n symbol_0 = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n}\nelse {\n /*@Caught\052/ /*@NonNull\052/ <%java.lang.Object%> CAUGHT_status;\n try {\n final /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.Class%> TYP_occi_c_c_Extension_0 = idResolver.getClass(<%org.occiware.clouddesigner.occi.OCCITables%>.CLSSid_Extension, null);\n final /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.values.SetValue%> allInstances = <%org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation%>.INSTANCE.evaluate(executor, <%org.occiware.clouddesigner.occi.OCCITables%>.SET_CLSSid_Extension, TYP_occi_c_c_Extension_0);\n /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.SetValue%>.Accumulator accumulator = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createSetAccumulatorValue(<%org.occiware.clouddesigner.occi.OCCITables%>.SET_CLSSid_Extension);\n /*@NonNull\052/ <%java.util.Iterator%><<%java.lang.Object%>> ITERATOR__1 = allInstances.iterator();\n /*@Thrown\052/ boolean status;\n while (true) {\n if (!ITERATOR__1.hasNext()) {\n status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n break;\n }\n /*@NonInvalid\052/ <%org.occiware.clouddesigner.occi.Extension%> _1 = (<%org.occiware.clouddesigner.occi.Extension%>)ITERATOR__1.next();\n /**\n * scheme\n \052/\n final /*@Thrown\052/ <%java.lang.String%> scheme = _1.getScheme();\n //\n if (accumulator.includes(scheme) == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE) {\n status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.FALSE_VALUE;\t\t\t// Abort after second find\n break;\n }\n else {\n accumulator.add(scheme);\n }\n }\n CAUGHT_status = status;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n final /*@NonInvalid\052/ boolean logDiagnostic = <%org.eclipse.ocl.pivot.library.string.CGStringLogDiagnosticOperation%>.INSTANCE.evaluate(executor, <%org.eclipse.ocl.pivot.ids.TypeId%>.BOOLEAN, <%org.occiware.clouddesigner.occi.OCCITables%>.STR_Extension_c_c_SchemeUnique, this, null, diagnostics, context, null, severity_0, CAUGHT_status, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_0).booleanValue();\n symbol_0 = logDiagnostic;\n}\nreturn Boolean.TRUE == symbol_0;'"
* @generated
*/
boolean SchemeUnique(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @model annotation="http://www.eclipse.org/emf/2002/GenModel body='/**\n * \n * inv MixinDependsLocalOrImported:\n * let\n * severity : Integer[1] = \'Extension::MixinDependsLocalOrImported\'.getSeverity()\n * in\n * if severity <= 0\n * then true\n * else\n * let\n * status : OclAny[?] = mixins.depends->forAll(\n * let extension : OclElement[?] = oclContainer()\n * in extension = self or import->includes(extension))\n * in\n * \'Extension::MixinDependsLocalOrImported\'.logDiagnostic(self, null, diagnostics, context, null, severity, status, 0)\n * endif\n \052/\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.evaluation.Executor%> executor = <%org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal%>.getExecutor(this);\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.ids.IdResolver%> idResolver = executor.getIdResolver();\nfinal /*@NonInvalid\052/ <%org.eclipse.ocl.pivot.values.IntegerValue%> severity_0 = <%org.eclipse.ocl.pivot.library.string.CGStringGetSeverityOperation%>.INSTANCE.evaluate(executor, <%org.occiware.clouddesigner.occi.OCCITables%>.STR_Extension_c_c_MixinDependsLocalOrImported);\nfinal /*@NonInvalid\052/ boolean le = <%org.eclipse.ocl.pivot.library.oclany.OclComparableLessThanEqualOperation%>.INSTANCE.evaluate(executor, severity_0, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_0).booleanValue();\n/*@NonInvalid\052/ boolean symbol_1;\nif (le) {\n symbol_1 = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n}\nelse {\n /*@Caught\052/ /*@Nullable\052/ <%java.lang.Object%> CAUGHT_status;\n try {\n final /*@Thrown\052/ <%java.util.List%><<%org.occiware.clouddesigner.occi.Mixin%>> mixins = this.getMixins();\n final /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.OrderedSetValue%> BOXED_mixins = idResolver.createOrderedSetOfAll(<%org.occiware.clouddesigner.occi.OCCITables%>.ORD_CLSSid_Mixin, mixins);\n /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.SequenceValue%>.Accumulator accumulator = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createSequenceAccumulatorValue(<%org.occiware.clouddesigner.occi.OCCITables%>.SEQ_CLSSid_Mixin);\n /*@NonNull\052/ <%java.util.Iterator%><<%java.lang.Object%>> ITERATOR__1 = BOXED_mixins.iterator();\n /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.SequenceValue%> collect;\n while (true) {\n if (!ITERATOR__1.hasNext()) {\n collect = accumulator;\n break;\n }\n /*@NonInvalid\052/ <%org.occiware.clouddesigner.occi.Mixin%> _1 = (<%org.occiware.clouddesigner.occi.Mixin%>)ITERATOR__1.next();\n /**\n * depends\n \052/\n final /*@Thrown\052/ <%java.util.List%><<%org.occiware.clouddesigner.occi.Mixin%>> depends = _1.getDepends();\n final /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.OrderedSetValue%> BOXED_depends = idResolver.createOrderedSetOfAll(<%org.occiware.clouddesigner.occi.OCCITables%>.ORD_CLSSid_Mixin, depends);\n //\n for (Object value : BOXED_depends.flatten().getElements()) {\n accumulator.add(value);\n }\n }\n /*@Thrown\052/ <%java.lang.Object%> accumulator_0 = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n /*@NonNull\052/ <%java.util.Iterator%><<%java.lang.Object%>> ITERATOR__1_0 = collect.iterator();\n /*@Thrown\052/ <%java.lang.Boolean%> status;\n while (true) {\n if (!ITERATOR__1_0.hasNext()) {\n if (accumulator_0 == null) {\n status = null;\n }\n else if (accumulator_0 == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE) {\n status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE;\n }\n else {\n throw (<%org.eclipse.ocl.pivot.values.InvalidValueException%>)accumulator_0;\n }\n break;\n }\n /*@NonInvalid\052/ <%org.occiware.clouddesigner.occi.Mixin%> _1_0 = (<%org.occiware.clouddesigner.occi.Mixin%>)ITERATOR__1_0.next();\n /**\n * \n * let extension : OclElement[?] = oclContainer()\n * in extension = self or import->includes(extension)\n \052/\n /*@Caught\052/ /*@Nullable\052/ <%java.lang.Object%> CAUGHT_or;\n try {\n final /*@NonInvalid\052/ <%java.lang.Object%> extension = <%org.eclipse.ocl.pivot.library.classifier.ClassifierOclContainerOperation%>.INSTANCE.evaluate(executor, _1_0);\n final /*@NonInvalid\052/ boolean eq = this.equals(extension);\n /*@Caught\052/ /*@NonNull\052/ <%java.lang.Object%> CAUGHT_includes;\n try {\n final /*@Thrown\052/ <%java.util.List%><<%org.occiware.clouddesigner.occi.Extension%>> symbol_0 = this.getImport();\n final /*@Thrown\052/ <%org.eclipse.ocl.pivot.values.OrderedSetValue%> BOXED_symbol_0 = idResolver.createOrderedSetOfAll(<%org.occiware.clouddesigner.occi.OCCITables%>.ORD_CLSSid_Extension, symbol_0);\n final /*@Thrown\052/ boolean includes = <%org.eclipse.ocl.pivot.library.collection.CollectionIncludesOperation%>.INSTANCE.evaluate(BOXED_symbol_0, extension).booleanValue();\n CAUGHT_includes = includes;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_includes = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n final /*@Thrown\052/ <%java.lang.Boolean%> or = <%org.eclipse.ocl.pivot.library.logical.BooleanOrOperation%>.INSTANCE.evaluate(eq, CAUGHT_includes);\n CAUGHT_or = or;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_or = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n //\n if (CAUGHT_or == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.FALSE_VALUE) {\t\t\t\t\t// Normal unsuccessful body evaluation result\n status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.FALSE_VALUE;\n break;\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Stop immediately \n }\n else if (CAUGHT_or == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE) {\t\t\t\t// Normal successful body evaluation result\n ;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Carry on\n }\n else if (CAUGHT_or == null) {\t\t\t\t\t\t\t\t// Abnormal null body evaluation result\n if (accumulator_0 == <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.TRUE_VALUE) {\n accumulator_0 = null;\t\t\t\t\t\t\t\t\t\t// Cache a null failure\n }\n }\n else if (CAUGHT_or instanceof <%org.eclipse.ocl.pivot.values.InvalidValueException%>) {\t\t// Abnormal exception evaluation result\n accumulator_0 = CAUGHT_or;\t\t\t\t\t\t\t\t\t// Cache an exception failure\n }\n else {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Impossible badly typed result\n accumulator_0 = new <%org.eclipse.ocl.pivot.values.InvalidValueException%>(<%org.eclipse.ocl.pivot.messages.PivotMessages%>.NonBooleanBody, \"forAll\");\n }\n }\n CAUGHT_status = status;\n }\n catch (<%java.lang.Exception%> e) {\n CAUGHT_status = <%org.eclipse.ocl.pivot.utilities.ValueUtil%>.createInvalidValue(e);\n }\n final /*@NonInvalid\052/ boolean logDiagnostic = <%org.eclipse.ocl.pivot.library.string.CGStringLogDiagnosticOperation%>.INSTANCE.evaluate(executor, <%org.eclipse.ocl.pivot.ids.TypeId%>.BOOLEAN, <%org.occiware.clouddesigner.occi.OCCITables%>.STR_Extension_c_c_MixinDependsLocalOrImported, this, null, diagnostics, context, null, severity_0, CAUGHT_status, <%org.occiware.clouddesigner.occi.OCCITables%>.INT_0).booleanValue();\n symbol_1 = logDiagnostic;\n}\nreturn Boolean.TRUE == symbol_1;'"
* @generated
*/
boolean MixinDependsLocalOrImported(DiagnosticChain diagnostics, Map<Object, Object> context);
} // Extension