Class WebComponentBinding<C extends Component>

java.lang.Object
com.vaadin.flow.server.webcomponent.WebComponentBinding<C>
Type Parameters:
C - type of the exported component
All Implemented Interfaces:
Serializable

public final class WebComponentBinding<C extends Component> extends Object implements Serializable
Represents a single instance of a exported web component instance embedded onto a host page. Contains a unique Component instance and property value hosts tied to the specific web component instance. Facilitates property updates from the client to the component.
Since:
2.0
Author:
Vaadin Ltd.
See Also:
  • Constructor Details

  • Method Details

    • updateProperty

      public void updateProperty(String propertyName, Serializable value)
      Updates a property bound to the component. If the property has an attached listener, the value is also delivered to the listener. If the value is null, the property is set to its default value (which could be null).
      Parameters:
      propertyName - name of the property, not null
      value - new value to set for the property
      Throws:
      NullPointerException - if propertyName is null
      IllegalArgumentException - if no bound property can be found for propertyName
    • updateProperty

      public void updateProperty(String propertyName, elemental.json.JsonValue jsonValue)
      Updates a property bound to the component. Converts the jsonValue into the correct type if able and then calls updateProperty(String, java.io.Serializable).
      Parameters:
      propertyName - name of the property, not null
      jsonValue - new value to set for the property
      Throws:
      NullPointerException - if propertyName is null
      IllegalArgumentException - if no bound property can be found for propertyName
      IllegalArgumentException - if the jsonValue cannot be converted to the type of the property identified by propertyName.
    • getComponent

      public C getComponent()
      Retrieves the bound Component instance.
      Returns:
      component instance
    • getPropertyType

      public Class<? extends Serializable> getPropertyType(String propertyName)
      Retrieve the type of a property's value.
      Parameters:
      propertyName - name of the property
      Returns:
      property type
    • hasProperty

      public boolean hasProperty(String propertyName)
      Does the component binding have a property identified by given name.
      Parameters:
      propertyName - name of the property
      Returns:
      has property
    • updatePropertiesToComponent

      public void updatePropertiesToComponent()
      Calls the bound change handlers defined via PropertyConfiguration.onChange(SerializableBiConsumer) for each bound property with the current value of the property.
    • bindProperty

      public void bindProperty(PropertyConfigurationImpl<C,? extends Serializable> propertyConfiguration, boolean overrideDefault, elemental.json.JsonValue startingValue)
      Adds a property to this web component binding based on the propertyConfiguration. If a property with an existing name is bound, the previous binding is removed.
      Parameters:
      propertyConfiguration - property configuration, not null
      overrideDefault - set to true if the property should be initialized with startingValue instead of default value found in PropertyData
      startingValue - starting value for the property. Can be null. overrideDefault must be true for this value to have any effect
      Throws:
      NullPointerException - if propertyConfiguration is null