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

From OOModels
Jump to navigationJump to search
Line 52: Line 52:
   ⋮«}}/∀»…
   ⋮«}}/∀»…
   ⋮«∀(‖"Ⓟ/Operations"){»…
   ⋮«∀(‖"Ⓟ/Operations"){»…
   « String op_type;
   « String op_type; ⇾(⊙,WIMLTransition) { op_type = "Transition"; }∨{ op_type = "Operation"; }/⇾ »…
    ⇾(⊙,WIMLTransition) { op_type = "Transition"; }∨{» op_type = "Operation"; }/⇾ »…
   <◂op_type▸ Name="◂‖"Ⓟ/Name"▸" ReturnType="◂‖"Ⓟ/ReturnType"▸"«¬∅(‖"Ⓟ/Stereotypes"){» Stereotype="«∀(⊙){»◂⊙▸«}/∀»"«}/¬∅»…
   <◂op_type▸ Name="◂‖"Ⓟ/Name"▸" ReturnType="◂‖"Ⓟ/ReturnType"▸"«¬∅(‖"Ⓟ/Stereotypes"){» Stereotype="«∀(⊙){»◂⊙▸«}/∀»"«}/¬∅»…
     ⋮⊏ ➜ this.Extensions(object, op_type) ⊐…
     ⋮⊏ ➜ this.Extensions(object, op_type) ⊐…

Revision as of 18:20, 7 September 2009

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_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;
  ∀(‖"Ⓟ/Attributes"){
    if (‖"Ⓟ/Association"!=null) { has_associations = true; }
  }/∀
»
MIME-Version: 1.0
Content-type: multipart/mixed; charset=utf-8; boundary="mimeboundery"

--mimeboundery
Content-type: text/plain; charset=utf-8
Content-Disposition: attachment; filename=‖"Ⓟ/Name".model

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
« ⇾(⊙,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>
  ⋮«}/¬∅»«∀(‖"Ⓟ/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="«∀(⊙){»◂⊙▸«}/∀»"«}/¬∅»⊏ ➜ this.Extensions(object, op_type) ⊐«}/∀»⊏ ➜ this.Extensions(object, null) ⊐
« ⇾(⊙,WIMLStateMachine) {»</StateMachine>«}∨{»</Class>« }/⇾ »
« if (has_associations) { »«∀(‖"Ⓟ/Attributes"){if(‖"Ⓟ/Association" != null){»
--mimeboundery
Content-type: text/plain; charset=utf-8
Content-Disposition: attachment; filename=‖[wc]"Ⓟ/Name"Association‖"Ⓟ/Name".model

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Association>
  ⋮⊏ ➜ this.Imports(object) ⊐«¬∅(‖"Ⓟ/Stereotypes"){»
  <Stereotype>«∀(⊙){»◂⊙▸«}/∀»</Stereotype>
  ⋮«}/¬∅»
  <Ends>
    <End>
      <Type>‖[wc]"Ⓟ/Name"</Type>
      <Multiplicity>1</Multiplicity>
      <IsNavigable>false</IsNavigable>
      ⋮⊏ ➜ this.Extensions(object, null) ⊐
    </End>
    <End>
      <Role>‖"Ⓟ/Name"</Role>
      <Type>◂((String)(‖"Ⓟ/Type")).replace("/",".")▸</Type>
      <Multiplicity>‖"Ⓟ/Association"</Multiplicity>
      <IsNavigable>true</IsNavigable>
      ⋮⊏ ➜ this.Extensions(object, null) ⊐
    </End>
  </Ends>
  ⋮⊏ ➜ this.Extensions(object, null) ⊐
</Association>
⋮«}}/∀»
« } »
« } catch (Throwable t) { »
ERROR: ◂t▸
« } »
⊏ Ⓣ Extensions(Object object, String element) ⊐«➀:(x)»«¬∅(‖"Ⓟ/Extensions"){»«∀(⊙){»«if(((String)(‖"Ⓟ/Name")).equals("UML")){»«}else{»«➀(x){if(element!=null){»>
         ⋮«}»
    <Extensions>
         ⋮«}/➀»«if(((String)(‖"Ⓟ/Name")).matches("^org/xmodel/[^/]*")){»
      <◂((String)(‖"Ⓟ/Name")).replaceFirst("org/xmodel/","")▸>
        ⋮«}else{»
      <Extension CLASS="‖"Ⓟ/Name"">
        ⋮«}»«∀(‖"Ⓟ/Properties"){»
        <‖"Ⓟ/Name">‖"Ⓟ/Value"</‖"Ⓟ/Name">
          ⋮«}/∀»«if(((String)(‖"Ⓟ/Name")).matches("^org/xmodel/[^/]*")){»
      </◂((String)(‖"Ⓟ/Name")).replaceFirst("org/xmodel/","")▸>
        ⋮«}else{»
      </Extension>
        ⋮«}»«}»«}/∀»«}/¬∅»«¬➀(x){»
    </Extensions>
    ⋮«if(element!=null){»
  </◂element▸>
    ⋮«}»«}∨{if(element!=null){»/>
    ⋮«}»«}/¬➀»
⊏ /Ⓣ ⊐
⊏ Ⓣ Imports(Object object) ⊐
  <InternalModelImport>org.uml.stereotypes.*</InternalModelImport>
  <ExternalImport>java.lang.String</ExternalImport>
  <ExternalImport>java.lang.Integer</ExternalImport>
  <ExternalImport>java.lang.Object</ExternalImport>
  <ExternalImport>java.lang.Boolean</ExternalImport>
  <PrimitiveImport>int</PrimitiveImport>
⊏ /Ⓣ ⊐