-
-
Save maxleiko/a8a1754b78a14ed596f2 to your computer and use it in GitHub Desktop.
//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 | |
} |
Mayve we could as well generalized
@contained
components : org.kevoree.Component[0,*]
to
@contained
childs : org.kevoree.Instance[0,*]
We should as well found a nice way for that :
fragmentDependant : Bool
defaultValue : String
About multi-user
Yes, but I think we should not mix the namespaces for TypeDefinition that represents the TypeDefinition of a precise user and the namespaces for instances that conceptually represent something like a cloud environment, and allows for more operations over several instances
About the generalization for Nodes
Yes, and by doing so we will have the oppositeOf also available within components
About fragmentDependant & defaultValue
Can you be more precise ?
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
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 :-)
maybe we should attach group and channel to the namespace to anticipate the multi-user usage of distributed Kevoree