There are 3 built-in types that must have a class name :
- self::TYPE_WORKFLOW
- self::TYPE_STATUS
- self::TYPE_TRANSITION
The constructor ensure that if a class map is provided, it include class names for these 3 types. Failure to do so
will result in an exception being thrown by the constructor.