Package com.vaadin.flow.dom.impl
Class BasicElementStateProvider
java.lang.Object
com.vaadin.flow.dom.impl.AbstractNodeStateProvider
com.vaadin.flow.dom.impl.BasicElementStateProvider
- All Implemented Interfaces:
ElementStateProvider
,Serializable
Implementation which stores data for basic elements, i.e. elements which are
not bound to any template and have no special functionality.
This should be considered a low level class focusing on performance and leaving most sanity checks to the caller.
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:
-
Method Summary
Modifier and TypeMethodDescriptionaddEventListener
(StateNode node, String eventType, DomEventListener listener) Adds a DOM event listener.addPropertyChangeListener
(StateNode node, String name, PropertyChangeListener listener) Adds a property change listener.attachShadow
(StateNode node) Attaches the shadow root for thenode
.static StateNode
createStateNode
(String tag) Creates a compatible element state node using the giventag
.static BasicElementStateProvider
get()
Gets the one and only instance.getAttribute
(StateNode node, String attribute) Gets the value of the given attribute.getAttributeNames
(StateNode node) Gets the defined attribute names.getClassList
(StateNode node) Gets a list representation of all CSS class names set for an element.static Collection<Class<? extends NodeFeature>>
Gets all the features used by an element node.protected Node<?>
Gets the flyweight instance for thenode
supported by the provider.Gets the parent element.getProperty
(StateNode node, String name) Gets the value of the given property.getPropertyNames
(StateNode node) Gets the defined property names.protected Class<? extends NodeFeature>[]
Returns the features supported by the provider.getShadowRoot
(StateNode node) Gets shadow root for thenode
if it has been attached.Returns a style instance for managing element inline styles.Gets the tag name for the given node.getTextContent
(StateNode node) Gets the text content.boolean
hasAttribute
(StateNode node, String attribute) Checks if the given attribute has been set.boolean
hasProperty
(StateNode node, String name) Checks if the given property has been set.boolean
isTextNode
(StateNode node) Checks if the state node represents a text node.boolean
Gets thenode
visibility.protected Object
void
removeAttribute
(StateNode node, String attribute) Removes the given attribute if it has been set.void
removeProperty
(StateNode node, String name) Removes the given property if it has been set.void
setAttribute
(StateNode node, String attribute, AbstractStreamResource receiver) Sets the given attribute to the givenStreamResource
value.void
setAttribute
(StateNode node, String attribute, String value) Sets the given attribute to the given value.void
setProperty
(StateNode node, String name, Serializable value, boolean emitChange) Sets the given property to the given value.void
setTextContent
(StateNode node, String textContent) Sets the text content.void
setVisible
(StateNode node, boolean visible) Sets thenode
visibility.boolean
Checks if the element state provider supports the given state node.void
visit
(StateNode node, NodeVisitor visitor) Visit thenode
applyingvisitor
to it and its descendants based on the return value from the visitor.Methods inherited from class com.vaadin.flow.dom.impl.AbstractNodeStateProvider
appendVirtualChild, attachExistingElement, getChild, getChildCount, insertChild, removeAllChildren, removeChild, removeChild, visitDescendants
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.vaadin.flow.dom.ElementStateProvider
getComponent, setComponent
-
Method Details
-
get
Gets the one and only instance.- Returns:
- the instance to use for all basic elements
-
createStateNode
Creates a compatible element state node using the giventag
.- Parameters:
tag
- the tag to use for the element- Returns:
- a initialized and compatible state node
-
supports
Description copied from interface:ElementStateProvider
Checks if the element state provider supports the given state node.- Specified by:
supports
in interfaceElementStateProvider
- Overrides:
supports
in classAbstractNodeStateProvider
- Parameters:
node
- the state node to check- Returns:
- true if the element state provider is compatible with the given state node, false otherwise
-
getTag
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
Description copied from interface:ElementStateProvider
Sets the given attribute to the given value.- Parameters:
node
- the node containing the dataattribute
- the attribute name, not nullvalue
- the attribute value
-
getAttribute
Description copied from interface:ElementStateProvider
Gets the value of the given attribute.- Parameters:
node
- the node containing the dataattribute
- the attribute name, not null- Returns:
- the attribute value or null if the attribute has not been set
-
hasAttribute
Description copied from interface:ElementStateProvider
Checks if the given attribute has been set.- Parameters:
node
- the node containing the dataattribute
- the attribute name, not null- Returns:
- true if the attribute has been set, false otherwise
-
removeAttribute
Description copied from interface:ElementStateProvider
Removes the given attribute if it has been set.- Parameters:
node
- the node containing the dataattribute
- the attribute name, not null
-
getAttributeNames
Description copied from interface:ElementStateProvider
Gets the defined attribute names.- Parameters:
node
- the node containing the data- Returns:
- the defined attribute names
-
getParent
Description copied from interface:ElementStateProvider
Gets the parent element.- Specified by:
getParent
in interfaceElementStateProvider
- Overrides:
getParent
in classAbstractNodeStateProvider
- Parameters:
node
- the node containing the data- Returns:
- the parent element or null if the element has no parent
-
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 dataeventType
- the event typelistener
- the listener- Returns:
- a handle for configuring or removing the listener
-
getFeatures
Gets all the features used by an element node.- Returns:
- an unmodifiable collection of feature classes
-
getProperty
Description copied from interface:ElementStateProvider
Gets the value of the given property.- Parameters:
node
- the node containing the dataname
- the property name, not null- Returns:
- the property value, or
null
if the property has not been set
-
setProperty
Description copied from interface:ElementStateProvider
Sets the given property to the given value.- Parameters:
node
- the node containing the dataname
- the property name, notnull
value
- the property valueemitChange
- true to create a change event for the client side
-
removeProperty
Description copied from interface:ElementStateProvider
Removes the given property if it has been set.- Parameters:
node
- the node containing the dataname
- the property name, notnull
-
hasProperty
Description copied from interface:ElementStateProvider
Checks if the given property has been set.- Parameters:
node
- the node containing the dataname
- the property name, notnull
- Returns:
true
if the property has been set,false
otherwise
-
getPropertyNames
Description copied from interface:ElementStateProvider
Gets the defined property names.- Parameters:
node
- the node containing the data- Returns:
- the defined property names
-
isTextNode
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; otherwisefalse
-
getTextContent
Description copied from interface:ElementStateProvider
Gets the text content. This is only valid ifElementStateProvider.isTextNode(StateNode)
returnstrue
.- Parameters:
node
- the node containing the data- Returns:
- the text content
-
setTextContent
Description copied from interface:ElementStateProvider
Sets the text content. This is only valid ifElementStateProvider.isTextNode(StateNode)
returnstrue
.- Parameters:
node
- the node containing the datatextContent
- the text content, not null
-
getClassList
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
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
-
setAttribute
Description copied from interface:ElementStateProvider
Sets the given attribute to the givenStreamResource
value.- Parameters:
node
- the node containing the dataattribute
- the attribute name, not nullreceiver
- the attribute value, not null
-
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 propertyname
- the property name to add the listener forlistener
- listener to get notifications about property value changes- Returns:
- an event registration handle for removing the listener
-
getShadowRoot
Description copied from interface:ElementStateProvider
Gets shadow root for thenode
if it has been attached.- Parameters:
node
- the node having a shadow root, notnull
- Returns:
- the shadow root of the
node
, may be null
-
attachShadow
Description copied from interface:ElementStateProvider
Attaches the shadow root for thenode
.- Parameters:
node
- the node to attach the shadow root- Returns:
- the shadow root of the
node
-
visit
Description copied from interface:ElementStateProvider
Visit thenode
applyingvisitor
to it and its descendants based on the return value from the visitor.- Parameters:
node
- the node to visitvisitor
- the visitor to apply to the node
-
setVisible
Description copied from interface:ElementStateProvider
Sets thenode
visibility.- Parameters:
node
- the node containing the datavisible
- the node visibility value
-
isVisible
Description copied from interface:ElementStateProvider
Gets thenode
visibility.- Parameters:
node
- the node containing the data- Returns:
- the node visibility
-
getNode
Description copied from class:AbstractNodeStateProvider
Gets the flyweight instance for thenode
supported by the provider.- Specified by:
getNode
in classAbstractNodeStateProvider
- Parameters:
node
- the node to wrap into flyweight- Returns:
- the flyweight instance for the
node
- See Also:
-
getProviderFeatures
Description copied from class:AbstractNodeStateProvider
Returns the features supported by the provider.- Specified by:
getProviderFeatures
in classAbstractNodeStateProvider
- Returns:
- features supported by the provider
-
readResolve
- Throws:
ObjectStreamException
-