Class DatumFilterChainService

java.lang.Object
net.solarnetwork.service.support.BasicIdentifiable
All Implemented Interfaces:
net.solarnetwork.service.DatumFilterService, net.solarnetwork.service.Identifiable, net.solarnetwork.settings.SettingSpecifierProvider

public class DatumFilterChainService extends BaseDatumFilterSupport implements net.solarnetwork.service.DatumFilterService, net.solarnetwork.settings.SettingSpecifierProvider
A configurable chain of transformer services.

If a staticService is configured then it will be applied first. Then the transformUids will be iterated over and the first matching service found for each value in transformServices will be applied.

Since:
2.0
Version:
1.3
Author:
matt
  • Constructor Details

    • DatumFilterChainService

      public DatumFilterChainService(String settingUid, List<net.solarnetwork.service.DatumFilterService> transformServices)
      Constructor.

      The configurableUid property will be set to true.

      Parameters:
      settingUid - the SettingSpecifierProvider.getSettingUid() value to use
      transformServices - the list of available services
      Throws:
      IllegalArgumentException - if settingUid or transformServices are null
    • DatumFilterChainService

      public DatumFilterChainService(String settingUid, List<net.solarnetwork.service.DatumFilterService> transformServices, boolean configurableUid)
      Constructor.
      Parameters:
      settingUid - the SettingSpecifierProvider.getSettingUid() value to use
      transformServices - the list of available services
      configurableUid - true to support the UID and groupUid values as setting specifiers
      Throws:
      IllegalArgumentException - if settingUid or transformServices are null
    • DatumFilterChainService

      public DatumFilterChainService(String settingUid, List<net.solarnetwork.service.DatumFilterService> transformServices, boolean configurableUid, net.solarnetwork.service.DatumFilterService staticService)
      Constructor.
      Parameters:
      settingUid - the SettingSpecifierProvider.getSettingUid() value to use
      transformServices - the list of available services
      configurableUid - true to support the UID and groupUid values as setting specifiers
      staticService - an optional static service
      Throws:
      IllegalArgumentException - if settingUid or transformServices are null
  • Method Details

    • getSettingUid

      public String getSettingUid()
      Specified by:
      getSettingUid in interface net.solarnetwork.settings.SettingSpecifierProvider
    • getSettingSpecifiers

      public List<net.solarnetwork.settings.SettingSpecifier> getSettingSpecifiers()
      Specified by:
      getSettingSpecifiers in interface net.solarnetwork.settings.SettingSpecifierProvider
    • filter

      public net.solarnetwork.domain.datum.DatumSamplesOperations filter(net.solarnetwork.domain.datum.Datum datum, net.solarnetwork.domain.datum.DatumSamplesOperations samples, Map<String,Object> parameters)
      Specified by:
      filter in interface net.solarnetwork.service.DatumFilterService
    • getTransformUids

      public String[] getTransformUids()
      Get the transform UIDs to use.
      Returns:
      the transform UIDs.
    • setTransformUids

      public void setTransformUids(String[] transformUids)
      Set the transform UIDs to use.

      This list defines the DatumFilterService instances to apply, from the list of available services.

      Parameters:
      transformUids - the UIDs to set
    • getTransformUidsCount

      public int getTransformUidsCount()
      Get the transform UIDs count.
      Returns:
      the number of UIDs to support
    • setTransformUidsCount

      public void setTransformUidsCount(int count)
      Set the transform UIDs count.
      Parameters:
      count - the number of UIDs to support
    • setAlternateDatumFilterServices

      public void setAlternateDatumFilterServices(List<net.solarnetwork.service.DatumFilterService> alternateDatumFilterServices)
      Set the sample transformers to use.

      These are not applied by this class. Rather, if this is set then a read-only setting will be included in getSettingSpecifiers() that lists the configured filters.

      Parameters:
      alternateDatumFilterServices - the transformers to use
    • isIgnoreTransformUids

      public boolean isIgnoreTransformUids()
      Get the ignore transformUids flag.
      Returns:
      true to always apply all available filters in the transformServices property; defaults to false
      Since:
      1.2
    • setIgnoreTransformUids

      public void setIgnoreTransformUids(boolean ignoreTransformUids)
      Set the ignore transformUids flag.
      Parameters:
      ignoreTransformUids - true to always apply all available filters in the transformServices property
      Since:
      1.2