Interface PropertyHandler

All Known Subinterfaces:
AbstractWorkflowItemClass, AbstractWorkflowItemObject, AggregateClass, AggregateObject, AtomicClass, AtomicObject, BooleanClass, BooleanObject, ByteArrayClass, ByteArrayObject, ChronologicClass, ChronologicObject, CollectionClass, CollectionObject, ControlflowItemClass, ControlflowItemObject, DataClass, DataflowWrapperClass, DataflowWrapperObject, DataObject, DataReferenceClass, DataReferenceObject, DateClass, DateObject, DoubleClass, DoubleObject, IntegerClass, IntegerObject, IntervalClass, IntervalObject, ListClass, ListObject, NESTAbstractWorkflowObject, NESTAndEndNodeClass, NESTAndEndNodeObject, NESTAndStartNodeClass, NESTAndStartNodeObject, NESTConstraintEdgeClass, NESTConstraintEdgeObject, NESTControlflowEdgeClass, NESTControlflowEdgeObject, NESTControlflowNodeClass, NESTControlflowNodeObject, NESTDataflowEdgeClass, NESTDataflowEdgeObject, NESTDataNodeClass, NESTDataNodeObject, NESTEdgeClass, NESTEdgeObject, NESTGraphClass, NESTGraphItemClass, NESTGraphItemObject, NESTGraphObject, NESTLoopEndNodeClass, NESTLoopEndNodeObject, NESTLoopStartNodeClass, NESTLoopStartNodeObject, NESTNodeClass, NESTNodeObject, NESTOrEndNodeClass, NESTOrEndNodeObject, NESTOrStartNodeClass, NESTOrStartNodeObject, NESTPartOfEdgeClass, NESTPartOfEdgeObject, NESTSequenceNodeClass, NESTSequenceNodeObject, NESTSequentialWorkflowClass, NESTSequentialWorkflowObject, NESTSubWorkflowNodeClass, NESTSubWorkflowNodeObject, NESTTaskNodeClass, NESTTaskNodeObject, NESTWorkflowClass, NESTWorkflowNodeClass, NESTWorkflowNodeObject, NESTWorkflowObject, NESTXorEndNodeClass, NESTXorEndNodeObject, NESTXorStartNodeClass, NESTXorStartNodeObject, NodeClass, NodeObject, NumericClass, NumericObject, ParentItemClass, ParentItemObject<T>, SequenceClass, SequencedObject, SequenceObject, SetClass, SetObject, StatusableClass, StatusableObject, StringClass, StringObject, SubWorkflowClass, SubWorkflowObject, TaskClass, TaskObject, TimeClass, TimeObject, TimestampClass, TimestampObject, UnionClass, URIClass, URIObject, VoidClass, VoidObject, WorkflowClass, WorkflowObject
All Known Implementing Classes:
AbstractDataClassImpl, AbstractWorkflowItemClassImpl, AbstractWorkflowItemObjectImpl, AggregateClassImpl, AggregateObjectImpl, AtomicClassImpl, AtomicObjectImpl, BooleanClassImpl, BooleanObjectImpl, ByteArrayClassImpl, ByteArrayObjectImpl, ChronologicClassImpl, ChronologicObjectImpl, CollectionClassImpl, CollectionObjectImpl, ControlflowItemClassImpl, ControlflowItemObjectImpl, DataClassImpl, DataflowWrapperClassImpl, DataflowWrapperObjectImpl, DataObjectImpl, DataReferenceClassImpl, DataReferenceObjectImpl, DateClassImpl, DateObjectImpl, DoubleClassImpl, DoubleObjectImpl, IntegerClassImpl, IntegerObjectImpl, IntervalClassImpl, IntervalObjectImpl, ListClassImpl, ListObjectImpl, NESTAbstractWorkflowObjectImpl, NESTAndEndNodeClassImpl, NESTAndEndNodeObjectImpl, NESTAndStartNodeClassImpl, NESTAndStartNodeObjectImpl, NESTConstraintEdgeClassImpl, NESTConstraintEdgeObjectImpl, NESTControlflowEdgeClassImpl, NESTControlflowEdgeObjectImpl, NESTControlflowNodeClassImpl, NESTControlflowNodeObjectImpl, NESTDataflowEdgeClassImpl, NESTDataflowEdgeObjectImpl, NESTDataNodeClassImpl, NESTDataNodeObjectImpl, NESTEdgeClassImpl, NESTEdgeObjectImpl, NESTGraphClassImpl, NESTGraphItemClassImpl, NESTGraphItemObjectImpl, NESTGraphObjectImpl, NESTLoopEndNodeClassImpl, NESTLoopEndNodeObjectImpl, NESTLoopStartNodeClassImpl, NESTLoopStartNodeObjectImpl, NESTNodeClassImpl, NESTNodeObjectImpl, NESTOrEndNodeClassImpl, NESTOrEndNodeObjectImpl, NESTOrStartNodeClassImpl, NESTOrStartNodeObjectImpl, NESTPartOfEdgeClassImpl, NESTPartOfEdgeObjectImpl, NESTSequenceNodeClassImpl, NESTSequenceNodeObjectImpl, NESTSequentialWorkflowClassImpl, NESTSequentialWorkflowObjectImpl, NESTSubWorkflowNodeClassImpl, NESTSubWorkflowNodeObjectImpl, NESTTaskNodeClassImpl, NESTTaskNodeObjectImpl, NESTWorkflowClassImpl, NESTWorkflowNodeClassImpl, NESTWorkflowNodeObjectImpl, NESTWorkflowObjectImpl, NESTXorEndNodeClassImpl, NESTXorEndNodeObjectImpl, NESTXorStartNodeClassImpl, NESTXorStartNodeObjectImpl, NodeClassImpl, NodeObjectImpl, NumericClassImpl, NumericObjectImpl, ParentItemClassImpl, ParentItemObjectImpl, SequenceClassImpl, SequenceObjectImpl, SetClassImpl, SetObjectImpl, StatusableClassImpl, StatusableObjectImpl, StringClassImpl, StringObjectImpl, SubWorkflowClassImpl, TaskClassImpl, TaskObjectImpl, TimeClassImpl, TimeObjectImpl, TimeStampClassImpl, TimestampObjectImpl, UnionClassImpl, URIClassImpl, URIObjectImpl, VoidClassImpl, VoidObjectImpl, WorkflowClassImpl, WorkflowObjectImpl

public interface PropertyHandler

Properties

Several components in CAKE using properties to add additional information to an object. To unify the methods for these components to access the properties the PropertyHandler defines four typical methods.

Author:
Rainer Maximini, Maximilian Hoffmann
  • Method Details

    • hasProperties

      boolean hasProperties()
      Tests, if the implementing object has properties. This can be tested by looking for a generic root node.
      Returns:
      true, if a property is set, false otherwise.
    • getPropertyRootNode

      PropertyTreeNode getPropertyRootNode()
      Returns the propertyRootNode of the implementing object.
      Returns:
      the propertyRootNode if set. Null otherwise.
    • setPropertyRootNode

      void setPropertyRootNode(PropertyTreeNode node)
      Set the propertyRootNode of the implementing object.
      Parameters:
      node - to be used as property root node
    • getPropertyNode

      PropertyTreeNode getPropertyNode(String key)
      Search for a property node within the whole tree of properties. The first node with a given name will be returned. The generic root node cannot be returned. The used search algorithm to iterate the property tree is BFS.
      Parameters:
      key - the name of the property to search for
      Returns:
      the found property node, or null, if there are no properties or no node has this key
    • getAllPropertyNodes

      List<PropertyTreeNode> getAllPropertyNodes(String key)
      Searches for all property nodes within the property tree. The result will never be null (but could be an empty set).
      Parameters:
      key - the key of the property
      Returns:
      a set with the found property nodes
    • getAllProperties

      List<String> getAllProperties(String key)
      Searches for all property values within the property tree. The result will never be null (but could be an empty set).
      Parameters:
      key - the key of the property
      Returns:
      a set with the found property nodes
    • addProperty

      void addProperty(PropertyTreeNode node)
      Add a property to the property tree. This property node (or subtree) will be added right below the generic root.
      Parameters:
      node - the node to be added
    • addProperty

      void addProperty(String name, String value)
      Add a property to the property tree. This property node (or subtree) will be added right below the generic root.
      Parameters:
      name - the name of the node to add
      value - the value of the node to add
      See Also:
    • removeProperty

      String removeProperty(String name)
      Remove any node from the property tree. The first node to be found with this name, will be removed (including all children).
      Parameters:
      name - the name of the node to be removed
      Returns:
      the value of the removed node, or null, if no node could be removed
    • getProperty

      String getProperty(String propertyName)
      Gets the value of the node that has the given name and is found first. If the property does not exists, null will be returned.
      Parameters:
      propertyName - The name of the property.
      Returns:
      The property value or null if the property does not exists.
      See Also:
    • getPropertyNames

      String[] getPropertyNames()
      To receive all properties that are set by addProperty(String, String) use this method. Every name contained in the complete tree will be considered. The result will never be null.
      Returns:
      An array of defined property names.