Artefact:Template/org/ooem/templates/wiml-1.0-ooem-package-1.0
From OOModels
< Artefact:Template | org | ooem | templates
Jump to navigationJump to search
Revision as of 18:37, 14 November 2011 by AndreasLeue (talk | contribs)
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 |
Caution! This is a 98% copy of wiml-1.0-ooem-multipart-1.0 (todo: wiki subtemplates)
Code[edit]
G-2.0-java_jpp-1.0 -*- coding: utf-8; -*- ▼… import org.oomodels.wiml.*; ▼… ⊏ signature(String wiml_code) ⊐… « WIMLClass wc; try { wc = WIMLClass.parseWIML(wiml_code); object = wc; boolean has_associations = false; if (wc == null) { throw new org.oomodels.OOMStatusCode(204); } else { »… <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Package> « ∀(‖"Ⓟ/Attributes"){ if (‖"Ⓟ/Association"!=null) { has_associations = true; } }/∀ »… « ⇾(⊙,WIMLStateMachine) {»<StateMachine>«}∨{»<Class>« }/⇾ » ⋮⊏ ➜ this.Imports(object) ⊐… <Name>◂‖"Ⓟ/Name"▸</Name> ⋮«∀(‖"Ⓟ/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"/> ⋮«}/∀»… ⋮«∀(‖"Ⓟ/Bases"){»… <Base Parent="◂((String)(⊙)).replace("/",".")▸"/> ⋮«}/∀»… ⋮«¬∅(‖"Ⓟ/Stereotypes"){»«∀(⊙){»… <Stereotype>◂⊙▸</Stereotype> ⋮«}/∀»«}/¬∅»… ⋮« ⇾(⊙,WIMLStateMachine) {»… ⋮«¬∅(‖"Ⓟ/States"){»«∀(⊙){»… <State Name="◂‖"Ⓟ/0"▸" Variable="◂‖"Ⓟ/1"▸"«∃(‖"Ⓟ/2"){» StateType="◂⊙▸"«}/∃»/> ⋮«}/∀»«}/¬∅»… ⋮« }/⇾ »… ⋮«∀(‖"Ⓟ/Attributes"){if(‖"Ⓟ/Association" == null){»… <Attribute Name="◂‖"Ⓟ/Name"▸" Type="◂((String)(‖"Ⓟ/Type")).replace("/",".")▸"«∀(‖"Ⓟ/Stereotypes"){» Stereotype-◂Ⓘ▸="◂⊙▸"«}/∀»… ⋮⊏ ➜ this.Extensions(object, "Attribute") ⊐… ⋮«}}/∀»… ⋮«∀(‖"Ⓟ/Operations"){»… ⋮« String op_type; ⇾(⊙,WIMLTransition) { op_type = "Transition"; }∨{ op_type = "Operation"; }/⇾ »… <◂op_type▸ Name="◂‖"Ⓟ/Name"▸" ReturnType="◂‖"Ⓟ/ReturnType"▸"«∀(‖"Ⓟ/Stereotypes"){» Stereotype-◂Ⓘ▸="◂⊙▸"«}/∀»… ⋮« ⇾(⊙,WIMLTransition) {»«¬∅(‖"Ⓟ/BeforeStateExpression"){» BeforeStates="◂⊙▸"«}/¬∅»« }/⇾ »… ⋮⊏ ➜ this.Extensions(object, op_type) ⊐… ⋮«}/∀»… ⋮«∀(‖"Ⓟ/Views"){»… <View Name="◂‖"Ⓟ/Name"▸" «¬∅(‖"Ⓟ/Stereotypes"){» Stereotype="«∀(⊙){»◂⊙▸«}/∀»"«}/¬∅» CLASS="UMLView_SlotSpecification"> <ClassOfView>◂‖[wc]"Ⓟ/Name"▸</ClassOfView> ⋮⊏ ➜ this.Extensions(object, null) ⊐… ⋮«∀(‖"Ⓟ/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) ⊐… « ⇾(⊙,WIMLStateMachine) {»</StateMachine>«}∨{»</Class>« }/⇾ » « if (has_associations) { »… ⋮«∀(‖"Ⓟ/Attributes"){if(‖"Ⓟ/Association" != null){»… <Association> ⋮⊏ ➜ this.Imports(object) ⊐… <Ends> <End> ⋮«¬∅(‖"Ⓟ/Stereotypes"){»«∀(⊙){»… <Stereotype>◂⊙▸</Stereotype> ⋮«}/∀»«}/¬∅»… ⋮«∃(‖"Ⓟ/OtherName"){»… <Role>◂⊙▸</Role> ⋮«}/∃»… <Type>◂‖[wc]"Ⓟ/Name"▸</Type> ⋮«∃(‖"Ⓟ/OtherMultiplicity"){»… <Multiplicity>◂⊙▸</Multiplicity> <IsNavigable>true</IsNavigable> ⋮«}∨{»… <Multiplicity>1</Multiplicity> <IsNavigable>false</IsNavigable> ⋮«}/∃»… ⋮«●(‖"Ⓟ/Ends/0"){»⊏ ➜ this.Extensions(object, null) ⊐«}/●»… </End> <End> <Role>◂‖"Ⓟ/Name"▸</Role> <Type>◂((String)(‖"Ⓟ/Type")).replace("/",".")▸</Type> <Multiplicity>◂‖"Ⓟ/Multiplicity"▸</Multiplicity> <IsNavigable>true</IsNavigable> ⋮«●(‖"Ⓟ/Ends/1"){»⊏ ➜ this.Extensions(object, null) ⊐«}/●»… </End> </Ends> ⋮⊏ ➜ this.Extensions(object, null) ⊐… </Association> ⋮«}}/∀»… « } »… </Package> « } »… « } 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) ⊐… ⋮«➀:(e)»… ⋮«➀:(x)»… ⋮«¬∅(‖"Ⓟ/Extensions"){»… ⋮«∀(⊙){»… ⋮«if(((String)(‖"Ⓟ/Name")).equals("UML")){»… ⋮«➀(e){if(element!=null){»> ⋮«}}/➀»… ⋮«∀(‖"Ⓟ/Properties"){»… ◂((WIMLProperty)(⊙)).dumpToXML(" ",null).toString()▸ ⋮«}/∀»… ⋮«}»… ⋮«}/∀»… ⋮«}/¬∅»… ⋮«¬∅(‖"Ⓟ/Extensions"){»… ⋮«∀(⊙){»… ⋮«if(((String)(‖"Ⓟ/Name")).equals("UML") == false){»… ⋮«➀(e){if(element!=null){»> ⋮«}}/➀»… ⋮«➀(x){» <Extensions> ⋮«}/➀»… ⋮«if(((String)(‖"Ⓟ/Name")).matches("^org/xmodel/[^/]*")){»… <◂((String)(‖"Ⓟ/Name")).replaceFirst("org/xmodel/","")▸> ⋮«}else{»… <Extension CLASS="◂‖"Ⓟ/Name"▸"> ⋮«}»… ⋮«∀(‖"Ⓟ/Properties"){»… ◂((WIMLProperty)(⊙)).dumpToXML(" ",null).toString()▸ ⋮«}/∀»… ⋮«if(((String)(‖"Ⓟ/Name")).matches("^org/xmodel/[^/]*")){»… </◂((String)(‖"Ⓟ/Name")).replaceFirst("org/xmodel/","")▸> ⋮«}else{»… </Extension> ⋮«}»… ⋮«}»… ⋮«}/∀»… ⋮«}/¬∅»… ⋮«¬➀(x){»… </Extensions> ⋮«}/¬➀»… ⋮«if(element!=null){»… ⋮«¬➀(e){»… </◂element▸> ⋮«}∨{»/> ⋮«}/¬➀»… ⋮«}»… ⊏ /Ⓣ ⊐… ⊏ Ⓣ Imports(Object object) ⊐… <StereotypeModelImport>org.uml.stereotypes.*</StereotypeModelImport> <ExternalImport>java.lang.Boolean</ExternalImport> <ExternalImport>java.lang.Byte</ExternalImport> <ExternalImport>java.lang.Short</ExternalImport> <ExternalImport>java.lang.Integer</ExternalImport> <ExternalImport>java.lang.Long</ExternalImport> <ExternalImport>java.lang.Float</ExternalImport> <ExternalImport>java.lang.Double</ExternalImport> <ExternalImport>java.lang.Character</ExternalImport> <ExternalImport>java.lang.String</ExternalImport> <ExternalImport>java.util.Date</ExternalImport> <ExternalImport>java.lang.Object</ExternalImport> <PrimitiveImport>boolean</PrimitiveImport> <PrimitiveImport>byte</PrimitiveImport> <PrimitiveImport>short</PrimitiveImport> <PrimitiveImport>int</PrimitiveImport> <PrimitiveImport>long</PrimitiveImport> <PrimitiveImport>float</PrimitiveImport> <PrimitiveImport>double</PrimitiveImport> <PrimitiveImport>char</PrimitiveImport> ⊏ /Ⓣ ⊐…