blob: 401f96882d372e430d55061b72d0b1e880136f7a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:ocl.ecore="http://www.eclipse.org/ocl/1.1.0/Ecore">
<ecore:EPackage name="oclstdlib" nsURI="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore"
nsPrefix="oclstdlib">
<eClassifiers xsi:type="ocl.ecore:AnyType" name="OclAny"/>
<eClassifiers xsi:type="ecore:EClass" name="OclAny_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/OclAny"/>
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="oclAsType" eType="#/0/T">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsKindOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsTypeOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsUndefined" eType="#/0/Boolean"/>
<eOperations name="oclIsInvalid" eType="#/0/Boolean"/>
<eOperations name="oclIsNew" eType="#/0/Boolean"/>
<eOperations name="oclIsInState" eType="#/0/Boolean">
<eParameters name="statespec" eType="#/0/State"/>
</eOperations>
<eOperations name="&lt;" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name=">" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="&lt;=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name=">=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="toString" eType="#/0/String"/>
<eOperations name="oclAsSet" eType="#/0/Set(T)"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:VoidType"/>
<eClassifiers xsi:type="ecore:EClass" name="OclVoid_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/OclVoid"/>
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="oclAsType" eType="#/0/T">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsKindOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsTypeOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsUndefined" eType="#/0/Boolean"/>
<eOperations name="oclIsInvalid" eType="#/0/Boolean"/>
<eOperations name="oclIsNew" eType="#/0/Boolean"/>
<eOperations name="oclIsInState" eType="#/0/Boolean">
<eParameters name="statespec" eType="#/0/State"/>
</eOperations>
<eOperations name="&lt;" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name=">" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="&lt;=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name=">=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="toString" eType="#/0/String"/>
<eOperations name="oclAsSet" eType="#/0/Set(T)"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:InvalidType"/>
<eClassifiers xsi:type="ecore:EClass" name="OclInvalid_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/OclInvalid"/>
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="oclAsType" eType="#/0/T">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsKindOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsTypeOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsUndefined" eType="#/0/Boolean"/>
<eOperations name="oclIsInvalid" eType="#/0/Boolean"/>
<eOperations name="oclIsNew" eType="#/0/Boolean"/>
<eOperations name="oclIsInState" eType="#/0/Boolean">
<eParameters name="statespec" eType="#/0/State"/>
</eOperations>
<eOperations name="&lt;" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name=">" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="&lt;=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name=">=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="toString" eType="#/0/String"/>
<eOperations name="oclAsSet" eType="#/0/Set(T)"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:PrimitiveType" name="Boolean" instanceClassName="java.lang.Boolean"/>
<eClassifiers xsi:type="ecore:EClass" name="Boolean_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/Boolean"/>
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="oclAsType" eType="#/0/T">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsKindOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsTypeOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsUndefined" eType="#/0/Boolean"/>
<eOperations name="oclIsInvalid" eType="#/0/Boolean"/>
<eOperations name="oclIsNew" eType="#/0/Boolean"/>
<eOperations name="oclIsInState" eType="#/0/Boolean">
<eParameters name="statespec" eType="#/0/State"/>
</eOperations>
<eOperations name="not" eType="#/0/Boolean"/>
<eOperations name="and" eType="#/0/Boolean">
<eParameters name="b" eType="#/0/Boolean"/>
</eOperations>
<eOperations name="or" eType="#/0/Boolean">
<eParameters name="b" eType="#/0/Boolean"/>
</eOperations>
<eOperations name="implies" eType="#/0/Boolean">
<eParameters name="b" eType="#/0/Boolean"/>
</eOperations>
<eOperations name="toString" eType="#/0/String"/>
<eOperations name="xor" eType="#/0/Boolean">
<eParameters name="b" eType="#/0/Boolean"/>
</eOperations>
<eOperations name="oclAsSet" eType="#/0/Set(T)"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:PrimitiveType" name="Integer" instanceClassName="java.lang.Integer"/>
<eClassifiers xsi:type="ecore:EClass" name="Integer_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/Integer"/>
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="oclAsType" eType="#/0/T">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsKindOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsTypeOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsUndefined" eType="#/0/Boolean"/>
<eOperations name="oclIsInvalid" eType="#/0/Boolean"/>
<eOperations name="oclIsNew" eType="#/0/Boolean"/>
<eOperations name="oclIsInState" eType="#/0/Boolean">
<eParameters name="statespec" eType="#/0/State"/>
</eOperations>
<eOperations name="&lt;" eType="#/0/Boolean">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name=">" eType="#/0/Boolean">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="&lt;=" eType="#/0/Boolean">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name=">=" eType="#/0/Boolean">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="+" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="-" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="-" eType="#/0/Real"/>
<eOperations name="*" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="/" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="min" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="max" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="abs" eType="#/0/Real"/>
<eOperations name="floor" eType="#/0/Integer"/>
<eOperations name="round" eType="#/0/Integer"/>
<eOperations name="&lt;" eType="#/0/Boolean">
<eParameters name="i" eType="#/0/Integer"/>
</eOperations>
<eOperations name=">" eType="#/0/Boolean">
<eParameters name="i" eType="#/0/Integer"/>
</eOperations>
<eOperations name="&lt;=" eType="#/0/Boolean">
<eParameters name="i" eType="#/0/Integer"/>
</eOperations>
<eOperations name=">=" eType="#/0/Boolean">
<eParameters name="i" eType="#/0/Integer"/>
</eOperations>
<eOperations name="div" eType="#/0/Integer">
<eParameters name="i" eType="#/0/Integer"/>
</eOperations>
<eOperations name="mod" eType="#/0/Integer">
<eParameters name="i" eType="#/0/Integer"/>
</eOperations>
<eOperations name="toString" eType="#/0/String"/>
<eOperations name="oclAsSet" eType="#/0/Set(T)"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:PrimitiveType" name="UnlimitedNatural" instanceClassName="java.lang.Integer"/>
<eClassifiers xsi:type="ecore:EClass" name="UnlimitedNatural_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/UnlimitedNatural"/>
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="oclAsType" eType="#/0/T">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsKindOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsTypeOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsUndefined" eType="#/0/Boolean"/>
<eOperations name="oclIsInvalid" eType="#/0/Boolean"/>
<eOperations name="oclIsNew" eType="#/0/Boolean"/>
<eOperations name="oclIsInState" eType="#/0/Boolean">
<eParameters name="statespec" eType="#/0/State"/>
</eOperations>
<eOperations name="&lt;" eType="#/0/Boolean">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name=">" eType="#/0/Boolean">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="&lt;=" eType="#/0/Boolean">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name=">=" eType="#/0/Boolean">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="+" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="-" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="-" eType="#/0/Real"/>
<eOperations name="*" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="/" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="min" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="max" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="abs" eType="#/0/Real"/>
<eOperations name="floor" eType="#/0/Integer"/>
<eOperations name="round" eType="#/0/Integer"/>
<eOperations name="&lt;" eType="#/0/Boolean">
<eParameters name="n" eType="#/0/UnlimitedNatural"/>
</eOperations>
<eOperations name=">" eType="#/0/Boolean">
<eParameters name="n" eType="#/0/UnlimitedNatural"/>
</eOperations>
<eOperations name="&lt;=" eType="#/0/Boolean">
<eParameters name="n" eType="#/0/UnlimitedNatural"/>
</eOperations>
<eOperations name=">=" eType="#/0/Boolean">
<eParameters name="n" eType="#/0/UnlimitedNatural"/>
</eOperations>
<eOperations name="div" eType="#/0/Integer">
<eParameters name="n" eType="#/0/UnlimitedNatural"/>
</eOperations>
<eOperations name="mod" eType="#/0/Integer">
<eParameters name="n" eType="#/0/UnlimitedNatural"/>
</eOperations>
<eOperations name="toString" eType="#/0/String"/>
<eOperations name="oclAsSet" eType="#/0/Set(T)"/>
<eOperations name="toInteger" eType="#/0/Integer"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:PrimitiveType" name="Real" instanceClassName="java.lang.Double"/>
<eClassifiers xsi:type="ecore:EClass" name="Real_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/Real"/>
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="oclAsType" eType="#/0/T">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsKindOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsTypeOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsUndefined" eType="#/0/Boolean"/>
<eOperations name="oclIsInvalid" eType="#/0/Boolean"/>
<eOperations name="oclIsNew" eType="#/0/Boolean"/>
<eOperations name="oclIsInState" eType="#/0/Boolean">
<eParameters name="statespec" eType="#/0/State"/>
</eOperations>
<eOperations name="&lt;" eType="#/0/Boolean">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name=">" eType="#/0/Boolean">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="&lt;=" eType="#/0/Boolean">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name=">=" eType="#/0/Boolean">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="+" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="-" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="-" eType="#/0/Real"/>
<eOperations name="*" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="/" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="min" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="max" eType="#/0/Real">
<eParameters name="r" eType="#/0/Real"/>
</eOperations>
<eOperations name="abs" eType="#/0/Real"/>
<eOperations name="floor" eType="#/0/Integer"/>
<eOperations name="round" eType="#/0/Integer"/>
<eOperations name="toString" eType="#/0/String"/>
<eOperations name="oclAsSet" eType="#/0/Set(T)"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:PrimitiveType" name="String" instanceClassName="java.lang.String"/>
<eClassifiers xsi:type="ecore:EClass" name="String_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/String"/>
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="oclAsType" eType="#/0/T">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsKindOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsTypeOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsUndefined" eType="#/0/Boolean"/>
<eOperations name="oclIsInvalid" eType="#/0/Boolean"/>
<eOperations name="oclIsNew" eType="#/0/Boolean"/>
<eOperations name="oclIsInState" eType="#/0/Boolean">
<eParameters name="statespec" eType="#/0/State"/>
</eOperations>
<eOperations name="&lt;" eType="#/0/Boolean">
<eParameters name="s" eType="#/0/String"/>
</eOperations>
<eOperations name=">" eType="#/0/Boolean">
<eParameters name="s" eType="#/0/String"/>
</eOperations>
<eOperations name="&lt;=" eType="#/0/Boolean">
<eParameters name="s" eType="#/0/String"/>
</eOperations>
<eOperations name=">=" eType="#/0/Boolean">
<eParameters name="s" eType="#/0/String"/>
</eOperations>
<eOperations name="+" eType="#/0/String">
<eParameters name="s" eType="#/0/String"/>
</eOperations>
<eOperations name="at" eType="#/0/String">
<eParameters name="index" eType="#/0/Integer"/>
</eOperations>
<eOperations name="characters" eType="#/0/Sequence(String)"/>
<eOperations name="concat" eType="#/0/String">
<eParameters name="s" eType="#/0/String"/>
</eOperations>
<eOperations name="endsWith" eType="#/0/Boolean">
<eParameters name="s" eType="#/0/String"/>
</eOperations>
<eOperations name="equalsIgnoreCase" eType="#/0/Boolean">
<eParameters name="s" eType="#/0/String"/>
</eOperations>
<eOperations name="indexOf" eType="#/0/Integer">
<eParameters name="s" eType="#/0/String"/>
</eOperations>
<eOperations name="lastIndexOf" eType="#/0/Integer">
<eParameters name="s" eType="#/0/String"/>
</eOperations>
<eOperations name="matches" eType="#/0/Boolean">
<eParameters name="s" eType="#/0/String"/>
</eOperations>
<eOperations name="replaceAll" eType="#/0/String">
<eParameters name="regex" eType="#/0/String"/>
<eParameters name="replacement" eType="#/0/String"/>
</eOperations>
<eOperations name="replaceFirst" eType="#/0/String">
<eParameters name="regex" eType="#/0/String"/>
<eParameters name="replacement" eType="#/0/String"/>
</eOperations>
<eOperations name="size" eType="#/0/Integer"/>
<eOperations name="startsWith" eType="#/0/Boolean">
<eParameters name="s" eType="#/0/String"/>
</eOperations>
<eOperations name="substituteAll" eType="#/0/String">
<eParameters name="oldSubstring" eType="#/0/String"/>
<eParameters name="newSubstring" eType="#/0/String"/>
</eOperations>
<eOperations name="substituteFirst" eType="#/0/String">
<eParameters name="oldSubstring" eType="#/0/String"/>
<eParameters name="newSubstring" eType="#/0/String"/>
</eOperations>
<eOperations name="substring" eType="#/0/String">
<eParameters name="lower" eType="#/0/Integer"/>
<eParameters name="upper" eType="#/0/Integer"/>
</eOperations>
<eOperations name="toBoolean" eType="#/0/Boolean"/>
<eOperations name="toInteger" eType="#/0/Integer"/>
<eOperations name="toLower" eType="#/0/String"/>
<eOperations name="toLowerCase" eType="#/0/String"/>
<eOperations name="toReal" eType="#/0/Real"/>
<eOperations name="toString" eType="#/0/String"/>
<eOperations name="toUpper" eType="#/0/String"/>
<eOperations name="toUpperCase" eType="#/0/String"/>
<eOperations name="tokenize" eType="#/0/Sequence(String)"/>
<eOperations name="tokenize" eType="#/0/Sequence(String)">
<eParameters name="delimiters" eType="#/0/String"/>
</eOperations>
<eOperations name="tokenize" eType="#/0/Sequence(String)">
<eParameters name="delimiters" eType="#/0/String"/>
<eParameters name="returnDelimiters" eType="#/0/Boolean"/>
</eOperations>
<eOperations name="trim" eType="#/0/String"/>
<eOperations name="oclAsSet" eType="#/0/Set(T)"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:TypeType" name="OclType"/>
<eClassifiers xsi:type="ecore:EClass" name="OclType_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/OclType"/>
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="oclAsType" eType="#/0/T">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsKindOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsTypeOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsUndefined" eType="#/0/Boolean"/>
<eOperations name="oclIsInvalid" eType="#/0/Boolean"/>
<eOperations name="oclIsNew" eType="#/0/Boolean"/>
<eOperations name="oclIsInState" eType="#/0/Boolean">
<eParameters name="statespec" eType="#/0/State"/>
</eOperations>
<eOperations name="allInstances" eType="#/0/Set(T)"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:MessageType">
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/OclAny"/>
</eOperations>
<eOperations name="oclAsType" eType="#/0/T">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsKindOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsTypeOf" eType="#/0/Boolean">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclIsUndefined" eType="#/0/Boolean"/>
<eOperations name="oclIsInvalid" eType="#/0/Boolean"/>
<eOperations name="oclIsNew" eType="#/0/Boolean"/>
<eOperations name="oclIsInState" eType="#/0/Boolean">
<eParameters name="statespec" eType="#/0/State"/>
</eOperations>
<eOperations name="hasReturned" eType="#/0/Boolean"/>
<eOperations name="result" eType="#/0/T"/>
<eOperations name="isSignalSent" eType="#/0/Boolean"/>
<eOperations name="isOperationCall" eType="#/0/Boolean"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:ElementType" name="OclElement"/>
<eClassifiers xsi:type="ocl.ecore:ElementType" name="State"/>
<eClassifiers xsi:type="ocl.ecore:ElementType" name="OclExpression"/>
<eClassifiers xsi:type="ocl.ecore:CollectionType" name="Collection(T)" instanceClassName="java.util.Collection"
elementType="#/0/T"/>
<eClassifiers xsi:type="ecore:EClass" name="Collection(T)_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/Collection(T)"/>
<eOperations name="count" eType="#/0/Integer">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="excludes" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="excludesAll" eType="#/0/Boolean">
<eParameters name="c2" eType="#/0/Collection(T)"/>
</eOperations>
<eOperations name="includes" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="includesAll" eType="#/0/Boolean">
<eParameters name="c2" eType="#/0/Collection(T)"/>
</eOperations>
<eOperations name="isEmpty" eType="#/0/Boolean"/>
<eOperations name="notEmpty" eType="#/0/Boolean"/>
<eOperations name="product" eType="#/2/Set(Tuple(first%20%3A%20T%2C%20second%20%3A%20T2))">
<eParameters name="c2" eType="#/2/Collection(T2)"/>
</eOperations>
<eOperations name="sum" eType="#/0/Real"/>
<eOperations name="size" eType="#/0/Integer"/>
<eOperations name="exists" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="forAll" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="isUnique" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="one" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="any" eType="#/0/T">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="collect" eType="#/2/Collection(T2)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="closure" eType="#/2/Set(T2)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="c" eType="#/0/Collection(T)"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="c" eType="#/0/Collection(T)"/>
</eOperations>
<eOperations name="max" eType="#/0/Real"/>
<eOperations name="min" eType="#/0/Real"/>
<eOperations name="selectByKind" eType="#/2/Collection(T2)">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="selectByType" eType="#/2/Collection(T2)">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclAsSet" eType="#/0/Set(T)"/>
<eOperations name="oclIsUndefined" eType="#/0/Boolean"/>
<eOperations name="oclIsInvalid" eType="#/0/Boolean"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:SetType" name="Set(T)" instanceClassName="java.util.Set"
elementType="#/0/T"/>
<eClassifiers xsi:type="ecore:EClass" name="Set(T)_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/Set(T)"/>
<eOperations name="count" eType="#/0/Integer">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="excludes" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="excludesAll" eType="#/0/Boolean">
<eParameters name="c2" eType="#/0/Collection(T)"/>
</eOperations>
<eOperations name="includes" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="includesAll" eType="#/0/Boolean">
<eParameters name="c2" eType="#/0/Collection(T)"/>
</eOperations>
<eOperations name="isEmpty" eType="#/0/Boolean"/>
<eOperations name="notEmpty" eType="#/0/Boolean"/>
<eOperations name="product" eType="#/2/Set(Tuple(first%20%3A%20T%2C%20second%20%3A%20T2))">
<eParameters name="c2" eType="#/2/Collection(T2)"/>
</eOperations>
<eOperations name="sum" eType="#/0/Real"/>
<eOperations name="size" eType="#/0/Integer"/>
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="set" eType="#/0/Set(T)"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="set" eType="#/0/Set(T)"/>
</eOperations>
<eOperations name="union" eType="#/0/Bag(T)">
<eParameters name="bag" eType="#/0/Bag(T)"/>
</eOperations>
<eOperations name="union" eType="#/0/Set(T)">
<eParameters name="set" eType="#/0/Set(T)"/>
</eOperations>
<eOperations name="-" eType="#/0/Set(T)">
<eParameters name="set" eType="#/0/Set(T)"/>
</eOperations>
<eOperations name="intersection" eType="#/0/Set(T)">
<eParameters name="bag" eType="#/0/Bag(T)"/>
</eOperations>
<eOperations name="intersection" eType="#/0/Set(T)">
<eParameters name="set" eType="#/0/Set(T)"/>
</eOperations>
<eOperations name="including" eType="#/0/Set(T)">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="excluding" eType="#/0/Set(T)">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="symmetricDifference" eType="#/0/Set(T)">
<eParameters name="s" eType="#/0/Set(T)"/>
</eOperations>
<eOperations name="flatten" eType="#/2/Set(T2)"/>
<eOperations name="asBag" eType="#/0/Bag(T)"/>
<eOperations name="asSet" eType="#/0/Set(T)"/>
<eOperations name="asSequence" eType="#/0/Sequence(T)"/>
<eOperations name="asOrderedSet" eType="#/0/OrderedSet(T)"/>
<eOperations name="exists" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="forAll" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="isUnique" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="one" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="any" eType="#/0/T">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="collect" eType="#/2/Collection(T2)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="closure" eType="#/2/Set(T2)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="select" eType="#/0/Set(T)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="reject" eType="#/0/Set(T)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="sortedBy" eType="#/0/OrderedSet(T)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="collectNested" eType="#/2/Bag(T2)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="max" eType="#/0/Real"/>
<eOperations name="min" eType="#/0/Real"/>
<eOperations name="selectByKind" eType="#/2/Set(T2)">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="selectByType" eType="#/2/Set(T2)">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclAsSet" eType="#/0/Set(T)"/>
<eOperations name="oclIsUndefined" eType="#/0/Boolean"/>
<eOperations name="oclIsInvalid" eType="#/0/Boolean"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(T)" instanceClassName="java.util.LinkedHashSet"
elementType="#/0/T"/>
<eClassifiers xsi:type="ecore:EClass" name="OrderedSet(T)_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/OrderedSet(T)"/>
<eOperations name="count" eType="#/0/Integer">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="excludes" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="excludesAll" eType="#/0/Boolean">
<eParameters name="c2" eType="#/0/Collection(T)"/>
</eOperations>
<eOperations name="includes" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="includesAll" eType="#/0/Boolean">
<eParameters name="c2" eType="#/0/Collection(T)"/>
</eOperations>
<eOperations name="isEmpty" eType="#/0/Boolean"/>
<eOperations name="notEmpty" eType="#/0/Boolean"/>
<eOperations name="product" eType="#/2/Set(Tuple(first%20%3A%20T%2C%20second%20%3A%20T2))">
<eParameters name="c2" eType="#/2/Collection(T2)"/>
</eOperations>
<eOperations name="sum" eType="#/0/Real"/>
<eOperations name="size" eType="#/0/Integer"/>
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="set" eType="#/0/Set(T)"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="set" eType="#/0/Set(T)"/>
</eOperations>
<eOperations name="union" eType="#/0/Bag(T)">
<eParameters name="bag" eType="#/0/Bag(T)"/>
</eOperations>
<eOperations name="union" eType="#/0/Set(T)">
<eParameters name="set" eType="#/0/Set(T)"/>
</eOperations>
<eOperations name="-" eType="#/0/Set(T)">
<eParameters name="set" eType="#/0/Set(T)"/>
</eOperations>
<eOperations name="intersection" eType="#/0/Set(T)">
<eParameters name="bag" eType="#/0/Bag(T)"/>
</eOperations>
<eOperations name="intersection" eType="#/0/Set(T)">
<eParameters name="set" eType="#/0/Set(T)"/>
</eOperations>
<eOperations name="including" eType="#/0/Set(T)">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="excluding" eType="#/0/Set(T)">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="symmetricDifference" eType="#/0/Set(T)">
<eParameters name="s" eType="#/0/Set(T)"/>
</eOperations>
<eOperations name="flatten" eType="#/2/Set(T2)"/>
<eOperations name="asBag" eType="#/0/Bag(T)"/>
<eOperations name="asSet" eType="#/0/Set(T)"/>
<eOperations name="asSequence" eType="#/0/Sequence(T)"/>
<eOperations name="asOrderedSet" eType="#/0/OrderedSet(T)"/>
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="s" eType="#/0/OrderedSet(T)"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="s" eType="#/0/OrderedSet(T)"/>
</eOperations>
<eOperations name="append" eType="#/0/OrderedSet(T)">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="at" eType="#/0/T">
<eParameters name="index" eType="#/0/Integer"/>
</eOperations>
<eOperations name="indexOf" eType="#/0/Integer">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="insertAt" eType="#/0/OrderedSet(T)">
<eParameters name="index" eType="#/0/Integer"/>
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="prepend" eType="#/0/OrderedSet(T)">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="subOrderedSet" eType="#/0/OrderedSet(T)">
<eParameters name="lower" eType="#/0/Integer"/>
<eParameters name="upper" eType="#/0/Integer"/>
</eOperations>
<eOperations name="first" eType="#/0/T"/>
<eOperations name="last" eType="#/0/T"/>
<eOperations name="exists" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="forAll" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="isUnique" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="one" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="any" eType="#/0/T">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="collect" eType="#/2/Collection(T2)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="closure" eType="#/2/Set(T2)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="select" eType="#/0/Set(T)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="reject" eType="#/0/Set(T)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="sortedBy" eType="#/0/OrderedSet(T)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="collectNested" eType="#/2/Bag(T2)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="max" eType="#/0/Real"/>
<eOperations name="min" eType="#/0/Real"/>
<eOperations name="selectByKind" eType="#/2/OrderedSet(T2)">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="selectByType" eType="#/2/OrderedSet(T2)">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclAsSet" eType="#/0/Set(T)"/>
<eOperations name="oclIsUndefined" eType="#/0/Boolean"/>
<eOperations name="oclIsInvalid" eType="#/0/Boolean"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:BagType" name="Bag(T)" instanceClassName="org.eclipse.ocl.util.Bag"
elementType="#/0/T"/>
<eClassifiers xsi:type="ecore:EClass" name="Bag(T)_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/Bag(T)"/>
<eOperations name="count" eType="#/0/Integer">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="excludes" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="excludesAll" eType="#/0/Boolean">
<eParameters name="c2" eType="#/0/Collection(T)"/>
</eOperations>
<eOperations name="includes" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="includesAll" eType="#/0/Boolean">
<eParameters name="c2" eType="#/0/Collection(T)"/>
</eOperations>
<eOperations name="isEmpty" eType="#/0/Boolean"/>
<eOperations name="notEmpty" eType="#/0/Boolean"/>
<eOperations name="product" eType="#/2/Set(Tuple(first%20%3A%20T%2C%20second%20%3A%20T2))">
<eParameters name="c2" eType="#/2/Collection(T2)"/>
</eOperations>
<eOperations name="sum" eType="#/0/Real"/>
<eOperations name="size" eType="#/0/Integer"/>
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="bag" eType="#/0/Bag(T)"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="bag" eType="#/0/Bag(T)"/>
</eOperations>
<eOperations name="union" eType="#/0/Bag(T)">
<eParameters name="bag" eType="#/0/Bag(T)"/>
</eOperations>
<eOperations name="union" eType="#/0/Bag(T)">
<eParameters name="set" eType="#/0/Set(T)"/>
</eOperations>
<eOperations name="intersection" eType="#/0/Bag(T)">
<eParameters name="bag" eType="#/0/Bag(T)"/>
</eOperations>
<eOperations name="intersection" eType="#/0/Bag(T)">
<eParameters name="set" eType="#/0/Set(T)"/>
</eOperations>
<eOperations name="including" eType="#/0/Bag(T)">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="excluding" eType="#/0/Bag(T)">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="flatten" eType="#/2/Bag(T2)"/>
<eOperations name="asBag" eType="#/0/Bag(T)"/>
<eOperations name="asSet" eType="#/0/Set(T)"/>
<eOperations name="asSequence" eType="#/0/Sequence(T)"/>
<eOperations name="asOrderedSet" eType="#/0/OrderedSet(T)"/>
<eOperations name="exists" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="forAll" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="isUnique" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="one" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="any" eType="#/0/T">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="collect" eType="#/2/Collection(T2)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="closure" eType="#/2/Set(T2)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="select" eType="#/0/Bag(T)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="reject" eType="#/0/Bag(T)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="sortedBy" eType="#/0/Sequence(T)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="collectNested" eType="#/2/Bag(T2)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="max" eType="#/0/Real"/>
<eOperations name="min" eType="#/0/Real"/>
<eOperations name="selectByKind" eType="#/2/Bag(T2)">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="selectByType" eType="#/2/Bag(T2)">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclAsSet" eType="#/0/Set(T)"/>
<eOperations name="oclIsUndefined" eType="#/0/Boolean"/>
<eOperations name="oclIsInvalid" eType="#/0/Boolean"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(T)" instanceClassName="java.util.List"
elementType="#/0/T"/>
<eClassifiers xsi:type="ecore:EClass" name="Sequence(T)_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/Sequence(T)"/>
<eOperations name="count" eType="#/0/Integer">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="excludes" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="excludesAll" eType="#/0/Boolean">
<eParameters name="c2" eType="#/0/Collection(T)"/>
</eOperations>
<eOperations name="includes" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="includesAll" eType="#/0/Boolean">
<eParameters name="c2" eType="#/0/Collection(T)"/>
</eOperations>
<eOperations name="isEmpty" eType="#/0/Boolean"/>
<eOperations name="notEmpty" eType="#/0/Boolean"/>
<eOperations name="product" eType="#/2/Set(Tuple(first%20%3A%20T%2C%20second%20%3A%20T2))">
<eParameters name="c2" eType="#/2/Collection(T2)"/>
</eOperations>
<eOperations name="sum" eType="#/0/Real"/>
<eOperations name="size" eType="#/0/Integer"/>
<eOperations name="=" eType="#/0/Boolean">
<eParameters name="s" eType="#/0/Sequence(T)"/>
</eOperations>
<eOperations name="&lt;>" eType="#/0/Boolean">
<eParameters name="s" eType="#/0/Sequence(T)"/>
</eOperations>
<eOperations name="union" eType="#/0/Sequence(T)">
<eParameters name="s" eType="#/0/Sequence(T)"/>
</eOperations>
<eOperations name="append" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="prepend" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="insertAt" eType="#/0/Boolean">
<eParameters name="index" eType="#/0/Integer"/>
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="subSequence" eType="#/0/Boolean">
<eParameters name="lower" eType="#/0/Integer"/>
<eParameters name="upper" eType="#/0/Integer"/>
</eOperations>
<eOperations name="at" eType="#/0/T">
<eParameters name="index" eType="#/0/Integer"/>
</eOperations>
<eOperations name="indexOf" eType="#/0/Integer">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="including" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="excluding" eType="#/0/Boolean">
<eParameters name="object" eType="#/0/T"/>
</eOperations>
<eOperations name="first" eType="#/0/T"/>
<eOperations name="last" eType="#/0/T"/>
<eOperations name="flatten" eType="#/2/Sequence(T2)"/>
<eOperations name="asBag" eType="#/0/Bag(T)"/>
<eOperations name="asSet" eType="#/0/Set(T)"/>
<eOperations name="asSequence" eType="#/0/Boolean"/>
<eOperations name="asOrderedSet" eType="#/0/OrderedSet(T)"/>
<eOperations name="exists" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="forAll" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="isUnique" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="one" eType="#/0/Boolean">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="any" eType="#/0/T">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="collect" eType="#/2/Collection(T2)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="closure" eType="#/2/Set(T2)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="select" eType="#/0/Sequence(T)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="reject" eType="#/0/Sequence(T)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="sortedBy" eType="#/0/Sequence(T)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="collectNested" eType="#/2/Sequence(T2)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<details key="keywords" value="iterator"/>
</eAnnotations>
<eParameters name="expr" eType="#/0/OclExpression"/>
</eOperations>
<eOperations name="max" eType="#/0/Real"/>
<eOperations name="min" eType="#/0/Real"/>
<eOperations name="selectByKind" eType="#/2/Sequence(T2)">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="selectByType" eType="#/2/Sequence(T2)">
<eParameters name="typespec" eType="#/0/OclType"/>
</eOperations>
<eOperations name="oclAsSet" eType="#/0/Set(T)"/>
<eOperations name="oclIsUndefined" eType="#/0/Boolean"/>
<eOperations name="oclIsInvalid" eType="#/0/Boolean"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:AnyType" name="T"/>
<eClassifiers xsi:type="ecore:EClass" name="T_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/T"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:AnyType" name="T2"/>
<eClassifiers xsi:type="ecore:EClass" name="T2_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="#/0/T2"/>
</eClassifiers>
<eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(String)" instanceClassName="java.util.List"
elementType="#/0/String"/>
</ecore:EPackage>
<ecore:EPackage name="tuples">
<eClassifiers xsi:type="ocl.ecore:TupleType" name="Tuple(first : T, second : T2)"
instanceClassName="org.eclipse.ocl.util.Tuple">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="first" eType="#/0/T"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="second" eType="#/0/T2"/>
</eClassifiers>
</ecore:EPackage>
<ecore:EPackage name="collections">
<eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Tuple(first : T, second : T2))"
instanceClassName="java.util.Set" elementType="#/1/Tuple(first%20%3A%20T%2C%20second%20%3A%20T2)"/>
<eClassifiers xsi:type="ocl.ecore:CollectionType" name="Collection(T2)" instanceClassName="java.util.Collection"
elementType="#/0/T2"/>
<eClassifiers xsi:type="ocl.ecore:SetType" name="Set(T2)" instanceClassName="java.util.Set"
elementType="#/0/T2"/>
<eClassifiers xsi:type="ocl.ecore:BagType" name="Bag(T2)" instanceClassName="org.eclipse.ocl.util.Bag"
elementType="#/0/T2"/>
<eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(T2)" instanceClassName="java.util.List"
elementType="#/0/T2"/>
<eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(T2)" instanceClassName="java.util.List"
elementType="#/0/T2"/>
</ecore:EPackage>
</xmi:XMI>