-
Notifications
You must be signed in to change notification settings - Fork 9
Validation
Boldizsár Németh edited this page Dec 12, 2015
·
9 revisions
Validation development is currently on the validation_improvements branch
Currently validated:
- General:
- Only private and public modifiers are allowed
- Generic classes are not supported
- Model content:
- In the model any type must be one of: ModelClass, Signal or Association
- ModelClass:
- The model class can contain types, methods and fields.
- An inner class must be a vertex (state or pseudostate) or a transition
- The methods return type and parameters must be basic types or model classes.
- Fields must be of basic types (including Timer for the moment, including external datatypes in the future)
- Signal:
- Only constructor methods are supported. Every parameter of a constructor must be basic type.
- Fields must be of basic types
- Association:
- An association can only have inner classes
- Association must have two inner class of type AssociationEnd
- Composition:
- A composition must have two inner classes, one of type Container and one of an arbitrary AssociationEnd
- States:
- States can have methods, composite states can also have inner classes, initial states can neither have methods nor inner classes.
- The following methods are supported: entry and exit, without parameters, with void return type.
- Inner classes of composite states must be vertices or transitions
- TODO Each (non-initial) state must be accessible by transitions.
- TODO There can be at most one initial state in a class.
- Transitions:
- Transitions can have method declarations.
- TODO The transition must be declared in the same class as the source and target vertices. (This may be a little more complex in the cases of composite states)
- A method in transitions must be an effect (with void return type) or a guard (with boolean return type), without parameters.
- Each transition must have a source and a target.
- If a transition is from a normal state it must have a trigger, if it is from initial state or a choice pseudostate it must not have a trigger.