Class NodeFeature

java.lang.Object
com.vaadin.flow.internal.nodefeature.NodeFeature
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
NodeList, NodeMap, NodeValue, ServerSideFeature

public abstract class NodeFeature extends Object implements Serializable
A node feature represents a group of related values and functionality in a state node.

For internal use only. May be renamed or removed in a future release.

Since:
1.0
Author:
Vaadin Ltd
See Also:
  • Constructor Details

    • NodeFeature

      public NodeFeature(StateNode node)
      Creates a new feature for the given node.
      Parameters:
      node - the node which supports the feature
  • Method Details

    • getNode

      public StateNode getNode()
      Gets the node that this feature belongs to.
      Returns:
      the node
    • collectChanges

      public abstract void collectChanges(Consumer<NodeChange> collector)
      Collects all changes that are recorded for this feature.
      Parameters:
      collector - a consumer accepting node changes
    • generateChangesFromEmpty

      public abstract void generateChangesFromEmpty()
      Generates all changes that would be needed to take this node from its initial empty state to its current state.
    • attachPotentialChild

      protected void attachPotentialChild(Object child)
      Attaches an object if it is a StateNode.
      Parameters:
      child - the instance to maybe attach
    • detatchPotentialChild

      protected void detatchPotentialChild(Object child)
      Detaches an object if it is a StateNode.
      Parameters:
      child - the instance to maybe detach
    • forEachChild

      public abstract void forEachChild(Consumer<StateNode> action)
      Passes each child node instance to the given consumer.
      Parameters:
      action - the consumer that accepts each child
    • onAttach

      public void onAttach(boolean initialAttach)
      Called when the state node has been attached to the state tree.
      Parameters:
      initialAttach - true if this is the first time the node is attached to a StateTree, false otherwise
    • onDetach

      public void onDetach()
      Called when the state node has been detached from the state tree.
    • allowsChanges

      public boolean allowsChanges()
      Returns true if the underlying node may report its changes.

      If its return value is false then this node should be considered as "inactive" and should not send any changes to the client side at all or only changes for features that disallow the changes.

      Normally features don't control the node behavior so the default implementation returns true. The feature which wants to control the node behavior should override this method.

      Returns:
      true if the feature allows changes for the node, false otherwise
      See Also: