in src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/URIManipulationFilterExtension.java [347:381]
private boolean handleParameters(
RuntimeObjectModel runtimeObjectModel,
Map<String, Collection<String>> parameters,
Map<String, Object> options) {
boolean hasModifiedParameters = false;
if (options.containsKey(QUERY)) {
Object queryOption = options.get(QUERY);
parameters.clear();
Map<String, Object> queryParameters = runtimeObjectModel.toMap(queryOption);
addQueryParameters(runtimeObjectModel, parameters, queryParameters);
hasModifiedParameters = true;
}
Object addQueryOption = options.get(ADD_QUERY);
if (addQueryOption != null) {
Map<String, Object> addParams = runtimeObjectModel.toMap(addQueryOption);
addQueryParameters(runtimeObjectModel, parameters, addParams);
hasModifiedParameters = true;
}
Object removeQueryOption = options.get(REMOVE_QUERY);
if (removeQueryOption != null) {
if (removeQueryOption instanceof String) {
parameters.remove(removeQueryOption);
} else if (removeQueryOption instanceof Object[]) {
Object[] removeQueryParamArray = (Object[]) removeQueryOption;
for (Object param : removeQueryParamArray) {
String paramString = runtimeObjectModel.toString(param);
if (paramString != null) {
parameters.remove(paramString);
}
}
}
hasModifiedParameters = true;
}
return hasModifiedParameters;
}