Class PropertyBase<T,K>

java.lang.Object
com.codename1.properties.PropertyBase<T,K>
Direct Known Subclasses:
CollectionProperty, MapProperty, Property

public class PropertyBase<T,K> extends Object
Base class for property types
  • Constructor Details

    • PropertyBase

      protected PropertyBase(String name)

      All properties must have a name

      Parameters
      • name: the name of the property
    • PropertyBase

      protected PropertyBase(String name, Class genericType)

      All properties must have a name, a generic type is helpful

      Parameters
      • name: the name of the property

      • genericType: the property type to workaround issues with erasure

  • Method Details

    • bindGlobalSetListener

      public static void bindGlobalSetListener(PropertyChangeListener listener)

      Binds an event callback for set calls and property mutation

      Parameters
      • listener: will be invoked whenever any mutable property is changed
      Throws
      • RuntimeException: if a set listener is already bound, there can be only one per application
      Deprecated

      Usage of this method isn't recommended, it's designed for internal use

    • bindGlobalGetListener

      public static void bindGlobalGetListener(PropertyChangeListener listener)

      Binds an event callback for get calls and property reads

      Parameters
      • listener: will be invoked whenever any property is read
      Throws
      • RuntimeException: if a get listener is already bound, there can be only one per application
      Deprecated

      Usage of this method isn't recommended, it's designed for internal use

    • getName

      public String getName()

      The property name is immutable and can't be changed after creation it should match the parent field name by convention

      Returns

      the property name;

    • firePropertyChanged

      protected void firePropertyChanged()
      Delivers the property change event to listeners if applicable
    • stopListening

      public void stopListening()
      This method will work when invoked from a propertyChanged callback and should be similar to removePropertyChangeListener(this). It's useful for lambda's where this means the base class and not the listener so removePropertyChangeListener(this) won't do what we want unless we convert to an inner class
    • addChangeListener

      public void addChangeListener(PropertyChangeListener<T,K> pl)

      Fires a notification that a property value changed to the given listener

      Parameters
      • pl: the listener
    • removeChangeListener

      public void removeChangeListener(PropertyChangeListener<T,K> pl)

      Removes the property change listener from the list of listeners

      Parameters
      • pl: the change listener
    • putClientProperty

      public void putClientProperty(String key, Object o)

      Places a property that will apply statically to all instances of this property

      Parameters
      • key: the key to put

      • o: the value object

    • getClientProperty

      public Object getClientProperty(String key)

      Returns the client property set to this property name

      Parameters
      • key: the key of the property
      Returns

      the value that was previously placed with put client property

    • equals

      public boolean equals(Object obj)

      Compares this property to another property

      Parameters
      • obj: the other property
      Returns

      true if they are equal in name and value

      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()

      Default toString that provides easier debug information

      Returns

      a formatted representation of the property for debugging

      Overrides:
      toString in class Object
    • getGenericType

      public Class getGenericType()

      Returns the generic type of this property if it is known or null

      Returns

      the generic type

    • getLabel

      public String getLabel()

      The label of the property defaults to its name but can be changed to anything

      Returns

      the label for the property

    • setLabel

      public void setLabel(String label)

      The label of the property defaults to its name but can be changed to anything, it can be used when binding a property to UI elements

      Parameters
      • label: the new label value
    • validateCollectionType

      protected final void validateCollectionType(Class elementType)

      Validates that the collection type is valid and throws an exception otherwise

      Parameters
      • elementType: the generic type of the collection