Skip to content

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.
Clone this wiki locally