Created
January 16, 2015 09:47
-
-
Save maxleiko/a8a1754b78a14ed596f2 to your computer and use it in GitHub Desktop.
Kevoree MM v6 proposal
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//KMF_VERSION=4.8.1 | |
//VERSION=6.0.0-SNAPSHOT | |
class org.kevoree.Model { | |
@contained | |
nodes : org.kevoree.Node[0,*] | |
@contained | |
channels : org.kevoree.Channel[0,*] | |
@contained | |
groups : org.kevoree.Group[0,*] | |
@contained | |
namespaces : org.kevoree.Namespace[0,*] | |
} | |
class org.kevoree.Node : org.kevoree.Instance { | |
@contained | |
components : org.kevoree.Component[0,*] | |
@contained | |
networks : org.kevoree.NetworkInfo[0,*] | |
subNodes : org.kevoree.Node[0,*] oppositeOf host | |
host : org.kevoree.Node oppositeOf subNodes | |
groups : org.kevoree.Group[0,*] oppositeOf nodes | |
} | |
class org.kevoree.Component : org.kevoree.Instance { | |
@contained | |
inputs : org.kevoree.Port[0,*] | |
@contained | |
outputs : org.kevoree.Port[0,*] | |
} | |
class org.kevoree.Group : org.kevoree.Instance { | |
nodes : org.kevoree.Node[0,*] oppositeOf groups | |
} | |
class org.kevoree.Channel : org.kevoree.Instance { | |
ports : org.kevoree.Port[0,*] oppositeOf channels | |
} | |
class org.kevoree.Namespace : org.kevoree.NamedElement { | |
@contained | |
typeDefinitions : org.kevoree.TypeDefinition[0,*] | |
} | |
class org.kevoree.PortType : org.kevoree.NamedElement {} | |
class org.kevoree.TypeDefinition : org.kevoree.NamedElement { | |
@id | |
version : String | |
@contained | |
dictionaryType : org.kevoree.DictionaryType | |
@contained | |
metaData : org.kevoree.Value[0,*] | |
abstract : Bool | |
deployUnits : org.kevoree.DeployUnit[0,*] | |
superTypes : org.kevoree.TypeDefinition[0,*] | |
} | |
class org.kevoree.ComponentType : org.kevoree.TypeDefinition { | |
@contained | |
inputs : org.kevoree.PortType[0,*] | |
@contained | |
outputs : org.kevoree.PortType[0,*] | |
} | |
class org.kevoree.GroupType : org.kevoree.TypeDefinition {} | |
class org.kevoree.NodeType : org.kevoree.TypeDefinition {} | |
class org.kevoree.ChannelType : org.kevoree.TypeDefinition {} | |
class org.kevoree.Port : org.kevoree.NamedElement { | |
channels : org.kevoree.Channel[0,*] oppositeOf ports | |
} | |
class org.kevoree.Dictionary { | |
@contained | |
values : org.kevoree.Value[0,*] | |
} | |
class org.kevoree.FragmentDictionary : org.kevoree.Dictionary,org.kevoree.NamedElement {} | |
class org.kevoree.Value : org.kevoree.NamedElement { | |
value : String | |
} | |
class org.kevoree.DictionaryType { | |
@contained | |
attributes : org.kevoree.DictionaryAttribute[0,*] | |
} | |
enum org.kevoree.DataType { | |
Byte | |
Short | |
Int | |
Long | |
Float | |
Double | |
Boolean | |
Char | |
String | |
} | |
class org.kevoree.DictionaryAttribute : org.kevoree.TypedElement { | |
optional : Bool | |
datatype : org.kevoree.DataType | |
fragmentDependant : Bool | |
defaultValue : String | |
} | |
class org.kevoree.TypedElement : org.kevoree.NamedElement { | |
genericTypes : org.kevoree.TypedElement[0,*] | |
} | |
class org.kevoree.DeployUnit : org.kevoree.NamedElement { | |
@id | |
version : String | |
@id | |
hashcode : String | |
@contained | |
filters : org.kevoree.Value[0,*] | |
url : String | |
requiredLibs : org.kevoree.DeployUnit[0,*] | |
} | |
class org.kevoree.NamedElement { | |
@id | |
name : String | |
} | |
class org.kevoree.NetworkInfo : org.kevoree.NamedElement { | |
@contained | |
values : org.kevoree.Value[0,*] | |
} | |
class org.kevoree.Instance : org.kevoree.NamedElement { | |
@contained | |
dictionary : org.kevoree.Dictionary | |
@contained | |
fragmentDictionary : org.kevoree.FragmentDictionary[0,*] | |
@contained | |
metaData : org.kevoree.Value[0,*] | |
started : Bool | |
typeDefinition : org.kevoree.TypeDefinition | |
} |
can be cool to add something on channel to know ifthere are able to manage callback
Graphically, we can show a different color
Can be cool to add somthing on channel to explain that channel has no DU
There add just there to indicates that exists a communication between component
Add a dictionary attribute datatype for multiline strings (to know how to display it in the editor)
Add meta-data for groups so that tools such as the editor can have a guess on what protocol to use to communicate with them.
Something like the platform meta-data "javascript", "node", etc.. but with "ws", "tcp", "udp", "webrtc", etc..
There is minor change for the new .file i will do it next week :-)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Can be cool to include a field to attach metadata for any element.
for example, on port. I would like to attach a schema that describe the protocol (APRO schema, JSON Schema or XML schema) to check assembly consistency