Class ValueChanger

  • All Implemented Interfaces:
    TagValueListener, TagValueWrapper

    public class ValueChanger
    extends SimpleTagValueWrapper

    Intercept the values associated with some tags and change them systematically.

    The two forms of changes that can be made are:

    • replace a single value with a new single value (e.g. changing the string "1.87" into a Double object)
    • split a single value into multiple values and pass each one individualy on to the delegate e.g. "a, b, c" becomes three values "a", "b", "c".

    For a given tag, changers take precendence over splitters, and explicitly registered changers or splitters take precendence over the default handlers. If there is not a specific handler for a tag and there is no default set, then the value is passed on unchanged.

    Since:
    1.2
    Author:
    Matthew Pocock
    • Constructor Detail

      • ValueChanger

        public ValueChanger​(TagValueListener delegate,
                            ChangeTable changeTable)
        Create a new changer that will pass the modified event stream to a delegate.
        Parameters:
        delegate - the TagValueListener that will receive the events
    • Method Detail

      • setDefaultChanger

        public void setDefaultChanger​(ChangeTable.Changer c)
        The changer that will be applied to the values of tags not registered explicitly to any changer or splitter instance.
        Parameters:
        c - the default ChangeTable.Changer
      • getDefaultChanger

        public ChangeTable.Changer getDefaultChanger()
        Get the changer that will be applied to values of tags with no specific handler registered.
        Returns:
        the default ChangeTable.Changer, or null
      • setDefaultSplitter

        public void setDefaultSplitter​(ChangeTable.Splitter s)
        The splitter that will be applied to the values of tags not registered explicitly to any changer or splitter instance.
        Parameters:
        s - the default ChangeTable.Splitter
      • getDefaultSplitter

        public ChangeTable.Splitter getDefaultSplitter()
        Get the splitter that will be applied to values of tags with no specific handler registered.
        Returns:
        the default ChangeTable.Splitter, or null
      • setChangeTable

        public void setChangeTable​(ChangeTable changeTable)