Difference between revisions of "Artefact:Template/org/ooem/templates/wiml-1.0-ooem-multipart-1.0"
From OOModels
< Artefact:Template | org | ooem | templates
Jump to navigationJump to search
AndreasLeue (talk | contribs) |
AndreasLeue (talk | contribs) |
||
(35 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
| Meta_Maturity = final | | Meta_Maturity = final | ||
}} | }} | ||
'''Caution!''' This is a 98% copy of wiml-1.0-ooem-package-1.0 (todo: wiki subtemplates) | |||
==Code== | ==Code== | ||
Line 14: | Line 16: | ||
import org.oomodels.wiml.*; | 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 { | |||
»… | |||
MIME-Version: 1.0 | MIME-Version: 1.0 | ||
Content-type: multipart/mixed; charset=utf-8; boundary="mimeboundery" | Content-type: multipart/mixed; charset=utf-8; boundary="mimeboundery" | ||
« | |||
« | |||
∀(‖"Ⓟ/Attributes"){ | ∀(‖"Ⓟ/Attributes"){ | ||
if (‖"Ⓟ/Association"!=null) { has_associations = true; } | if (‖"Ⓟ/Association"!=null) { has_associations = true; } | ||
Line 31: | Line 37: | ||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | <?xml version="1.0" encoding="UTF-8" standalone="yes"?> | ||
« ⇾(⊙,WIMLStateMachine) {»<StateMachine>«}∨{»<Class>« }/⇾ » | « ⇾(⊙,WIMLStateMachine) {»<StateMachine>«}∨{»<Class>« }/⇾ » | ||
⋮⊏ ➜ this.Imports( | ⋮⊏ ➜ this.Imports(wc) ⊐… | ||
<Name>◂‖"Ⓟ/Name"▸</Name> | <Name>◂‖"Ⓟ/Name"▸</Name> | ||
⋮«∀(‖"Ⓟ/ModelTemplateArguments"){»… | ⋮«∀(‖"Ⓟ/ModelTemplateArguments"){»… | ||
Line 45: | Line 51: | ||
<Base Parent="◂((String)(⊙)).replace("/",".")▸"/> | <Base Parent="◂((String)(⊙)).replace("/",".")▸"/> | ||
⋮«}/∀»… | ⋮«}/∀»… | ||
⋮«¬∅(‖"Ⓟ/Stereotypes"){»… | ⋮«¬∅(‖"Ⓟ/Stereotypes"){»«∀(⊙){»… | ||
<Stereotype> | <Stereotype>◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸</Stereotype> | ||
⋮«}/¬∅»… | ⋮«}/∀»«}/¬∅»… | ||
⋮« ⇾(⊙,WIMLStateMachine) {»… | ⋮« ⇾(⊙,WIMLStateMachine) {»… | ||
⋮«¬∅(‖"Ⓟ/States"){»«∀(⊙){»… | ⋮«¬∅(‖"Ⓟ/States"){»«∀(⊙){»… | ||
<State Name="◂‖"Ⓟ/0"▸"«∃(‖"Ⓟ/ | <State Name="◂‖"Ⓟ/0"▸" Variable="◂‖"Ⓟ/1"▸"«∃(‖"Ⓟ/2"){» StateType="◂⊙▸"«}/∃»/> | ||
⋮«}/∀»«}/¬∅»… | ⋮«}/∀»«}/¬∅»… | ||
⋮« }/⇾ »… | ⋮« }/⇾ »… | ||
⋮«∀(‖"Ⓟ/Attributes"){if(‖"Ⓟ/Association" == null){»… | ⋮«∀(‖"Ⓟ/Attributes"){if(‖"Ⓟ/Association" == null){»… | ||
<Attribute Name="◂‖"Ⓟ/Name"▸" Type="◂((String)(‖"Ⓟ/Type")).replace("/",".")▸" | <Attribute Name="◂‖"Ⓟ/Name"▸" Type="◂((String)(‖"Ⓟ/Type")).replace("/",".")▸"«∀(‖"Ⓟ/Stereotypes"){» Stereotype-◂Ⓘ▸="◂⊙▸"«}/∀»… | ||
⋮⊏ ➜ this.Extensions(object, "Attribute") ⊐… | ⋮⊏ ➜ this.Extensions(object, "Attribute") ⊐… | ||
⋮«}}/∀»… | ⋮«}}/∀»… | ||
⋮«∀(‖"Ⓟ/Operations"){»… | ⋮«∀(‖"Ⓟ/Operations"){»… | ||
⋮« String op_type; ⇾(⊙,WIMLTransition) { op_type = "Transition"; }∨{ op_type = "Operation"; }/⇾ »… | ⋮« String op_type; ⇾(⊙,WIMLTransition) { op_type = "Transition"; }∨{ op_type = "Operation"; }/⇾ »… | ||
<◂op_type▸ Name="◂‖"Ⓟ/Name"▸" ReturnType="◂‖"Ⓟ/ReturnType"▸" | <◂op_type▸ Name="◂‖"Ⓟ/Name"▸" ReturnType="◂‖"Ⓟ/ReturnType"▸"«∀(‖"Ⓟ/Stereotypes"){» Stereotype-◂Ⓘ▸="◂⊙▸"«}/∀»… | ||
⋮« ⇾(⊙,WIMLTransition) {»«¬∅(‖"Ⓟ/ | ⋮« ⇾(⊙,WIMLTransition) {»«¬∅(‖"Ⓟ/BeforeStateExpression"){» BeforeStates="◂⊙▸"«}/¬∅»« }/⇾ »… | ||
⋮⊏ ➜ this.Extensions(object, op_type) ⊐… | ⋮⊏ ➜ 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) ⊐… | ⋮⊏ ➜ this.Extensions(object, null) ⊐… | ||
Line 73: | Line 93: | ||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | <?xml version="1.0" encoding="UTF-8" standalone="yes"?> | ||
<Association> | <Association> | ||
⋮⊏ ➜ this.Imports( | ⋮⊏ ➜ this.Imports(wc) ⊐… | ||
<Ends> | <Ends> | ||
<End> | <End> | ||
⋮«¬∅(‖"Ⓟ/Stereotypes"){»«∀(⊙){»… | |||
<Stereotype>◂⊙▸</Stereotype> | |||
⋮«}/∀»«}/¬∅»… | |||
⋮«∃(‖"Ⓟ/OtherName"){»… | |||
<Role>◂⊙▸</Role> | |||
⋮«}/∃»… | |||
<Type>◂‖[wc]"Ⓟ/Name"▸</Type> | <Type>◂‖[wc]"Ⓟ/Name"▸</Type> | ||
⋮«∃(‖"Ⓟ/OtherMultiplicity"){»… | |||
<Multiplicity>◂⊙▸</Multiplicity> | |||
<IsNavigable>true</IsNavigable> | |||
⋮«}∨{»… | |||
<Multiplicity>1</Multiplicity> | <Multiplicity>1</Multiplicity> | ||
<IsNavigable>false</IsNavigable> | <IsNavigable>false</IsNavigable> | ||
⋮«}/∃»… | |||
⋮«●(‖"Ⓟ/Ends/0"){»⊏ ➜ this.Extensions(object, null) ⊐«}/●»… | |||
</End> | </End> | ||
<End> | <End> | ||
<Role>◂‖"Ⓟ/Name"▸</Role> | <Role>◂‖"Ⓟ/Name"▸</Role> | ||
<Type>◂((String)(‖"Ⓟ/Type")).replace("/",".")▸</Type> | <Type>◂((String)(‖"Ⓟ/Type")).replace("/",".")▸</Type> | ||
<Multiplicity>◂‖"Ⓟ/ | <Multiplicity>◂‖"Ⓟ/Multiplicity"▸</Multiplicity> | ||
<IsNavigable>true</IsNavigable> | <IsNavigable>true</IsNavigable> | ||
⋮«●(‖"Ⓟ/Ends/1"){»⊏ ➜ this.Extensions(object, null) ⊐«}/●»… | |||
</End> | </End> | ||
</Ends> | </Ends> | ||
Line 97: | Line 125: | ||
« } »… | « } »… | ||
« } »… | « } »… | ||
« } catch (Throwable t) { | « } catch (org.oomodels.OOMStatusCode osc) { | ||
throw osc; | |||
} catch (Throwable t) { | |||
org.oomodels.OOMStatusCode osc = new org.oomodels.OOMStatusCode(500); | |||
//osc.setCause(t); | |||
throw osc; | |||
} »… | |||
⊏ Ⓣ Extensions(Object object, String element) ⊐… | ⊏ Ⓣ Extensions(Object object, String element) ⊐… | ||
⋮«➀:(e)»… | ⋮«➀:(e)»… | ||
Line 150: | Line 182: | ||
⊏ Ⓣ Imports(Object object) ⊐… | ⊏ Ⓣ Imports(Object object) ⊐… | ||
<StereotypeModelImport>org.uml.stereotypes.*</StereotypeModelImport> | <StereotypeModelImport>org.uml.stereotypes.*</StereotypeModelImport> | ||
⋮«∀(‖"Ⓟ/ModelImports"){»… | |||
<ModelImport>◂⊙▸</ModelImport> | |||
⋮«}/∀»… | |||
⋮«¬∅(‖"Ⓟ/ExternalImports"){»… | |||
⋮«∀(⊙){»… | |||
⋮«if(((String)⊙).indexOf('.') != -1){»… | |||
<ExternalImport>◂⊙▸</ExternalImport> | |||
⋮«}else{»… | |||
<PrimitiveImport>◂⊙▸</PrimitiveImport> | |||
⋮«}»… | |||
⋮«}/∀»… | |||
⋮«}∨{»… | |||
<ExternalImport>java.lang.Boolean</ExternalImport> | <ExternalImport>java.lang.Boolean</ExternalImport> | ||
<ExternalImport>java.lang.Byte</ExternalImport> | <ExternalImport>java.lang.Byte</ExternalImport> | ||
Line 169: | Line 213: | ||
<PrimitiveImport>double</PrimitiveImport> | <PrimitiveImport>double</PrimitiveImport> | ||
<PrimitiveImport>char</PrimitiveImport> | <PrimitiveImport>char</PrimitiveImport> | ||
⋮«}/¬∅»… | |||
⊏ /Ⓣ ⊐… | ⊏ /Ⓣ ⊐… | ||
</OOMCode> | </OOMCode> |
Latest revision as of 09:02, 6 August 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 |
Caution! This is a 98% copy of wiml-1.0-ooem-package-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 { »… MIME-Version: 1.0 Content-type: multipart/mixed; charset=utf-8; boundary="mimeboundery" « ∀(‖"Ⓟ/Attributes"){ if (‖"Ⓟ/Association"!=null) { has_associations = true; } }/∀ »… --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(wc) ⊐… <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>◂((String)⊙).replaceFirst("org/ooem/stereotypes/.*/","")▸</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){»… --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(wc) ⊐… <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> ⋮«}}/∀»… « } »… « } »… « } catch (org.oomodels.OOMStatusCode osc) { throw osc; } catch (Throwable t) { org.oomodels.OOMStatusCode osc = new org.oomodels.OOMStatusCode(500); //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> ⋮«∀(‖"Ⓟ/ModelImports"){»… <ModelImport>◂⊙▸</ModelImport> ⋮«}/∀»… ⋮«¬∅(‖"Ⓟ/ExternalImports"){»… ⋮«∀(⊙){»… ⋮«if(((String)⊙).indexOf('.') != -1){»… <ExternalImport>◂⊙▸</ExternalImport> ⋮«}else{»… <PrimitiveImport>◂⊙▸</PrimitiveImport> ⋮«}»… ⋮«}/∀»… ⋮«}∨{»… <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> ⋮«}/¬∅»… ⊏ /Ⓣ ⊐…