public static void updateStringParameterFilter(final GeoServerTileLayerInfo tileLayerInfo, final String paramKey, boolean createParam, final String defaultValue, final Set<String> allowedValues) { removeParameterFilter(tileLayerInfo, paramKey); if (createParam && allowedValues != null && allowedValues.size() > 0) { // make sure default value is among the list of allowed values Set<String> values = new TreeSet<String>(allowedValues); StringParameterFilter stringListFilter = new StringParameterFilter(); stringListFilter.setKey(paramKey); stringListFilter.setDefaultValue(defaultValue == null ? "" : defaultValue); stringListFilter.getValues().addAll(values); tileLayerInfo.getParameterFilters().add(stringListFilter); } }
/** * Add a {@link StringParameterFilter} to the layer, 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 * @param defaultValue default value * @param allowedValues legal values for the parameter */ public static void updateStringParameterFilter( final GeoServerTileLayerInfo tileLayerInfo, final String paramKey, boolean createParam, final String defaultValue, final Set<String> allowedValues) { createParam |= tileLayerInfo.removeParameterFilter(paramKey); if (createParam && allowedValues != null && allowedValues.size() > 0) { // make sure default value is among the list of allowed values Set<String> values = new TreeSet<String>(allowedValues); StringParameterFilter stringListFilter = new StringParameterFilter(); stringListFilter.setKey(paramKey); stringListFilter.setDefaultValue(defaultValue == null ? "" : defaultValue); values.addAll(stringListFilter.getValues()); stringListFilter.setValues(new ArrayList<String>(values)); tileLayerInfo.addParameterFilter(stringListFilter); } }
public void testRenameAlternateStyle() throws Exception { Set<ParameterFilter> params = new HashSet<ParameterFilter>(); when(mockTileLayerInfo.getParameterFilters()).thenReturn(params); TileLayerInfoUtil.setCachedStyles(mockTileLayerInfo, null, ImmutableSet.of(STYLE_NAME)); assertEquals(1, params.size()); ImmutableSet<String> styles = ImmutableSet.of(STYLE_NAME); when(mockTileLayerInfo.cachedStyles()).thenReturn(styles); listener.handleModifyEvent(styleNameModifyEvent); assertEquals(1, params.size()); ParameterFilter updated = params.iterator().next(); assertTrue(updated instanceof StringParameterFilter); assertEquals(Lists.newArrayList(STYLE_NAME_MODIFIED), ((StringParameterFilter) updated).getValues()); verify(mockTileLayer, times(1)).resetParameterFilters(); verify(mockMediator, times(1)).truncateByLayerAndStyle(eq(PREFIXED_RESOURCE_NAME), eq(STYLE_NAME)); verify(mockMediator, times(1)).save(same(mockTileLayer)); }
@Test public void testCloneable() throws Exception { filter.setNormalize(new CaseNormalizer(Case.UPPER, Locale.ENGLISH)); StringParameterFilter clone = filter.clone(); assertThat(clone.getDefaultValue(), equalTo(filter.getDefaultValue())); assertThat(clone.getValues(), equalTo(filter.getValues())); assertThat( clone.getNormalize().getConfiguredLocale(), equalTo(filter.getNormalize().getConfiguredLocale())); assertThat(clone.getNormalize().getCase(), equalTo(filter.getNormalize().getCase())); } }
strParam.setKey("TIME"); strParam.setDefaultValue("now"); strParam.getValues().addAll(Arrays.asList("today", "yesterday", "tomorrow")); strParam2.setKey("ELEVATION"); strParam2.setDefaultValue("1"); strParam2.getValues().addAll(Arrays.asList("1", "2", "3")); info.getParameterFilters().add(strParam2); testMarshaling(info);