/** * Constructs a filter from a specification. */ public ValueFilterPattern(PrototypeMeasurementFilterSpecification.ValueFilterSpecification spec) { if (spec == null) return; for (PrototypeMeasurementFilterSpecification.TagFilterSpecification tag : spec.getTags()) { this.tags.add(new TagFilterPattern(tag)); } }
@BeforeEach public void setup() { List<PrototypeMeasurementFilterSpecification.TagFilterSpecification> tagsAxBy = Arrays.asList( new PrototypeMeasurementFilterSpecification.TagFilterSpecification("tagA", "X"), new PrototypeMeasurementFilterSpecification.TagFilterSpecification("tagB", "Y")); List<PrototypeMeasurementFilterSpecification.TagFilterSpecification> tagsAyBx = Arrays.asList( new PrototypeMeasurementFilterSpecification.TagFilterSpecification("tagA", "Y"), new PrototypeMeasurementFilterSpecification.TagFilterSpecification("tagB", "X")); List<PrototypeMeasurementFilterSpecification.TagFilterSpecification> tagsAzBy = Arrays.asList( new PrototypeMeasurementFilterSpecification.TagFilterSpecification("tagA", "Z"), new PrototypeMeasurementFilterSpecification.TagFilterSpecification("tagB", "Y")); valueSpecAxBy = new PrototypeMeasurementFilterSpecification.ValueFilterSpecification(); valueSpecAxBy.getTags().addAll(tagsAxBy); valueSpecAyBx = new PrototypeMeasurementFilterSpecification.ValueFilterSpecification(); valueSpecAyBx.getTags().addAll(tagsAyBx); valueSpecAzBy = new PrototypeMeasurementFilterSpecification.ValueFilterSpecification(); valueSpecAzBy.getTags().addAll(tagsAzBy); meterSpecA = new PrototypeMeasurementFilterSpecification.MeterFilterSpecification( Collections.singletonList(valueSpecAxBy)); meterSpecB = new PrototypeMeasurementFilterSpecification.MeterFilterSpecification( Collections.singletonList(valueSpecAyBx)); meterSpecC = new PrototypeMeasurementFilterSpecification.MeterFilterSpecification( Collections.singletonList(valueSpecAzBy)); meterSpecD = new PrototypeMeasurementFilterSpecification.MeterFilterSpecification( Arrays.asList(valueSpecAxBy, valueSpecAyBx)); }
@Test public void loadFromJson() throws IOException { String path = getClass().getResource("/test_measurement_filter.json").getFile(); PrototypeMeasurementFilterSpecification spec = PrototypeMeasurementFilterSpecification.loadFromPath(path); PrototypeMeasurementFilterSpecification specA = new PrototypeMeasurementFilterSpecification(); specA.getInclude().put("meterA", meterSpecA); specA.getInclude().put("meterD", meterSpecD); specA.getInclude().put( "empty", new PrototypeMeasurementFilterSpecification.MeterFilterSpecification( new ArrayList<>())); List<PrototypeMeasurementFilterSpecification.TagFilterSpecification> tagsX = Arrays.asList( new PrototypeMeasurementFilterSpecification.TagFilterSpecification("tagA", "X"), new PrototypeMeasurementFilterSpecification.TagFilterSpecification("tagX", ".*")); PrototypeMeasurementFilterSpecification.ValueFilterSpecification valueSpecX = new PrototypeMeasurementFilterSpecification.ValueFilterSpecification(); valueSpecX.getTags().addAll(tagsX); specA.getExclude().put( ".+", new PrototypeMeasurementFilterSpecification.MeterFilterSpecification( Collections.singletonList(valueSpecX))); Assertions.assertEquals(spec, specA); } }
/** * Constructs a filter from a specification. */ public ValueFilterPattern(PrototypeMeasurementFilterSpecification.ValueFilterSpecification spec) { if (spec == null) return; for (PrototypeMeasurementFilterSpecification.TagFilterSpecification tag : spec.getTags()) { this.tags.add(new TagFilterPattern(tag)); } }