webgme-bip
Version:
Design studio for component-based modeling with BIP.
18 lines (12 loc) • 1.42 kB
Plain Text
1) All generated JAVA classes or variables should be valid java names (and not collide with reserved keywords)
2) Guard expressions must be valid: they can be defined using the name of guards, parenthesis and three logical operators: negation '!', conjunction '&' and disjunction ‘|'
3) References to guards must be valid (that is a guard must exist with that name in the component type)
4) Name collisions where applicable:
A) Each component type must have a unique name.
B) Each enforceable and spontaneous transition of a component type must have a unique name. The same does not hold for internal transitions (all internal transitions are named 'internal').
C) Each state of a component type must have a unique alphanumeric name.
D) Each guard of a component type must have a unique alphanumeric name.
E) Notice that you can have for instance two component types both with a state named “one", the uniqueness constraint applies only on the states, transitions and guards of the same component type.
5) All transitions should have a src and dst set.
6) Attributes: constructors, definitions, forwards of ComponentType, guardMethod of Guard, and transitionMethod of TransitionBase must not be empty.
7) Log a warning if there is a (forgotten) state without any incoming or outgoing transitions. This does not add any errors but in principle there shouldn't be any unconnected states.