Class ShadowRootStateProvider

java.lang.Object
com.vaadin.flow.dom.impl.AbstractNodeStateProvider
com.vaadin.flow.dom.impl.ShadowRootStateProvider
All Implemented Interfaces:
ElementStateProvider, Serializable

public class ShadowRootStateProvider extends AbstractNodeStateProvider
Implementation which handles shadow root nodes.

Only the methods implemented in the AbstractNodeStateProvider are supported (related to the composition).

The data is stored directly in the state node but this should be considered an implementation detail which can change.

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

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

    • ShadowRootStateProvider

      public ShadowRootStateProvider()
  • Method Details

    • get

      public static ShadowRootStateProvider get()
      Gets the one and only instance.
      Returns:
      the instance to use for shadow root nodes
    • createShadowRootNode

      public StateNode createShadowRootNode(StateNode node)
      Create a new shadow root node for the given element node.
      Parameters:
      node - the node to create the shadow root for
      Returns:
      the shadow root node
    • getTag

      public String getTag(StateNode node)
      Description copied from interface: ElementStateProvider
      Gets the tag name for the given node.
      Parameters:
      node - the node containing the data
      Returns:
      the tag name
    • setAttribute

      public void setAttribute(StateNode node, String attribute, String value)
      Description copied from interface: ElementStateProvider
      Sets the given attribute to the given value.
      Parameters:
      node - the node containing the data
      attribute - the attribute name, not null
      value - the attribute value
    • setAttribute

      public void setAttribute(StateNode node, String attribute, AbstractStreamResource resource)
      Description copied from interface: ElementStateProvider
      Sets the given attribute to the given StreamResource value.
      Parameters:
      node - the node containing the data
      attribute - the attribute name, not null
      resource - the attribute value, not null
    • getAttribute

      public String getAttribute(StateNode node, String attribute)
      Description copied from interface: ElementStateProvider
      Gets the value of the given attribute.
      Parameters:
      node - the node containing the data
      attribute - the attribute name, not null
      Returns:
      the attribute value or null if the attribute has not been set
    • hasAttribute

      public boolean hasAttribute(StateNode node, String attribute)
      Description copied from interface: ElementStateProvider
      Checks if the given attribute has been set.
      Parameters:
      node - the node containing the data
      attribute - the attribute name, not null
      Returns:
      true if the attribute has been set, false otherwise
    • removeAttribute

      public void removeAttribute(StateNode node, String attribute)
      Description copied from interface: ElementStateProvider
      Removes the given attribute if it has been set.
      Parameters:
      node - the node containing the data
      attribute - the attribute name, not null
    • getAttributeNames

      public Stream<String> getAttributeNames(StateNode node)
      Description copied from interface: ElementStateProvider
      Gets the defined attribute names.
      Parameters:
      node - the node containing the data
      Returns:
      the defined attribute names
    • addEventListener

      public DomListenerRegistration addEventListener(StateNode node, String eventType, DomEventListener listener)
      Description copied from interface: ElementStateProvider
      Adds a DOM event listener.
      Parameters:
      node - the node containing the data
      eventType - the event type
      listener - the listener
      Returns:
      a handle for configuring or removing the listener
    • getProperty

      public Serializable getProperty(StateNode node, String name)
      Description copied from interface: ElementStateProvider
      Gets the value of the given property.
      Parameters:
      node - the node containing the data
      name - the property name, not null
      Returns:
      the property value, or null if the property has not been set
    • setProperty

      public void setProperty(StateNode node, String name, Serializable value, boolean emitChange)
      Description copied from interface: ElementStateProvider
      Sets the given property to the given value.
      Parameters:
      node - the node containing the data
      name - the property name, not null
      value - the property value
      emitChange - true to create a change event for the client side
    • removeProperty

      public void removeProperty(StateNode node, String name)
      Description copied from interface: ElementStateProvider
      Removes the given property if it has been set.
      Parameters:
      node - the node containing the data
      name - the property name, not null
    • hasProperty

      public boolean hasProperty(StateNode node, String name)
      Description copied from interface: ElementStateProvider
      Checks if the given property has been set.
      Parameters:
      node - the node containing the data
      name - the property name, not null
      Returns:
      true if the property has been set, false otherwise
    • getPropertyNames

      public Stream<String> getPropertyNames(StateNode node)
      Description copied from interface: ElementStateProvider
      Gets the defined property names.
      Parameters:
      node - the node containing the data
      Returns:
      the defined property names
    • isTextNode

      public boolean isTextNode(StateNode node)
      Description copied from interface: ElementStateProvider
      Checks if the state node represents a text node.
      Parameters:
      node - the node to check
      Returns:
      true if the state node represents a text node; otherwise false
    • getTextContent

      public String getTextContent(StateNode node)
      Description copied from interface: ElementStateProvider
      Gets the text content. This is only valid if ElementStateProvider.isTextNode(StateNode) returns true.
      Parameters:
      node - the node containing the data
      Returns:
      the text content
    • setTextContent

      public void setTextContent(StateNode node, String textContent)
      Description copied from interface: ElementStateProvider
      Sets the text content. This is only valid if ElementStateProvider.isTextNode(StateNode) returns true.
      Parameters:
      node - the node containing the data
      textContent - the text content, not null
    • getClassList

      public ClassList getClassList(StateNode node)
      Description copied from interface: ElementStateProvider
      Gets a list representation of all CSS class names set for an element.
      Parameters:
      node - the node containing the data
      Returns:
      the class list, never null
    • getStyle

      public Style getStyle(StateNode node)
      Description copied from interface: ElementStateProvider
      Returns a style instance for managing element inline styles.
      Parameters:
      node - the node containing the data
      Returns:
      the element styles
    • addPropertyChangeListener

      public Registration addPropertyChangeListener(StateNode node, String name, PropertyChangeListener listener)
      Description copied from interface: ElementStateProvider
      Adds a property change listener.
      Parameters:
      node - the node containing the property
      name - the property name to add the listener for
      listener - listener to get notifications about property value changes
      Returns:
      an event registration handle for removing the listener
    • getShadowRoot

      public StateNode getShadowRoot(StateNode node)
      Description copied from interface: ElementStateProvider
      Gets shadow root for the node if it has been attached.
      Parameters:
      node - the node having a shadow root, not null
      Returns:
      the shadow root of the node, may be null
    • attachShadow

      public StateNode attachShadow(StateNode node)
      Description copied from interface: ElementStateProvider
      Attaches the shadow root for the node.
      Parameters:
      node - the node to attach the shadow root
      Returns:
      the shadow root of the node
    • visit

      public void visit(StateNode node, NodeVisitor visitor)
      Description copied from interface: ElementStateProvider
      Visit the node applying visitor to it and its descendants based on the return value from the visitor.
      Parameters:
      node - the node to visit
      visitor - the visitor to apply to the node
    • getProviderFeatures

      protected Class<? extends NodeFeature>[] getProviderFeatures()
      Description copied from class: AbstractNodeStateProvider
      Returns the features supported by the provider.
      Specified by:
      getProviderFeatures in class AbstractNodeStateProvider
      Returns:
      features supported by the provider
    • getNode

      protected Node<?> getNode(StateNode node)
      Description copied from class: AbstractNodeStateProvider
      Gets the flyweight instance for the node supported by the provider.
      Specified by:
      getNode in class AbstractNodeStateProvider
      Parameters:
      node - the node to wrap into flyweight
      Returns:
      the flyweight instance for the node
      See Also:
    • setVisible

      public void setVisible(StateNode node, boolean visible)
      Description copied from interface: ElementStateProvider
      Sets the node visibility.
      Parameters:
      node - the node containing the data
      visible - the node visibility value
    • isVisible

      public boolean isVisible(StateNode node)
      Description copied from interface: ElementStateProvider
      Gets the node visibility.
      Parameters:
      node - the node containing the data
      Returns:
      the node visibility
    • readResolve

      protected Object readResolve() throws ObjectStreamException
      Throws:
      ObjectStreamException