Skip to content

Instantly share code, notes, and snippets.

@maxleiko
Created January 16, 2015 09:47
Show Gist options
  • Save maxleiko/a8a1754b78a14ed596f2 to your computer and use it in GitHub Desktop.
Save maxleiko/a8a1754b78a14ed596f2 to your computer and use it in GitHub Desktop.
Kevoree MM v6 proposal
//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
}
@barais
Copy link

barais commented Jan 19, 2015

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

@barais
Copy link

barais commented Jan 20, 2015

can be cool to add something on channel to know ifthere are able to manage callback

Graphically, we can show a different color

@barais
Copy link

barais commented Jan 20, 2015

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

@maxleiko
Copy link
Author

Add a dictionary attribute datatype for multiline strings (to know how to display it in the editor)

@maxleiko
Copy link
Author

maxleiko commented Jun 8, 2015

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..

@dukeboard
Copy link

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