Class SampleNameFilter

  • All Implemented Interfaces:
    Predicate<java.lang.String>

    public class SampleNameFilter
    extends java.lang.Object
    implements Predicate<java.lang.String>
    Filter samples (i.e. time series) by name.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static Predicate<java.lang.String> ALLOW_ALL
      For convenience, a filter that allows all names.
      private java.util.Collection<java.lang.String> nameDoesNotStartWith  
      private java.util.Collection<java.lang.String> nameIsEqualTo  
      private java.util.Collection<java.lang.String> nameIsNotEqualTo  
      private java.util.Collection<java.lang.String> nameStartsWith  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private SampleNameFilter​(java.util.Collection<java.lang.String> nameIsEqualTo, java.util.Collection<java.lang.String> nameIsNotEqualTo, java.util.Collection<java.lang.String> nameStartsWith, java.util.Collection<java.lang.String> nameDoesNotStartWith)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Predicate<java.lang.String> and​(Predicate<? super java.lang.String> other)
      Replacement for Java 8's Predicate.and() for compatibility with Java versions < 8.
      private boolean matchesNameDoesNotStartWith​(java.lang.String metricName)  
      private boolean matchesNameEqualTo​(java.lang.String metricName)  
      private boolean matchesNameNotEqualTo​(java.lang.String metricName)  
      private boolean matchesNameStartsWith​(java.lang.String metricName)  
      static Predicate<java.lang.String> restrictToNamesEqualTo​(Predicate<java.lang.String> filter, java.util.Collection<java.lang.String> allowedNames)
      Helper method to compose a filter such that Sample names must match the existing filter and be in the list of allowedNames This should be used to implement the names[] query parameter in HTTP exporters.
      static java.util.List<java.lang.String> stringToList​(java.lang.String s)
      Helper method to deserialize a delimiter-separated list of Strings into a List<String>.
      boolean test​(java.lang.String sampleName)  
      • Methods inherited from class java.lang.Object

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

      • ALLOW_ALL

        public static final Predicate<java.lang.String> ALLOW_ALL
        For convenience, a filter that allows all names.
      • nameIsEqualTo

        private final java.util.Collection<java.lang.String> nameIsEqualTo
      • nameIsNotEqualTo

        private final java.util.Collection<java.lang.String> nameIsNotEqualTo
      • nameStartsWith

        private final java.util.Collection<java.lang.String> nameStartsWith
      • nameDoesNotStartWith

        private final java.util.Collection<java.lang.String> nameDoesNotStartWith
    • Constructor Detail

      • SampleNameFilter

        private SampleNameFilter​(java.util.Collection<java.lang.String> nameIsEqualTo,
                                 java.util.Collection<java.lang.String> nameIsNotEqualTo,
                                 java.util.Collection<java.lang.String> nameStartsWith,
                                 java.util.Collection<java.lang.String> nameDoesNotStartWith)
    • Method Detail

      • test

        public boolean test​(java.lang.String sampleName)
        Specified by:
        test in interface Predicate<java.lang.String>
      • and

        public Predicate<java.lang.String> and​(Predicate<? super java.lang.String> other)
        Replacement for Java 8's Predicate.and() for compatibility with Java versions < 8.
      • matchesNameEqualTo

        private boolean matchesNameEqualTo​(java.lang.String metricName)
      • matchesNameNotEqualTo

        private boolean matchesNameNotEqualTo​(java.lang.String metricName)
      • matchesNameStartsWith

        private boolean matchesNameStartsWith​(java.lang.String metricName)
      • matchesNameDoesNotStartWith

        private boolean matchesNameDoesNotStartWith​(java.lang.String metricName)
      • stringToList

        public static java.util.List<java.lang.String> stringToList​(java.lang.String s)
        Helper method to deserialize a delimiter-separated list of Strings into a List<String>.

        delimiter is one of , ; \t \n.

        This is implemented here so that exporters can provide a consistent configuration format for lists of allowed names.

      • restrictToNamesEqualTo

        public static Predicate<java.lang.String> restrictToNamesEqualTo​(Predicate<java.lang.String> filter,
                                                                         java.util.Collection<java.lang.String> allowedNames)
        Helper method to compose a filter such that Sample names must
        • match the existing filter
        • and be in the list of allowedNames
        This should be used to implement the names[] query parameter in HTTP exporters.
        Parameters:
        filter - may be null, indicating that the resulting filter should just filter by allowedNames.
        allowedNames - may be null or empty, indicating that filter is returned unmodified.
        Returns:
        a filter combining the exising filter and the allowedNames, or null if both parameters were null.