Artefact:Template/org/ooem/templates/wiml-1.0-xmi-2.0
From OOModels
< Artefact:Template | org | ooem | templates
Jump to navigationJump to search
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> --> ⋮«}»… ⋮«}/∀»… ⋮«}/¬∅»… ⊏ /Ⓣ ⊐…