Class WellKnownAlarmProperties<T>

  • All Implemented Interfaces:
    AlarmProperty<T>, DescriptiveProperty<T>, Property<T>, java.io.Serializable
    Direct Known Subclasses:
    AlarmModeProperties, CommonAlarmProperties

    public abstract class WellKnownAlarmProperties<T>
    extends java.lang.Object
    implements AlarmProperty<T>
    This class is used as a base for enum-like static definitions of AlarmProperties. This is to create objects that are very much like enums, but with full generic type support. In particular, it supports name() and values(), the latter of which will reflectively look for statically defined members in the derived class.
    See Also:
    Serialized Form
    • Constructor Detail

      • WellKnownAlarmProperties

        public WellKnownAlarmProperties()
        Only for serialization.
      • WellKnownAlarmProperties

        protected WellKnownAlarmProperties​(java.lang.String simpleName,
                                           java.lang.Class<T> dtype,
                                           T defaultVal)
      • WellKnownAlarmProperties

        protected WellKnownAlarmProperties​(java.lang.String simpleName,
                                           java.lang.Class<T> dtype,
                                           T defaultVal,
                                           boolean bindable)
    • Method Detail

      • name

        public java.lang.String name()
      • getName

        public java.lang.String getName()
        Description copied from interface: Property
        The "name" of this property. Should be descriptive, but also unique. To this end, it is encouraged to make your keys fully qualified by prefixing them with your module id. For example: "mymod.MyProperty". Properties defined by the system start with "sys."
        Specified by:
        getName in interface Property<T>
      • getType

        public java.lang.Class<T> getType()
        Description copied from interface: Property
        The data type for this property.
        Specified by:
        getType in interface Property<T>
      • isBindable

        public boolean isBindable()
        Description copied from interface: AlarmProperty
        Indicates whether this property is allowed to be bound. If not, only simple values are allowed.
        Specified by:
        isBindable in interface AlarmProperty<T>
      • isAdvanced

        public boolean isAdvanced()
        Description copied from interface: AlarmProperty
        Indicates whether this property should not be shown on basic edit screens.
        Specified by:
        isAdvanced in interface AlarmProperty<T>
      • getDefaultValue

        public T getDefaultValue()
        Description copied from interface: Property
        The default value for new instances of this property, or null if not applicable.
        Specified by:
        getDefaultValue in interface Property<T>
      • values

        protected static AlarmProperty<?>[] values​(java.lang.Class<? extends WellKnownAlarmProperties> c)
        Can be called by an implementation of values() in sub classes to dynamically get the declared static fields.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • 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