Package jmri.beans

Class UnboundBean

  • All Implemented Interfaces:
    BeanInterface
    Direct Known Subclasses:
    Bean, UnboundArbitraryBean

    public abstract class UnboundBean
    extends java.lang.Object
    implements BeanInterface
    Generic implementation of BeanInterface without support for arbitrary properties defined at runtime.

    NOTE This class does not implement PropertyChangeSupport. Subclass Bean if you need to support property change listeners.

    • Constructor Summary

      Constructors 
      Constructor Description
      UnboundBean()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object getIndexedProperty​(java.lang.String key, int index)
      Get value of element at index of property array key.
      java.lang.Object getProperty​(java.lang.String key)
      Get the value of property key.
      java.util.Set<java.lang.String> getPropertyNames()
      Return a list of property names.
      boolean hasIndexedProperty​(java.lang.String key)
      Test that a property exists and is indexed.
      boolean hasProperty​(java.lang.String key)
      Test if a property exists.
      void setIndexedProperty​(java.lang.String key, int index, java.lang.Object value)
      Set element at index of property array key to value.
      void setProperty​(java.lang.String key, java.lang.Object value)
      Set property key to value.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getIndexedProperty

        public java.lang.Object getIndexedProperty​(java.lang.String key,
                                                   int index)
        Get value of element at index of property array key.

        This implementation calls a read method for the indexed property using JavaBeans introspection, and assumes, based on JavaBeans coding patterns, that the read method has the following parameter: index. Note that this method returns null instead of throwing ArrayIndexOutOfBoundsException if the index is invalid since the Java introspection methods provide no reliable way to get the size of the indexed property.

        Specified by:
        getIndexedProperty in interface BeanInterface
        Parameters:
        key - name of the property
        index - index of the property element to change
        Returns:
        value of element or null
      • hasIndexedProperty

        public boolean hasIndexedProperty​(java.lang.String key)
        Description copied from interface: BeanInterface
        Test that a property exists and is indexed.

        NOTE Implementing method must not call Bean.hasIndexedProperty(), as doing so will cause a stack overflow. Implementing methods may call Beans.hasIntrospectedIndexedProperty() instead.

        Specified by:
        hasIndexedProperty in interface BeanInterface
        Parameters:
        key - name of the property
        Returns:
        true is property key exists and is indexed
      • setIndexedProperty

        public void setIndexedProperty​(java.lang.String key,
                                       int index,
                                       java.lang.Object value)
        Set element at index of property array key to value.

        This implementation calls a write method for the indexed property using JavaBeans introspection, and assumes, based on JavaBeans coding patterns, that the write method has the following two parameters in order: index, value.

        Specified by:
        setIndexedProperty in interface BeanInterface
        Parameters:
        key - name of the property
        index - index of the property element to change
        value - the value to set the property to
        See Also:
        BeanInterface.setIndexedProperty(java.lang.String, int, java.lang.Object)