Package jmri

Class BeanSetting

  • All Implemented Interfaces:
    BeanInterface, PropertyChangeFirer, PropertyChangeProvider, ExpectedState<NamedBean,​java.lang.Integer>

    @Immutable
    public class BeanSetting
    extends NamedBeanExpectedState<NamedBean>
    Represent a NamedBean (such as a Turnout) and specific desired setting for it. These can be used to represent the setting a NamedBean has as part of a particular path through a layout, or a condition that has to be true as part of something.

    Objects of this class are immutable, in that once created the selected bean and required setting cannot be changed. However, the value of the check() method does change, because it's a function of the current bean setting(s).

    • Method Detail

      • check

        public boolean check()
        Convenience method; check if the Bean currently has the desired setting.
        Returns:
        true if bean has expected setting; false otherwise
      • setExpectedState

        public void setExpectedState​(java.lang.Integer state)
        Set the expected state.

        If UnsupportedOperationException is not thrown, this must fire a PropertyChangeEvent with the name "expectedState"

        This implementation requires a non-null parameter.

        This implementation always throws an UnsupportedOperationException since a BeanSetting is immutable.

        Specified by:
        setExpectedState in interface ExpectedState<NamedBean,​java.lang.Integer>
        Overrides:
        setExpectedState in class NamedBeanExpectedState<NamedBean>
        Parameters:
        state - the new expected state
        Throws:
        java.lang.UnsupportedOperationException - if called
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object