/** * New instance of {@link Enforcement} options to be used with connections supporting filtering on their * {@link Source} {@code address}. * * @param requiredFilter the required filter * @param additionalFilters additional filters * @return the enforcement instance */ public static Enforcement newSourceAddressEnforcement(final String requiredFilter, final String... additionalFilters) { return newEnforcement(SOURCE_ADDRESS_ENFORCEMENT, requiredFilter, additionalFilters); }
/** * New instance of {@link Enforcement} options to be used with connections supporting filtering on their * {@link Source} {@code address}. * * @param filters the filters * @return the enforcement instance */ public static Enforcement newSourceAddressEnforcement(final Set<String> filters) { return newEnforcement(SOURCE_ADDRESS_ENFORCEMENT, filters); }
/** * New instance of {@link Enforcement} options to be used with connections supporting filtering on their * {@link Source} {@code address}. * * @param filters the filters * @return the enforcement instance */ public static Enforcement newSourceAddressEnforcement(final Set<String> filters) { return newEnforcement(SOURCE_ADDRESS_ENFORCEMENT, filters); }
/** * New instance of {@link Enforcement} options to be used with connections supporting filtering on their * {@link Source} {@code address}. * * @param requiredFilter the required filter * @param additionalFilters additional filters * @return the enforcement instance */ public static Enforcement newSourceAddressEnforcement(final String requiredFilter, final String... additionalFilters) { return newEnforcement(SOURCE_ADDRESS_ENFORCEMENT, requiredFilter, additionalFilters); }
/** * New instance of {@link Enforcement} options. * * @param input the input that is compared with the filters * @param requiredFilter the required filter * @param additionalFilters additional filters * @return the enforcement instance */ public static Enforcement newEnforcement(final String input, final String requiredFilter, final String... additionalFilters) { final HashSet<String> filters = new HashSet<>(Collections.singletonList(requiredFilter)); filters.addAll(Arrays.asList(additionalFilters)); return newEnforcement(input, filters); }
/** * New instance of {@link Enforcement} options. * * @param input the input that is compared with the filters * @param requiredFilter the required filter * @param additionalFilters additional filters * @return the enforcement instance */ public static Enforcement newEnforcement(final String input, final String requiredFilter, final String... additionalFilters) { final HashSet<String> filters = new HashSet<>(Collections.singletonList(requiredFilter)); filters.addAll(Arrays.asList(additionalFilters)); return newEnforcement(input, filters); }
@Test public void testDeviceIdHeaderMatchesThingId() { final HashMap<String, String> map = new HashMap<>(); map.put("device_id", "eclipse:ditto"); final Enforcement enforcement = ConnectivityModelFactory.newEnforcement("{{ header:device_id }}", "{{ thing:name }}", // does not match "{{ thing:id }}"); // matches final EnforcementFilterFactory<Map<String, String>, String> enforcementFilterFactory = EnforcementFactoryFactory.newEnforcementFilterFactory(enforcement, PlaceholderFactory.newHeadersPlaceholder()); final EnforcementFilter<String> enforcementFilter = enforcementFilterFactory.getFilter(map); enforcementFilter.match("eclipse:ditto", DittoHeaders.empty()); }
private void testSimplePlaceholder(final String inputTemplate, final String filterTemplate, final String inputValue, final String filterValue) { final Enforcement enforcement = ConnectivityModelFactory.newEnforcement(inputTemplate, filterTemplate); final EnforcementFilterFactory<String, String> enforcementFilterFactory = EnforcementFactoryFactory.newEnforcementFilterFactory(enforcement, SimplePlaceholder.INSTANCE); final EnforcementFilter<String> enforcementFilter = enforcementFilterFactory.getFilter(inputValue); enforcementFilter.match(filterValue, DittoHeaders.empty()); }