Difference between revisions of "Artefact:Template/org/ooem/templates/wiml-1.0-xmi-2.0"

From OOModels
Jump to navigationJump to search
(Created page with "{{Metabox | Meta_Type = Type:org/oogenerator/Template/2.0 | Meta_Domain = Domain:it/development/formatting | Meta_Category = Type:org/oomodels/wiki/Template | Meta_Download...")
 
(first draft)
 
Line 47: Line 47:
«}»…
«}»…
«¶(indent)»…
«¶(indent)»…
<Class>
<eClassifiers…
  <Name>◂conversion_arguments.get("page").replaceFirst("Artefact:Model/","").replace("/",".")▸</Name>
«if(complete_xml) {»…
            ⋮ 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"
            …
«}»…
            ⋮ xsi:type="ecore:EClass"
              name="◂conversion_arguments.get("page").replaceFirst("Artefact:Model/","").replace("/",".")▸"
                  ⋮«∀(‖"Ⓟ/Bases"){»…
              eSuperTypes="#//◂((String)(⊙)).replace("/",".")▸"
                  ⋮«}/∀»…
              >
   ⋮«∀(‖"Ⓟ/ModelTemplateArguments"){»…
   ⋮«∀(‖"Ⓟ/ModelTemplateArguments"){»…
   <TemplateParameter Name="◂‖"Ⓟ/Name"▸" «∃(‖"Ⓟ/DefaultValue"){»DefaultValue="◂((String)(⊙)).replace("/",".")▸" «}/∃»GenericLevel="MODEL_TEMPLATE"/>
   <!-- <TemplateParameter Name="◂‖"Ⓟ/Name"▸" «∃(‖"Ⓟ/DefaultValue"){»DefaultValue="◂((String)(⊙)).replace("/",".")▸" «}/∃»GenericLevel="MODEL_TEMPLATE"/> -->
   ⋮«}/∀»…
   ⋮«}/∀»…
   ⋮«∀(‖"Ⓟ/CodeGeneratorTemplateArguments"){»…
   ⋮«∀(‖"Ⓟ/CodeGeneratorTemplateArguments"){»…
   <TemplateParameter Name="◂‖"Ⓟ/Name"▸" «∃(‖"Ⓟ/DefaultValue"){»DefaultValue="◂((String)(⊙)).replace("/",".")▸" «}/∃»GenericLevel="CODE_GENERATOR_TEMPLATE"/>
   <!-- <TemplateParameter Name="◂‖"Ⓟ/Name"▸" «∃(‖"Ⓟ/DefaultValue"){»DefaultValue="◂((String)(⊙)).replace("/",".")▸" «}/∃»GenericLevel="CODE_GENERATOR_TEMPLATE"/> -->
   ⋮«}/∀»…
   ⋮«}/∀»…
   ⋮«∀(‖"Ⓟ/ImplementationLanguageTemplateArguments"){»…
   ⋮«∀(‖"Ⓟ/ImplementationLanguageTemplateArguments"){»…
   <TemplateParameter Name="◂‖"Ⓟ/Name"▸" «∃(‖"Ⓟ/DefaultValue"){»DefaultValue="◂((String)(⊙)).replace("/",".")▸" «}/∃»GenericLevel="IMPLEMENTATION_LANGUAGE_TEMPLATE"/>
   <!-- <TemplateParameter Name="◂‖"Ⓟ/Name"▸" «∃(‖"Ⓟ/DefaultValue"){»DefaultValue="◂((String)(⊙)).replace("/",".")▸" «}/∃»GenericLevel="IMPLEMENTATION_LANGUAGE_TEMPLATE"/> -->
   ⋮«}/∀»…
   ⋮«}/∀»…
  ⋮«¬∅(‖"Ⓟ/Bases"){»…
  <Bases PASS="2">
    ⋮«∀(⊙){»…
    <BaseName>◂((String)(⊙)).replace("/",".")▸</BaseName>
    ⋮«}/∀»…
  </Bases>
  ⋮«}/¬∅»…
     ⋮«¬∅(‖"Ⓟ/Stereotypes"){»«∀(⊙){»…
     ⋮«¬∅(‖"Ⓟ/Stereotypes"){»«∀(⊙){»…
   <StereotypeName>◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸</StereotypeName>
   <!-- <StereotypeName>◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸</StereotypeName> -->
     ⋮«}/∀»«}/¬∅»…
     ⋮«}/∀»«}/¬∅»…
   ⋮« ⇾(⊙,WIMLStateMachine) {»…
   ⋮« ⇾(⊙,WIMLStateMachine) {»…
   <HasStateMachine>true</HasStateMachine>
   <!-- <StateMachine Name="TopLevel" PASS="2" TypeName="TopLevel">
  <StateMachine Name="TopLevel" PASS="2" TypeName="TopLevel">
   ⋮«¬∅(‖"Ⓟ/States"){»…
   ⋮«¬∅(‖"Ⓟ/States"){»…
     ⋮«java.util.HashSet names = new java.util.HashSet(); ∀(⊙){ String name = ‖<String>"Ⓟ/1"; names.add(name); }/∀ »…
     ⋮«java.util.HashSet names = new java.util.HashSet(); ∀(⊙){ String name = ‖<String>"Ⓟ/1"; names.add(name); }/∀ »…
Line 101: Line 105:
     ⋮«}/∀»…
     ⋮«}/∀»…
   ⋮«}/¬∅»…
   ⋮«}/¬∅»…
   </StateMachine>
   </StateMachine> -->
   ⋮« }/⇾ »…
   ⋮« }/⇾ »…
   ⋮«∀(‖"Ⓟ/Attributes"){if(‖"Ⓟ/Association" == null){»…
   ⋮«∀(‖"Ⓟ/Attributes"){if(‖"Ⓟ/Association" == null){»…
   <Attribute Name="◂‖"Ⓟ/Name"▸" PASS="2" TypeName="◂((String)(‖"Ⓟ/Type")).replace("/",".")▸"«∀(‖"Ⓟ/Stereotypes"){» StereotypeName-◂Ⓘ▸="◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸"«}/∀»…
   <!-- ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject
      ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString
      #//Xxx -->
  <eStructuralFeatures xsi:type="ecore:EAttribute"
                      name="◂‖"Ⓟ/Name"▸"
                      eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//E◂((String)(‖"Ⓟ/Type")).replace("/",".")▸"/>
    ⋮«∀(‖"Ⓟ/Stereotypes"){»…
    <!-- StereotypeName-◂Ⓘ▸="◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸" -->
    ⋮«}/∀»…
     ⋮⊏ ➜ this.Extensions(object, "Attribute", "Extensions") ⊐…
     ⋮⊏ ➜ this.Extensions(object, "Attribute", "Extensions") ⊐…
   ⋮«}else{»…
   ⋮«}else{»…
   <AssociationEnd PASS="2">
 
 
    <eStructuralFeatures xsi:type="ecore:EReference" name="notebook" eType="#//Notebook"
 
 
   <eStructuralFeatures xsi:type="ecore:EReference"
                      name="◂‖"Ⓟ/Name"▸"
                      upperBound="-1"
                      eType="#//◂((String)(‖"Ⓟ/Type")).replace("/",".")▸"
                      >
       ⋮«¬∅(‖"Ⓟ/Stereotypes"){»«∀(⊙){»…
       ⋮«¬∅(‖"Ⓟ/Stereotypes"){»«∀(⊙){»…
     <StereotypeName>◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸</StereotypeName>
     <!-- <StereotypeName>◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸</StereotypeName> -->
       ⋮«}/∀»«}/¬∅»…
       ⋮«}/∀»«}/¬∅»…
      ⋮«∃(‖"Ⓟ/OtherName"){»…
    <Role>◂⊙▸</Role>
      ⋮«}/∃»…
    <!-- <TypeName>◂‖[wc]"Ⓟ/Name"▸</TypeName> -->
       ⋮«∃(‖"Ⓟ/OtherMultiplicity"){»…
       ⋮«∃(‖"Ⓟ/OtherMultiplicity"){»…
     <Multiplicity>◂⊙▸</Multiplicity>
     <!-- <Multiplicity>◂⊙▸</Multiplicity> -->
     <Navigability>true</Navigability>
     <!-- <Navigability>true</Navigability> -->
       ⋮«}∨{»…
       ⋮«}∨{»…
     <Multiplicity>1</Multiplicity>
     <!-- <Multiplicity>1</Multiplicity> -->
     <Navigability>false</Navigability>
     <!-- <Navigability>false</Navigability> -->
      ⋮«}/∃»…
      ⋮«∃(‖"Ⓟ/OtherName"){»…
    <!-- <MyRole>◂⊙▸</MyRole> -->
       ⋮«}/∃»…
       ⋮«}/∃»…
    <!-- <OtherMultiplicity>◂‖"Ⓟ/Multiplicity"▸</OtherMultiplicity> -->
    <!-- <OtherNavigability>true</OtherNavigability> -->
     ⋮«●(‖"Ⓟ/Ends/1"){»⊏ ➜ this.Extensions(object, null, "Extensions") ⊐«}/●»…
     ⋮«●(‖"Ⓟ/Ends/1"){»⊏ ➜ this.Extensions(object, null, "Extensions") ⊐«}/●»…
    <OtherRole>◂‖"Ⓟ/Name"▸</OtherRole>
    <OtherTypeName>◂((String)(‖"Ⓟ/Type")).replace("/",".")▸</OtherTypeName>
    <OtherMultiplicity>◂‖"Ⓟ/Multiplicity"▸</OtherMultiplicity>
    <OtherNavigability>true</OtherNavigability>
     ⋮«●(‖"Ⓟ/Ends/0"){»⊏ ➜ this.Extensions(object, null, "OtherExtensions") ⊐«}/●»…
     ⋮«●(‖"Ⓟ/Ends/0"){»⊏ ➜ this.Extensions(object, null, "OtherExtensions") ⊐«}/●»…
     ⋮⊏ ➜ this.Extensions(object, null, "Extensions") ⊐…
     ⋮⊏ ➜ this.Extensions(object, null, "Extensions") ⊐…
  </AssociationEnd>
   ⋮«}}/∀»…
   ⋮«}}/∀»…
   ⋮«∀(‖"Ⓟ/Operations"){»…
   ⋮«∀(‖"Ⓟ/Operations"){»…
   ⋮« ⇾(⊙,WIMLTransition) { }/⇾ »…
   ⋮« ⇾(⊙,WIMLTransition) { }/⇾ »…
  <!--
   <Operation Name="◂‖"Ⓟ/Name"▸" OID="O_◂‖"Ⓟ/Name"▸" ReturnType="◂‖"Ⓟ/ReturnType"▸"«∀(‖"Ⓟ/Stereotypes"){» StereotypeName-◂Ⓘ▸="◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸"«}/∀»…
   <Operation Name="◂‖"Ⓟ/Name"▸" OID="O_◂‖"Ⓟ/Name"▸" ReturnType="◂‖"Ⓟ/ReturnType"▸"«∀(‖"Ⓟ/Stereotypes"){» StereotypeName-◂Ⓘ▸="◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸"«}/∀»…
                      ⋮⊰« ⇾(⊙,WIMLTransition) {»«¬∅(‖"Ⓟ/BeforeStateExpression"){» BeforeStates="◂⊙▸"«}/¬∅»« }/⇾ »⊱…
                          ⋮⊰« ⇾(⊙,WIMLTransition) {»«¬∅(‖"Ⓟ/BeforeStateExpression"){» BeforeStates="◂⊙▸"«}/¬∅»« }/⇾ »⊱…
     ⋮⊏ ➜ this.Extensions(object, "Operation", "Extensions") ⊐…
     ⋮⊏ ➜ this.Extensions(object, "Operation", "Extensions") ⊐…
    -->
   ⋮«}/∀»…
   ⋮«}/∀»…
   ⋮«∀(‖"Ⓟ/Views"){»…
   ⋮«∀(‖"Ⓟ/Views"){»…
  <!--
   <View Name="◂‖"Ⓟ/Name"▸" «¬∅(‖"Ⓟ/Stereotypes"){» StereotypeName="«∀(⊙){»◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸«}/∀»"«}/¬∅» CLASS="UMLView_SlotSpecification">
   <View Name="◂‖"Ⓟ/Name"▸" «¬∅(‖"Ⓟ/Stereotypes"){» StereotypeName="«∀(⊙){»◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸«}/∀»"«}/¬∅» CLASS="UMLView_SlotSpecification">
     <ClassOfView>◂‖[wc]"Ⓟ/Name"▸</ClassOfView>
     <ClassOfView>◂‖[wc]"Ⓟ/Name"▸</ClassOfView>
Line 150: Line 170:
     ⋮«}/∀»…
     ⋮«}/∀»…
   </View>
   </View>
    -->
   ⋮«}/∀»…
   ⋮«}/∀»…
   ⋮⊏ ➜ this.Extensions(object, null, "Extensions") ⊐…
   ⋮⊏ ➜ this.Extensions(object, null, "Extensions") ⊐…
</Class>
</eClassifiers>
«/¶»…
«/¶»…
« } »…
« } »…
Line 163: Line 184:
   } »…
   } »…
⊏ Ⓣ Extensions(Object object, String element, String tag) ⊐…
⊏ Ⓣ Extensions(Object object, String element, String tag) ⊐…
   ⋮«➀:(e)»…
   ⋮«¬∅(‖"Ⓟ/Extensions"){»…
  ⋮«➀:(x)»…
    ⋮«∀(⊙){»…
    ⋮«}/∀»…
  ⋮«}/¬∅»…
   ⋮«¬∅(‖"Ⓟ/Extensions"){»…
   ⋮«¬∅(‖"Ⓟ/Extensions"){»…
     ⋮«∀(⊙){»…
     ⋮«∀(⊙){»…
       ⋮«if(((String)(‖"Ⓟ/Name")).equals("UML")){»…
       ⋮«if(((String)(‖"Ⓟ/Name")).equals("UML")){»…
        ⋮«➀(e){if(element!=null){»>
        ⋮«}}/➀»…
         ⋮«∀(‖"Ⓟ/Properties"){»…
         ⋮«∀(‖"Ⓟ/Properties"){»…
        <!--
◂((WIMLProperty)(⊙)).dumpToXML("      ",null).toString()▸
◂((WIMLProperty)(⊙)).dumpToXML("      ",null).toString()▸
          -->
         ⋮«}/∀»…
         ⋮«}/∀»…
       ⋮«}»…
       ⋮«}»…
    ⋮«}/∀»…
  ⋮«}/¬∅»…
  ⋮«¬∅(‖"Ⓟ/Extensions"){»…
    ⋮«∀(⊙){»…
       ⋮«if(((String)(‖"Ⓟ/Name")).matches("UML\u007CWIML") == false){»…
       ⋮«if(((String)(‖"Ⓟ/Name")).matches("UML\u007CWIML") == false){»…
        ⋮«➀(e){if(element!=null){»>
      <!--
        ⋮«}}/➀»…
        ⋮«➀(x){»
    <◂tag▸>
        ⋮«}/➀»…
       <Extension CLASS="OOEMExtension_OCP_XML">
       <Extension CLASS="OOEMExtension_OCP_XML">
         <XOCP CLASS="String" CONTENT="XML/Text">
         <XOCP CLASS="String" CONTENT="XML/Text">
Line 201: Line 216:
         </XOCP>
         </XOCP>
       </Extension>
       </Extension>
      -->
       ⋮«}»…
       ⋮«}»…
     ⋮«}/∀»…
     ⋮«}/∀»…
   ⋮«}/¬∅»…
   ⋮«}/¬∅»…
  ⋮«¬➀(x){»…
    </◂tag▸>
  ⋮«}/¬➀»…
  ⋮«if(element!=null){»…
    ⋮«¬➀(e){»…
  </◂element▸>
    ⋮«}∨{»/>
    ⋮«}/¬➀»…
  ⋮«}»…
⊏ /Ⓣ ⊐…
⊏ /Ⓣ ⊐…
</OOMCode>
</OOMCode>

Latest revision as of 14:03, 17 May 2013

Classification
Type Type:org/oogenerator/Template/2.0
Domain Domain:it/development/formatting
Category Type:org/oomodels/wiki/Template
Maturity final
More
Download Code
Namespace (more)

OOEM main package

create new pages

Code[edit]


G-2.0-java_jppi-1.0 -*- coding: utf-8; -*-
▼…
import org.oomodels.wiml.*;
import java.util.Map;
import java.util.Vector;
▼…
▲…
    public Vector<String> getStatesInRegion(String expression, String region) {
        Vector<String> result = new Vector<String>();
        for (String term : expression.split("\\\u007C\\\u007C")) {
            String[] t = term.split("=");
            if (t.length > 1) {
                if (t[0].equals(region)) { result.add(t[1]); }
            } else {
                if ("main".equals(region)) { result.add(t[0]); }
            }
        }
        return result;
    }
▲…
⊏ signature(String wiml_code, Map<String,String> page_properties,
                              Map<String,String> predefined_arguments,
                              Map<String,String> conversion_arguments,
                              Map<String,String> request_arguments) ⊐…
« WIMLClass wc; try { wc = WIMLClass.parseWIML(wiml_code); object = wc; 
  boolean has_associations = false;
  if (wc == null) {
    throw new org.oomodels.OOMStatusCode(204);
  } else {
      boolean complete_xml = "true".equals(predefined_arguments.get("CompleteXMLDocument"));
      String xmlns = complete_xml ? " xmlns=\"http://xmlns.sphenon.com/org/ooem\"" : "";
      String indent = complete_xml ? "" : "  ";
»…
«if(complete_xml) {»…
  ⋮<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
«}»…
«¶(indent)»…
<eClassifiers…
«if(complete_xml) {»…
            ⋮ 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"
             …
«}»…
            ⋮ xsi:type="ecore:EClass"
              name="◂conversion_arguments.get("page").replaceFirst("Artefact:Model/","").replace("/",".")▸"
                  ⋮«∀(‖"Ⓟ/Bases"){»…
              eSuperTypes="#//◂((String)(⊙)).replace("/",".")▸"
                  ⋮«}/∀»…
              >
  ⋮«∀(‖"Ⓟ/ModelTemplateArguments"){»…
  <!-- <TemplateParameter Name="◂‖"Ⓟ/Name"▸" «∃(‖"Ⓟ/DefaultValue"){»DefaultValue="◂((String)(⊙)).replace("/",".")▸" «}/∃»GenericLevel="MODEL_TEMPLATE"/> -->
  ⋮«}/∀»…
  ⋮«∀(‖"Ⓟ/CodeGeneratorTemplateArguments"){»…
  <!-- <TemplateParameter Name="◂‖"Ⓟ/Name"▸" «∃(‖"Ⓟ/DefaultValue"){»DefaultValue="◂((String)(⊙)).replace("/",".")▸" «}/∃»GenericLevel="CODE_GENERATOR_TEMPLATE"/> -->
  ⋮«}/∀»…
  ⋮«∀(‖"Ⓟ/ImplementationLanguageTemplateArguments"){»…
  <!-- <TemplateParameter Name="◂‖"Ⓟ/Name"▸" «∃(‖"Ⓟ/DefaultValue"){»DefaultValue="◂((String)(⊙)).replace("/",".")▸" «}/∃»GenericLevel="IMPLEMENTATION_LANGUAGE_TEMPLATE"/> -->
  ⋮«}/∀»…
    ⋮«¬∅(‖"Ⓟ/Stereotypes"){»«∀(⊙){»…
  <!-- <StereotypeName>◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸</StereotypeName> -->
    ⋮«}/∀»«}/¬∅»…
  ⋮« ⇾(⊙,WIMLStateMachine) {»…
  <!-- <StateMachine Name="TopLevel" PASS="2" TypeName="TopLevel">
  ⋮«¬∅(‖"Ⓟ/States"){»…
    ⋮«java.util.HashSet names = new java.util.HashSet(); ∀(⊙){ String name = ‖<String>"Ⓟ/1"; names.add(name); }/∀ »…
    ⋮«∀(-name:names){»…
    <Region Name="◂name▸">
      ⋮«∀(⊙){»…
        ⋮«if(name.equals((String) (‖"Ⓟ/1"))){»…
      <State Name="◂‖"Ⓟ/0"▸" OID="S_◂name▸_◂‖"Ⓟ/0"▸" TypeName="«∃(‖"Ⓟ/2"){»◂⊙▸«}∨{»None«}/∃»"/>
        ⋮«}»…
      ⋮«}/∀»…
      ⋮«∀(-o:‖[wc]"Ⓟ/Operations"){»…
        ⋮« ⇾(o,WIMLTransition) { »…
          ⋮«➀:(state_in_region)»…
          ⋮«∀(-sir:getStatesInRegion(((String)(‖[o]"Ⓟ/BeforeStateExpression")), (String) name)){»…
              ⋮«➀(state_in_region){»…
      <Transition>
        <Operation IDREF="O_◂‖[o]"Ⓟ/Name"▸"/>
        <SourceStates>
              ⋮«}/➀»…
          <State IDREF="S_◂name▸_◂sir▸"/>
          ⋮«}/∀»…
          ⋮«¬➀(state_in_region){»…
        </SourceStates>
        <TargetStates/>
      </Transition>
          ⋮«}/¬➀»…
        ⋮« }/⇾ »…
      ⋮«}/∀»…
    </Region>
    ⋮«}/∀»…
  ⋮«}/¬∅»…
  </StateMachine> -->
  ⋮« }/⇾ »…
  ⋮«∀(‖"Ⓟ/Attributes"){if(‖"Ⓟ/Association" == null){»…
  <!-- ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject
       ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString
       #//Xxx -->
  <eStructuralFeatures xsi:type="ecore:EAttribute"
                       name="◂‖"Ⓟ/Name"▸"
                       eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//E◂((String)(‖"Ⓟ/Type")).replace("/",".")▸"/>
    ⋮«∀(‖"Ⓟ/Stereotypes"){»…
    <!-- StereotypeName-◂Ⓘ▸="◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸" -->
    ⋮«}/∀»…
    ⋮⊏ ➜ this.Extensions(object, "Attribute", "Extensions") ⊐…
  ⋮«}else{»…


    <eStructuralFeatures xsi:type="ecore:EReference" name="notebook" eType="#//Notebook"


  <eStructuralFeatures xsi:type="ecore:EReference"
                       name="◂‖"Ⓟ/Name"▸"
                       upperBound="-1"
                       eType="#//◂((String)(‖"Ⓟ/Type")).replace("/",".")▸"
                       >
      ⋮«¬∅(‖"Ⓟ/Stereotypes"){»«∀(⊙){»…
    <!-- <StereotypeName>◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸</StereotypeName> -->
      ⋮«}/∀»«}/¬∅»…
      ⋮«∃(‖"Ⓟ/OtherMultiplicity"){»…
    <!-- <Multiplicity>◂⊙▸</Multiplicity> -->
    <!-- <Navigability>true</Navigability> -->
      ⋮«}∨{»…
    <!-- <Multiplicity>1</Multiplicity> -->
    <!-- <Navigability>false</Navigability> -->
      ⋮«}/∃»…
      ⋮«∃(‖"Ⓟ/OtherName"){»…
    <!-- <MyRole>◂⊙▸</MyRole> -->
      ⋮«}/∃»…
    <!-- <OtherMultiplicity>◂‖"Ⓟ/Multiplicity"▸</OtherMultiplicity> -->
    <!-- <OtherNavigability>true</OtherNavigability> -->
    ⋮«●(‖"Ⓟ/Ends/1"){»⊏ ➜ this.Extensions(object, null, "Extensions") ⊐«}/●»…
    ⋮«●(‖"Ⓟ/Ends/0"){»⊏ ➜ this.Extensions(object, null, "OtherExtensions") ⊐«}/●»…
    ⋮⊏ ➜ this.Extensions(object, null, "Extensions") ⊐…
  ⋮«}}/∀»…
  ⋮«∀(‖"Ⓟ/Operations"){»…
  ⋮« ⇾(⊙,WIMLTransition) { }/⇾ »…
  <!--
  <Operation Name="◂‖"Ⓟ/Name"▸" OID="O_◂‖"Ⓟ/Name"▸" ReturnType="◂‖"Ⓟ/ReturnType"▸"«∀(‖"Ⓟ/Stereotypes"){» StereotypeName-◂Ⓘ▸="◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸"«}/∀»…
                           ⋮⊰« ⇾(⊙,WIMLTransition) {»«¬∅(‖"Ⓟ/BeforeStateExpression"){» BeforeStates="◂⊙▸"«}/¬∅»« }/⇾ »⊱…
    ⋮⊏ ➜ this.Extensions(object, "Operation", "Extensions") ⊐…
    -->
  ⋮«}/∀»…
  ⋮«∀(‖"Ⓟ/Views"){»…
  <!--
  <View Name="◂‖"Ⓟ/Name"▸" «¬∅(‖"Ⓟ/Stereotypes"){» StereotypeName="«∀(⊙){»◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸«}/∀»"«}/¬∅» CLASS="UMLView_SlotSpecification">
    <ClassOfView>◂‖[wc]"Ⓟ/Name"▸</ClassOfView>
    ⋮⊏ ➜ this.Extensions(object, null, "Extensions") ⊐…
    ⋮«∀(‖"Ⓟ/SlotSpecifications"){»…
    <SlotSpecification Name="◂‖"Ⓟ/Name"▸" Visibility="◂‖"Ⓟ/Visibility"▸" Attributes="◂‖"Ⓟ/Attributes"▸" Associations="◂‖"Ⓟ/Associations"▸" Operations="◂‖"Ⓟ/Operations"▸" Expand="◂‖"Ⓟ/Expand"▸">
      <EntryIncludeRegExp>◂‖"Ⓟ/EntryIncludeRegExp"▸</EntryIncludeRegExp>
      <EntryExcludeRegExp>◂‖"Ⓟ/EntryExcludeRegExp"▸</EntryExcludeRegExp>
      <FeatureIncludeRegExp>◂‖"Ⓟ/FeatureIncludeRegExp"▸</FeatureIncludeRegExp>
      <FeatureExcludeRegExp>◂‖"Ⓟ/FeatureExcludeRegExp"▸</FeatureExcludeRegExp>
    </SlotSpecification>
    ⋮«}/∀»…
  </View>
    -->
  ⋮«}/∀»…
  ⋮⊏ ➜ this.Extensions(object, null, "Extensions") ⊐…
</eClassifiers>
«/¶»…
« } »…
« } catch (org.oomodels.OOMStatusCode osc) {
    throw osc;
  } catch (Throwable t) {
    org.oomodels.OOMStatusCode osc = new org.oomodels.OOMStatusCode(204);
    //osc.setCause(t);
    throw osc;
  } »…
⊏ Ⓣ Extensions(Object object, String element, String tag) ⊐…
  ⋮«¬∅(‖"Ⓟ/Extensions"){»…
    ⋮«∀(⊙){»…
    ⋮«}/∀»…
  ⋮«}/¬∅»…
  ⋮«¬∅(‖"Ⓟ/Extensions"){»…
    ⋮«∀(⊙){»…
      ⋮«if(((String)(‖"Ⓟ/Name")).equals("UML")){»…
        ⋮«∀(‖"Ⓟ/Properties"){»…
        <!--
◂((WIMLProperty)(⊙)).dumpToXML("      ",null).toString()▸
          -->
        ⋮«}/∀»…
      ⋮«}»…
      ⋮«if(((String)(‖"Ⓟ/Name")).matches("UML\u007CWIML") == false){»…
      <!--
      <Extension CLASS="OOEMExtension_OCP_XML">
        <XOCP CLASS="String" CONTENT="XML/Text">
            ⋮«if(((String)(‖"Ⓟ/Name")).matches("^org/xmodel/[^/]*")){»…
          <◂((String)(‖"Ⓟ/Name")).replaceFirst("org/xmodel/","")▸ CLASS="UMLExtension">
            ⋮«}else{»…
          <◂‖"Ⓟ/Name"▸ CLASS="UMLExtension">
            ⋮«}»…
            ⋮«∀(‖"Ⓟ/Properties"){»…
◂((WIMLProperty)(⊙)).dumpToXML("          ",null).toString()▸
            ⋮«}/∀»…
            ⋮«if(((String)(‖"Ⓟ/Name")).matches("^org/xmodel/[^/]*")){»…
          </◂((String)(‖"Ⓟ/Name")).replaceFirst("org/xmodel/","")▸>
            ⋮«}else{»…
          </◂‖"Ⓟ/Name"▸>
            ⋮«}»…
        </XOCP>
      </Extension>
      -->
      ⋮«}»…
    ⋮«}/∀»…
  ⋮«}/¬∅»…
⊏ /Ⓣ ⊐…