I've been playing around with moddle for quite a while now but have hit issues of which I'm not too sure on how to proceed with.
Below is the roundtrip code. the errors and the test.json model. Would be really grateful if you could have a quick look to see if you could point out mistakes I've made. The harness I'm using is the same as bpmn-moddle.
{
"name": "TEST",
"uri": "http://www.omg.org/spec/TEST",
"associations": [],
"types": [
{
"name": "OpaqueBehavior",
"superClass": [
"Behavior"
],
"properties": [
{
"name": "body",
"type": "String",
"isMany": true
},
{
"name": "language",
"type": "String",
"isMany": true
}
]
},
{
"name": "FunctionBehavior",
"superClass": [
"OpaqueBehavior"
]
},
{
"name": "BehavioredClassifier",
"superClass": [
"Classifier"
],
"properties": [
{
"name": "ownedBehavior",
"type": "Behavior",
"isMany": true
},
{
"name": "classifierBehavior",
"type": "Behavior",
"isAttr": true
}
]
},
{
"name": "Behavior",
"superClass": [
"Class"
],
"properties": [
{
"name": "isReentrant",
"type": "Boolean",
"isAttr": true
},
{
"name": "specification",
"type": "BehavioralFeature",
"isAttr": true
},
{
"name": "ownedParameter",
"type": "Parameter",
"isMany": true
},
{
"name": "context",
"type": "BehavioredClassifier",
"isAttr": true
}
]
},
{
"name": "Trigger",
"superClass": [
"NamedElement"
],
"properties": [
{
"name": "event",
"type": "Event",
"isAttr": true
}
]
},
{
"name": "Signal",
"superClass": [
"Classifier"
],
"properties": [
{
"name": "ownedAttribute",
"type": "Property",
"isMany": true
}
]
},
{
"name": "SignalEvent",
"superClass": [
"MessageEvent"
],
"properties": [
{
"name": "signal",
"type": "Signal",
"isAttr": true
}
]
},
{
"name": "Reception",
"superClass": [
"BehavioralFeature"
],
"properties": [
{
"name": "signal",
"type": "Signal",
"isAttr": true
}
]
},
{
"name": "MessageEvent",
"superClass": [
"Event"
]
},
{
"name": "Event",
"superClass": [
"PackageableElement"
]
},
{
"name": "ValueSpecification",
"superClass": [
"TypedElement"
]
},
{
"name": "StructuralFeature",
"superClass": [
"Feature",
"TypedElement",
"MultiplicityElement"
],
"properties": [
{
"name": "isReadOnly",
"type": "Boolean",
"isAttr": true
}
]
},
{
"name": "RedefinableElement",
"superClass": [
"NamedElement"
],
"properties": [
{
"name": "isLeaf",
"type": "Boolean",
"isAttr": true
},
{
"name": "redefinedElement",
"type": "RedefinableElement",
"isMany": true
},
{
"name": "redefinitionContext",
"type": "Classifier",
"isMany": true
}
]
},
{
"name": "BehavioralFeature",
"superClass": [
"Feature"
],
"properties": [
{
"name": "ownedParameter",
"type": "Parameter",
"isMany": true
},
{
"name": "isAbstract",
"type": "Boolean",
"isAttr": true
},
{
"name": "method",
"type": "Behavior",
"isMany": true
},
{
"name": "concurrency",
"type": "CallConcurrencyKind",
"isAttr": true
}
]
},
{
"name": "InstanceSpecification",
"superClass": [
"NamedElement"
],
"properties": [
{
"name": "classifier",
"type": "Classifier",
"isMany": true
},
{
"name": "slot",
"type": "Slot",
"isMany": true
}
]
},
{
"name": "InstanceValue",
"superClass": [
"ValueSpecification"
],
"properties": [
{
"name": "instance",
"type": "InstanceSpecification",
"isAttr": true
}
]
},
{
"name": "LiteralBoolean",
"superClass": [
"LiteralSpecification"
],
"properties": [
{
"name": "value",
"type": "Boolean",
"isAttr": true
}
]
},
{
"name": "LiteralInteger",
"superClass": [
"LiteralSpecification"
],
"properties": [
{
"name": "value",
"type": "Integer",
"isAttr": true
}
]
},
{
"name": "LiteralNull",
"superClass": [
"LiteralSpecification"
]
},
{
"name": "LiteralSpecification",
"superClass": [
"ValueSpecification"
]
},
{
"name": "LiteralString",
"superClass": [
"LiteralSpecification"
],
"properties": [
{
"name": "value",
"type": "String",
"isAttr": true
}
]
},
{
"name": "LiteralUnlimitedNatural",
"superClass": [
"LiteralSpecification"
],
"properties": [
{
"name": "value",
"type": "UnlimitedNatural",
"isAttr": true
}
]
},
{
"name": "MultiplicityElement",
"superClass": [
"Element"
],
"properties": [
{
"name": "isOrdered",
"type": "Boolean",
"isAttr": true
},
{
"name": "isUnique",
"type": "Boolean",
"isAttr": true
},
{
"name": "upper",
"type": "UnlimitedNatural",
"isAttr": true
},
{
"name": "lower",
"type": "Integer",
"isAttr": true
},
{
"name": "upperValue",
"type": "ValueSpecification",
"isAttr": true
},
{
"name": "lowerValue",
"type": "ValueSpecification",
"isAttr": true
}
]
},
{
"name": "NamedElement",
"superClass": [
"Element"
],
"properties": [
{
"name": "name",
"type": "String",
"isAttr": true
},
{
"name": "visibility",
"type": "VisibilityKind",
"isAttr": true
},
{
"name": "qualifiedName",
"type": "String",
"isAttr": true
},
{
"name": "namespace",
"type": "Namespace",
"isAttr": true
}
]
},
{
"name": "Namespace",
"superClass": [
"NamedElement"
],
"properties": [
{
"name": "member",
"type": "NamedElement",
"isMany": true
},
{
"name": "ownedMember",
"type": "NamedElement",
"isMany": true
},
{
"name": "elementImport",
"type": "ElementImport",
"isMany": true
},
{
"name": "packageImport",
"type": "PackageImport",
"isMany": true
},
{
"name": "importedMember",
"type": "PackageableElement",
"isMany": true
}
]
},
{
"name": "Operation",
"superClass": [
"BehavioralFeature"
],
"properties": [
{
"name": "isQuery",
"type": "Boolean",
"isAttr": true
},
{
"name": "isOrdered",
"type": "Boolean",
"isAttr": true
},
{
"name": "isUnique",
"type": "Boolean",
"isAttr": true
},
{
"name": "lower",
"type": "Integer",
"isAttr": true
},
{
"name": "upper",
"type": "UnlimitedNatural",
"isAttr": true
},
{
"name": "class",
"type": "Class",
"isAttr": true
},
{
"name": "redefinedOperation",
"type": "Operation",
"isMany": true
},
{
"name": "type",
"type": "Type",
"isAttr": true
},
{
"name": "ownedParameter",
"type": "Parameter",
"isMany": true,
"redefines": "test:BehavioralFeature#ownedParameter"
}
]
},
{
"name": "Package",
"superClass": [
"Namespace",
"PackageableElement"
],
"properties": [
{
"name": "packagedElement",
"type": "PackageableElement",
"isMany": true
},
{
"name": "ownedType",
"type": "Type",
"isMany": true
},
{
"name": "nestedPackage",
"type": "Package",
"isMany": true
},
{
"name": "nestingPackage",
"type": "Package",
"isAttr": true
},
{
"name": "URI",
"type": "String",
"isAttr": true
}
]
},
{
"name": "PackageableElement",
"superClass": [
"NamedElement"
],
"properties": [
{
"name": "visibility",
"type": "VisibilityKind",
"isAttr": true,
"redefines": "test:NamedElement#visibility"
}
]
},
{
"name": "Parameter",
"superClass": [
"TypedElement",
"MultiplicityElement"
],
"properties": [
{
"name": "direction",
"type": "ParameterDirectionKind",
"isAttr": true
},
{
"name": "operation",
"type": "Operation",
"isAttr": true
}
]
},
{
"name": "PrimitiveType",
"superClass": [
"DataType"
]
},
{
"name": "Property",
"superClass": [
"StructuralFeature"
],
"properties": [
{
"name": "isDerived",
"type": "Boolean",
"isAttr": true
},
{
"name": "isReadOnly",
"type": "Boolean",
"isAttr": true,
"redefines": "test:StructuralFeature#isReadOnly"
},
{
"name": "isDerivedUnion",
"type": "Boolean",
"isAttr": true
},
{
"name": "aggregation",
"type": "AggregationKind",
"isAttr": true
},
{
"name": "isComposite",
"type": "Boolean",
"isAttr": true
},
{
"name": "owningAssociation",
"type": "Association",
"isAttr": true
},
{
"name": "datatype",
"type": "DataType",
"isAttr": true
},
{
"name": "association",
"type": "Association",
"isAttr": true
},
{
"name": "class",
"type": "Class",
"isAttr": true
},
{
"name": "opposite",
"type": "Property",
"isAttr": true
},
{
"name": "isID",
"type": "Boolean",
"isAttr": true
}
]
},
{
"name": "Slot",
"superClass": [
"Element"
],
"properties": [
{
"name": "owningInstance",
"type": "InstanceSpecification",
"isAttr": true
},
{
"name": "definingFeature",
"type": "StructuralFeature",
"isAttr": true
},
{
"name": "value",
"type": "ValueSpecification",
"isMany": true
}
]
},
{
"name": "Type",
"superClass": [
"PackageableElement"
],
"properties": [
{
"name": "package",
"type": "Package",
"isAttr": true
}
]
},
{
"name": "TypedElement",
"superClass": [
"NamedElement"
],
"properties": [
{
"name": "type",
"type": "Type",
"isAttr": true
}
]
},
{
"name": "Class",
"superClass": [
"BehavioredClassifier"
],
"properties": [
{
"name": "ownedOperation",
"type": "Operation",
"isMany": true
},
{
"name": "isActive",
"type": "Boolean",
"isAttr": true
},
{
"name": "ownedReception",
"type": "Reception",
"isMany": true
},
{
"name": "ownedAttribute",
"type": "Property",
"isMany": true
},
{
"name": "nestedClassifier",
"type": "Classifier",
"isMany": true
},
{
"name": "isID",
"type": "Boolean",
"isAttr": true
},
{
"name": "superClass",
"type": "Class",
"isMany": true
}
]
},
{
"name": "Classifier",
"superClass": [
"Type",
"Namespace"
],
"properties": [
{
"name": "isAbstract",
"type": "Boolean",
"isAttr": true
},
{
"name": "generalization",
"type": "Generalization",
"isMany": true
},
{
"name": "feature",
"type": "Feature",
"isMany": true
},
{
"name": "inheritedMember",
"type": "NamedElement",
"isMany": true
},
{
"name": "attribute",
"type": "Property",
"isMany": true
},
{
"name": "general",
"type": "Classifier",
"isMany": true
},
{
"name": "isFinalSpecialization",
"type": "Boolean",
"isAttr": true
}
]
},
{
"name": "DataType",
"superClass": [
"Classifier"
],
"properties": [
{
"name": "ownedAttribute",
"type": "Property",
"isMany": true
}
]
},
{
"name": "Element",
"properties": [
{
"name": "ownedElement",
"type": "Element",
"isMany": true
},
{
"name": "owner",
"type": "Element",
"isAttr": true
},
{
"name": "ownedComment",
"type": "Comment",
"isMany": true
},
{
"name": "xmiId",
"type": "String",
"isAttr": true,
"isId": true
},
{
"name": "href",
"type": "String",
"isAttr": true
},
{
"name": "xmiNamespace",
"type": "String",
"isAttr": true
}
]
},
{
"name": "Enumeration",
"superClass": [
"DataType"
],
"properties": [
{
"name": "ownedLiteral",
"type": "EnumerationLiteral",
"isMany": true
}
]
},
{
"name": "EnumerationLiteral",
"superClass": [
"InstanceSpecification"
],
"properties": [
{
"name": "enumeration",
"type": "Enumeration",
"isAttr": true
},
{
"name": "classifier",
"type": "Enumeration",
"isAttr": true,
"redefines": "test:InstanceSpecification#classifier"
}
]
},
{
"name": "Feature",
"superClass": [
"RedefinableElement"
],
"properties": [
{
"name": "isStatic",
"type": "Boolean",
"isAttr": true
},
{
"name": "featuringClassifier",
"type": "Classifier",
"isMany": true
}
]
},
{
"name": "Generalization",
"superClass": [
"Element"
],
"properties": [
{
"name": "isSubstitutable",
"type": "Boolean",
"isAttr": true
},
{
"name": "specific",
"type": "Classifier",
"isAttr": true
},
{
"name": "general",
"type": "Classifier",
"isAttr": true
}
]
},
{
"name": "Association",
"superClass": [
"Classifier"
],
"properties": [
{
"name": "isDerived",
"type": "Boolean",
"isAttr": true
},
{
"name": "ownedEnd",
"type": "Property",
"isMany": true
},
{
"name": "endType",
"type": "Type",
"isMany": true
},
{
"name": "memberEnd",
"type": "Property",
"isMany": true
},
{
"name": "navigableOwnedEnd",
"type": "Property",
"isMany": true
}
]
},
{
"name": "Comment",
"properties": [
{
"name": "annotatedElement",
"type": "Element",
"isMany": true
},
{
"name": "body",
"type": "String",
"isAttr": true
}
]
},
{
"name": "ElementImport",
"superClass": [
"Element"
],
"properties": [
{
"name": "visibility",
"type": "VisibilityKind",
"isAttr": true
},
{
"name": "alias",
"type": "String",
"isAttr": true
},
{
"name": "importedElement",
"type": "PackageableElement",
"isAttr": true
},
{
"name": "importingNamespace",
"type": "Namespace",
"isAttr": true
}
]
},
{
"name": "PackageImport",
"superClass": [
"Element"
],
"properties": [
{
"name": "visibility",
"type": "VisibilityKind",
"isAttr": true
},
{
"name": "importingNamespace",
"type": "Namespace",
"isAttr": true
},
{
"name": "importedPackage",
"type": "Package",
"isAttr": true
}
]
},
{
"name": "LiteralReal",
"superClass": [
"LiteralSpecification"
],
"properties": [
{
"name": "value",
"type": "Real",
"isAttr": true
}
]
},
{
"name": "ObjectFlow",
"superClass": [
"ActivityEdge"
]
},
{
"name": "ObjectNode",
"superClass": [
"ActivityNode",
"TypedElement"
]
},
{
"name": "MergeNode",
"superClass": [
"ControlNode"
]
},
{
"name": "JoinNode",
"superClass": [
"ControlNode"
]
},
{
"name": "InitialNode",
"superClass": [
"ControlNode"
]
},
{
"name": "FinalNode",
"superClass": [
"ControlNode"
]
},
{
"name": "ForkNode",
"superClass": [
"ControlNode"
]
},
{
"name": "ControlFlow",
"superClass": [
"ActivityEdge"
]
},
{
"name": "ControlNode",
"superClass": [
"ActivityNode"
]
},
{
"name": "DecisionNode",
"superClass": [
"ControlNode"
],
"properties": [
{
"name": "decisionInput",
"type": "Behavior",
"isAttr": true
},
{
"name": "decisionInputFlow",
"type": "ObjectFlow",
"isAttr": true
}
]
},
{
"name": "ActivityFinalNode",
"superClass": [
"FinalNode"
]
},
{
"name": "ActivityNode",
"superClass": [
"RedefinableElement"
],
"properties": [
{
"name": "inStructuredNode",
"type": "StructuredActivityNode",
"isAttr": true
},
{
"name": "activity",
"type": "Activity",
"isAttr": true
},
{
"name": "outgoing",
"type": "ActivityEdge",
"isMany": true
},
{
"name": "incoming",
"type": "ActivityEdge",
"isMany": true
}
]
},
{
"name": "ActivityParameterNode",
"superClass": [
"ObjectNode"
],
"properties": [
{
"name": "parameter",
"type": "Parameter",
"isAttr": true
}
]
},
{
"name": "ActivityEdge",
"superClass": [
"RedefinableElement"
],
"properties": [
{
"name": "activity",
"type": "Activity",
"isAttr": true
},
{
"name": "source",
"type": "ActivityNode",
"isAttr": true
},
{
"name": "target",
"type": "ActivityNode",
"isAttr": true
},
{
"name": "guard",
"type": "ValueSpecification",
"isAttr": true
},
{
"name": "inStructuredNode",
"type": "StructuredActivityNode",
"isAttr": true
}
]
},
{
"name": "Activity",
"superClass": [
"Behavior"
],
"properties": [
{
"name": "structuredNode",
"type": "StructuredActivityNode",
"isMany": true
},
{
"name": "node",
"type": "ActivityNode",
"isMany": true
},
{
"name": "isReadOnly",
"type": "Boolean",
"isAttr": true
},
{
"name": "edge",
"type": "ActivityEdge",
"isMany": true
}
]
},
{
"name": "FlowFinalNode",
"superClass": [
"FinalNode"
]
},
{
"name": "StructuredActivityNode",
"superClass": [
"Action"
],
"properties": [
{
"name": "node",
"type": "ActivityNode",
"isMany": true
},
{
"name": "activity",
"type": "Activity",
"isAttr": true,
"redefines": "test:ActivityNode#activity"
},
{
"name": "mustIsolate",
"type": "Boolean",
"isAttr": true
},
{
"name": "edge",
"type": "ActivityEdge",
"isMany": true
},
{
"name": "structuredNodeOutput",
"type": "OutputPin",
"isMany": true
},
{
"name": "structuredNodeInput",
"type": "InputPin",
"isMany": true
}
]
},
{
"name": "LoopNode",
"superClass": [
"StructuredActivityNode"
],
"properties": [
{
"name": "isTestedFirst",
"type": "Boolean",
"isAttr": true
},
{
"name": "decider",
"type": "OutputPin",
"isAttr": true
},
{
"name": "test",
"type": "ExecutableNode",
"isMany": true
},
{
"name": "bodyOutput",
"type": "OutputPin",
"isMany": true
},
{
"name": "loopVariableInput",
"type": "InputPin",
"isMany": true
},
{
"name": "bodyPart",
"type": "ExecutableNode",
"isMany": true
},
{
"name": "result",
"type": "OutputPin",
"isMany": true
},
{
"name": "loopVariable",
"type": "OutputPin",
"isMany": true
},
{
"name": "setupPart",
"type": "ExecutableNode",
"isMany": true
}
]
},
{
"name": "ExecutableNode",
"superClass": [
"ActivityNode"
]
},
{
"name": "Clause",
"superClass": [
"Element"
],
"properties": [
{
"name": "test",
"type": "ExecutableNode",
"isMany": true
},
{
"name": "body",
"type": "ExecutableNode",
"isMany": true
},
{
"name": "predecessorClause",
"type": "Clause",
"isMany": true
},
{
"name": "successorClause",
"type": "Clause",
"isMany": true
},
{
"name": "decider",
"type": "OutputPin",
"isAttr": true
},
{
"name": "bodyOutput",
"type": "OutputPin",
"isMany": true
}
]
},
{
"name": "ConditionalNode",
"superClass": [
"StructuredActivityNode"
],
"properties": [
{
"name": "isDeterminate",
"type": "Boolean",
"isAttr": true
},
{
"name": "isAssured",
"type": "Boolean",
"isAttr": true
},
{
"name": "clause",
"type": "Clause",
"isMany": true
},
{
"name": "result",
"type": "OutputPin",
"isMany": true
}
]
},
{
"name": "ExpansionNode",
"superClass": [
"ObjectNode"
],
"properties": [
{
"name": "regionAsOutput",
"type": "ExpansionRegion",
"isAttr": true
},
{
"name": "regionAsInput",
"type": "ExpansionRegion",
"isAttr": true
}
]
},
{
"name": "ExpansionRegion",
"superClass": [
"StructuredActivityNode"
],
"properties": [
{
"name": "mode",
"type": "ExpansionKind",
"isAttr": true
},
{
"name": "outputElement",
"type": "ExpansionNode",
"isMany": true
},
{
"name": "inputElement",
"type": "ExpansionNode",
"isMany": true
}
]
},
{
"name": "SendSignalAction",
"superClass": [
"InvocationAction"
],
"properties": [
{
"name": "target",
"type": "InputPin",
"isAttr": true
},
{
"name": "signal",
"type": "Signal",
"isAttr": true
}
]
},
{
"name": "OutputPin",
"superClass": [
"Pin"
]
},
{
"name": "Pin",
"superClass": [
"ObjectNode",
"MultiplicityElement"
]
},
{
"name": "InputPin",
"superClass": [
"Pin"
]
},
{
"name": "InvocationAction",
"superClass": [
"Action"
],
"properties": [
{
"name": "argument",
"type": "InputPin",
"isMany": true
}
]
},
{
"name": "CallAction",
"superClass": [
"InvocationAction"
],
"properties": [
{
"name": "isSynchronous",
"type": "Boolean",
"isAttr": true
},
{
"name": "result",
"type": "OutputPin",
"isMany": true
}
]
},
{
"name": "CallBehaviorAction",
"superClass": [
"CallAction"
],
"properties": [
{
"name": "behavior",
"type": "Behavior",
"isAttr": true
}
]
},
{
"name": "CallOperationAction",
"superClass": [
"CallAction"
],
"properties": [
{
"name": "operation",
"type": "Operation",
"isAttr": true
},
{
"name": "target",
"type": "InputPin",
"isAttr": true
}
]
},
{
"name": "Action",
"superClass": [
"ExecutableNode"
],
"properties": [
{
"name": "output",
"type": "OutputPin",
"isMany": true
},
{
"name": "context",
"type": "Classifier",
"isAttr": true
},
{
"name": "input",
"type": "InputPin",
"isMany": true
},
{
"name": "isLocallyReentrant",
"type": "Boolean",
"isAttr": true
}
]
},
{
"name": "StructuralFeatureAction",
"superClass": [
"Action"
],
"properties": [
{
"name": "structuralFeature",
"type": "StructuralFeature",
"isAttr": true
},
{
"name": "object",
"type": "InputPin",
"isAttr": true
}
]
},
{
"name": "TestIdentityAction",
"superClass": [
"Action"
],
"properties": [
{
"name": "second",
"type": "InputPin",
"isAttr": true
},
{
"name": "result",
"type": "OutputPin",
"isAttr": true
},
{
"name": "first",
"type": "InputPin",
"isAttr": true
}
]
},
{
"name": "ValueSpecificationAction",
"superClass": [
"Action"
],
"properties": [
{
"name": "value",
"type": "ValueSpecification",
"isAttr": true
},
{
"name": "result",
"type": "OutputPin",
"isAttr": true
}
]
},
{
"name": "WriteLinkAction",
"superClass": [
"LinkAction"
]
},
{
"name": "WriteStructuralFeatureAction",
"superClass": [
"StructuralFeatureAction"
],
"properties": [
{
"name": "value",
"type": "InputPin",
"isAttr": true
},
{
"name": "result",
"type": "OutputPin",
"isAttr": true
}
]
},
{
"name": "RemoveStructuralFeatureValueAction",
"superClass": [
"WriteStructuralFeatureAction"
],
"properties": [
{
"name": "isRemoveDuplicates",
"type": "Boolean",
"isAttr": true
},
{
"name": "removeAt",
"type": "InputPin",
"isAttr": true
}
]
},
{
"name": "ReadLinkAction",
"superClass": [
"LinkAction"
],
"properties": [
{
"name": "result",
"type": "OutputPin",
"isAttr": true
}
]
},
{
"name": "ReadSelfAction",
"superClass": [
"Action"
],
"properties": [
{
"name": "result",
"type": "OutputPin",
"isAttr": true
}
]
},
{
"name": "ReadStructuralFeatureAction",
"superClass": [
"StructuralFeatureAction"
],
"properties": [
{
"name": "result",
"type": "OutputPin",
"isAttr": true
}
]
},
{
"name": "LinkAction",
"superClass": [
"Action"
],
"properties": [
{
"name": "endData",
"type": "LinkEndData",
"isMany": true
},
{
"name": "inputValue",
"type": "InputPin",
"isMany": true
}
]
},
{
"name": "LinkEndCreationData",
"superClass": [
"LinkEndData"
],
"properties": [
{
"name": "isReplaceAll",
"type": "Boolean",
"isAttr": true
},
{
"name": "insertAt",
"type": "InputPin",
"isAttr": true
}
]
},
{
"name": "LinkEndData",
"superClass": [
"Element"
],
"properties": [
{
"name": "value",
"type": "InputPin",
"isAttr": true
},
{
"name": "end",
"type": "Property",
"isAttr": true
}
]
},
{
"name": "LinkEndDestructionData",
"superClass": [
"LinkEndData"
],
"properties": [
{
"name": "isDestroyDuplicates",
"type": "Boolean",
"isAttr": true
},
{
"name": "destroyAt",
"type": "InputPin",
"isAttr": true
}
]
},
{
"name": "ClearAssociationAction",
"superClass": [
"Action"
],
"properties": [
{
"name": "association",
"type": "Association",
"isAttr": true
},
{
"name": "object",
"type": "InputPin",
"isAttr": true
}
]
},
{
"name": "ClearStructuralFeatureAction",
"superClass": [
"StructuralFeatureAction"
],
"properties": [
{
"name": "result",
"type": "OutputPin",
"isAttr": true
}
]
},
{
"name": "CreateLinkAction",
"superClass": [
"WriteLinkAction"
],
"properties": [
{
"name": "endData",
"type": "LinkEndCreationData",
"isMany": true,
"redefines": "test:LinkAction#endData"
}
]
},
{
"name": "CreateObjectAction",
"superClass": [
"Action"
],
"properties": [
{
"name": "result",
"type": "OutputPin",
"isAttr": true
},
{
"name": "classifier",
"type": "Classifier",
"isAttr": true
}
]
},
{
"name": "DestroyLinkAction",
"superClass": [
"WriteLinkAction"
],
"properties": [
{
"name": "endData",
"type": "LinkEndDestructionData",
"isMany": true,
"redefines": "test:LinkAction#endData"
}
]
},
{
"name": "DestroyObjectAction",
"superClass": [
"Action"
],
"properties": [
{
"name": "isDestroyLinks",
"type": "Boolean",
"isAttr": true
},
{
"name": "isDestroyOwnedObjects",
"type": "Boolean",
"isAttr": true
},
{
"name": "target",
"type": "InputPin",
"isAttr": true
}
]
},
{
"name": "AddStructuralFeatureValueAction",
"superClass": [
"WriteStructuralFeatureAction"
],
"properties": [
{
"name": "isReplaceAll",
"type": "Boolean",
"isAttr": true
},
{
"name": "insertAt",
"type": "InputPin",
"isAttr": true
}
]
},
{
"name": "StartClassifierBehaviorAction",
"superClass": [
"Action"
],
"properties": [
{
"name": "object",
"type": "InputPin",
"isAttr": true
}
]
},
{
"name": "StartObjectBehaviorAction",
"superClass": [
"CallAction"
],
"properties": [
{
"name": "object",
"type": "InputPin",
"isAttr": true
}
]
},
{
"name": "ReduceAction",
"superClass": [
"Action"
],
"properties": [
{
"name": "reducer",
"type": "Behavior",
"isAttr": true
},
{
"name": "result",
"type": "OutputPin",
"isAttr": true
},
{
"name": "collection",
"type": "InputPin",
"isAttr": true
},
{
"name": "isOrdered",
"type": "Boolean",
"isAttr": true
}
]
},
{
"name": "ReadExtentAction",
"superClass": [
"Action"
],
"properties": [
{
"name": "result",
"type": "OutputPin",
"isAttr": true
},
{
"name": "classifier",
"type": "Classifier",
"isAttr": true
}
]
},
{
"name": "ReadIsClassifiedObjectAction",
"superClass": [
"Action"
],
"properties": [
{
"name": "isDirect",
"type": "Boolean",
"isAttr": true
},
{
"name": "classifier",
"type": "Classifier",
"isAttr": true
},
{
"name": "result",
"type": "OutputPin",
"isAttr": true
},
{
"name": "object",
"type": "InputPin",
"isAttr": true
}
]
},
{
"name": "ReclassifyObjectAction",
"superClass": [
"Action"
],
"properties": [
{
"name": "isReplaceAll",
"type": "Boolean",
"isAttr": true
},
{
"name": "oldClassifier",
"type": "Classifier",
"isMany": true
},
{
"name": "object",
"type": "InputPin",
"isAttr": true
},
{
"name": "newClassifier",
"type": "Classifier",
"isMany": true
}
]
},
{
"name": "AcceptEventAction",
"superClass": [
"Action"
],
"properties": [
{
"name": "isUnmarshall",
"type": "Boolean",
"isAttr": true
},
{
"name": "result",
"type": "OutputPin",
"isMany": true
},
{
"name": "trigger",
"type": "Trigger",
"isMany": true
}
]
}
],
"enumerations": [
{
"name": "CallConcurrencyKind",
"literalValues": [
{
"name": "sequential"
}
]
},
{
"name": "AggregationKind",
"literalValues": [
{
"name": "none"
},
{
"name": "shared"
},
{
"name": "composite"
}
]
},
{
"name": "ParameterDirectionKind",
"literalValues": [
{
"name": "in"
},
{
"name": "inout"
},
{
"name": "out"
},
{
"name": "return"
}
]
},
{
"name": "VisibilityKind",
"literalValues": [
{
"name": "public"
},
{
"name": "private"
},
{
"name": "protected"
},
{
"name": "package"
}
]
},
{
"name": "ExpansionKind",
"literalValues": [
{
"name": "parallel"
},
{
"name": "iterative"
},
{
"name": "stream"
}
]
}
],
"prefix": "test"
}