Interface Model<SELF,ID>

Type Parameters:
SELF - the type of the implementing class (for method chaining and copying)
ID - the type of the identifier for this model element
All Superinterfaces:
CanCopy<SELF>, HasId<ID>, Validatable
All Known Subinterfaces:
Capability, Condition, ConditionalResult, Conditions, DefaultResult, Fork, Function, Join, MutableWorkflowDefinition, Register, Result<E>, State, Transition, Validator, WorkflowDefinition

public interface Model<SELF,ID> extends Validatable, HasId<ID>, CanCopy<SELF>
Base interface for all workflow model elements. Model provides the fundamental structure and capabilities that all workflow components must implement, including validation, identification, copying, and property management.

Model is the root interface in the workflow model hierarchy and defines the core contract that all workflow elements must follow. It combines validation, identification, and copying capabilities with property management and extension support.

All workflow model elements (states, transitions, functions, conditions, etc.) implement this interface, ensuring consistent behavior across the entire workflow definition model.

Since:
1.0
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the extension provider associated with this model element.
    Model<?,?>
    Returns the parent model element of this model element.
    Returns the properties associated with this model element.
    Compares the properties of this model element with another instance and returns the set of property names that differ between them.

    Methods inherited from interface com.yworkflow.definition.model.base.CanCopy

    copy

    Methods inherited from interface com.yworkflow.definition.model.base.HasId

    getId

    Methods inherited from interface com.yworkflow.definition.model.validation.Validatable

    validate
  • Method Details

    • getProperties

      Properties getProperties()
      Returns the properties associated with this model element.
      Returns:
      the properties for this model element
    • getExtensions

      ExtensionProvider getExtensions()
      Returns the extension provider associated with this model element.
      Returns:
      the extension provider for this model element
    • getParent

      Model<?,?> getParent()
      Returns the parent model element of this model element.
      Returns:
      the parent model element, or null if this is a root element
    • getPropertyDifference

      Set<String> getPropertyDifference(SELF c2)
      Compares the properties of this model element with another instance and returns the set of property names that differ between them.
      Parameters:
      c2 - the other model element to compare with
      Returns:
      a set of property names that differ between the two model elements