@Override public FloatParameterFilter clone() { FloatParameterFilter clone = new FloatParameterFilter(); clone.setDefaultValue(getDefaultValue()); clone.setKey(getKey()); if (values != null) { clone.values = new ArrayList<Float>(values); } clone.setThreshold(this.threshold); return clone; } }
@Test public void testCloneable() throws Exception { FloatParameterFilter clone = filter.clone(); assertThat(clone.getDefaultValue(), equalTo(filter.getDefaultValue())); assertThat(clone.getValues(), equalTo(filter.getValues())); } }
/** * Add a {@link FloatParameterFilter} set accept anything, replacing any existing filter for the * same parameter. * * @param tileLayerInfo layer to update the filter on * @param paramKey key for the parameter * @param createParam create a new filter if there is none to replace for the specified key */ public static void updateAcceptAllFloatParameterFilter( final GeoServerTileLayerInfo tileLayerInfo, final String paramKey, boolean createParam) { createParam |= tileLayerInfo.removeParameterFilter(paramKey); if (createParam) { FloatParameterFilter filter = new FloatParameterFilter(); filter.setKey(paramKey); filter.setDefaultValue(""); tileLayerInfo.addParameterFilter(filter); } } }
@Override public String apply(@Nullable String str) throws ParameterException { if (str == null || str.length() == 0) { return getDefaultValue(); Iterator<Float> iter = getValues().iterator(); while (iter.hasNext()) { Float fl = iter.next();
@Before public void setUp() { filter = new FloatParameterFilter(); filter.setKey("TEST"); filter.setValues(Arrays.asList(42f, 6.283f, -17.5f)); filter.setDefaultValue("Default"); filter.setThreshold(0.00001f); xs = new GeoWebCacheXStream(); xs = XMLConfiguration.getConfiguredXStream(xs, new StaticWebApplicationContext()); }
regExParam.setRegex(".*"); FloatParameterFilter floatParam = new FloatParameterFilter(); floatParam.setKey("ENV"); floatParam.setThreshold(Float.valueOf(1E-4F)); floatParam.getValues().addAll(Arrays.asList(1f, 1.5f, 2f, 2.5f));
assertNotNull(stringFilter); assertEquals("ELEVATION", floatFilter.getKey()); assertEquals("10.1", floatFilter.getDefaultValue()); assertEquals(1.0E-2f, floatFilter.getThreshold()); assertEquals(ImmutableList.of(new Float(10.1f), new Float(10.2f), new Float(10.3f)), floatFilter.getValues());
@Override public @Nullable List<String> getLegalValues() { List<String> ret = new LinkedList<String>(); Iterator<Float> iter = getValues().iterator(); while (iter.hasNext()) { ret.add(Float.toString(iter.next())); } return ret; }
@Test public void testThreshold() throws Exception { filter.setThreshold(15f); assertThat(filter.getLegalValues(), containsInAnyOrder("42.0", "6.283", "-17.5")); filter.applies(test), Matchers.describedAs("Filter should apply to %0", is(true), test)); assertThat(filter.apply(test), equalTo("42.0")); Float.toString(6.283f + 15f - 0.00001f), Float.toString((6.283f - 17.5f) / 2 + 0.000001f))) { assertThat(filter.apply(test), equalTo("6.283")); Float.toString(-17.5f - 15f + 0.00001f), Float.toString((6.283f - 17.5f) / 2 - 0.000001f))) { assertThat(filter.apply(test), equalTo("-17.5")); filter.applies(test), Matchers.describedAs("Filter should not apply to %0", is(false), test)); try { filter.apply(test); fail(); } catch (Exception ex) { assertThat(filter.apply(null), equalTo("Default")); assertThat(filter.apply(""), equalTo("Default"));
public static void updateAcceptAllFloatParameterFilter(final GeoServerTileLayerInfo info, final String paramKey, boolean createParam) { Set<ParameterFilter> parameterFilters = info.getParameterFilters(); for (Iterator<? extends ParameterFilter> it = parameterFilters.iterator(); it.hasNext();) { ParameterFilter parameterFilter = it.next(); String key = parameterFilter.getKey(); if (paramKey.equalsIgnoreCase(key)) { it.remove(); break; } } if (createParam) { FloatParameterFilter filter = new FloatParameterFilter(); filter.setKey(paramKey); filter.setDefaultValue(""); info.getParameterFilters().add(filter); } }
assertNotNull(stringFilter); assertEquals("ELEVATION", floatFilter.getKey()); assertEquals("10.1", floatFilter.getDefaultValue()); assertEquals(1.0E-2f, floatFilter.getThreshold()); assertEquals(ImmutableList.of(new Float(10.1f), new Float(10.2f), new Float(10.3f)), floatFilter.getValues());
} else if (pf instanceof FloatParameterFilter) { FloatParameterFilter floatFilter = (FloatParameterFilter) pf; if (floatFilter.getValues().isEmpty()) {
} else if (pf instanceof FloatParameterFilter) { FloatParameterFilter floatParam = (FloatParameterFilter) pf; if (floatParam.getValues().isEmpty()) {
} else if (pf instanceof FloatParameterFilter) { FloatParameterFilter floatFilter = (FloatParameterFilter) pf; if (floatFilter.getValues().isEmpty()) {
public void testUpdateAcceptAllFloatParameterFilter() { GeoServerTileLayerInfo info = defaultVectorInfo; TileLayerInfoUtil.updateAcceptAllFloatParameterFilter(info, "ELEVATION", true); ParameterFilter filter = TileLayerInfoUtil.findParameterFilter("ELEVATION", info.getParameterFilters()); assertTrue(filter instanceof FloatParameterFilter); assertEquals(0, ((FloatParameterFilter) filter).getValues().size()); TileLayerInfoUtil.updateAcceptAllFloatParameterFilter(info, "ELEVATION", true); ParameterFilter filter2 = TileLayerInfoUtil.findParameterFilter("ELEVATION", info.getParameterFilters()); assertNotSame(filter, filter2); assertEquals(filter, filter2); TileLayerInfoUtil.updateAcceptAllFloatParameterFilter(info, "ELEVATION", false); assertNull(TileLayerInfoUtil.findParameterFilter("ELEVATION", info.getParameterFilters())); }