in src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/URIManipulationFilterExtension.java [281:332]
void handleSelectors(RuntimeObjectModel runtimeObjectModel, SlingUriBuilder requestPathInfo,
Map<String, Object> options) {
if (options.containsKey(SELECTORS)) {
Object selectorsOption = options.get(SELECTORS);
if (selectorsOption == null) {
// we want to remove all selectors
requestPathInfo.setSelectors(null);
} else if (selectorsOption instanceof String) {
String selectorString = (String) selectorsOption;
if ( StringUtils.isBlank(selectorString) ) {
requestPathInfo.setSelectors(null);
} else {
String[] selectorsArray = selectorString.split("\\.");
requestPathInfo.setSelectors(selectorsArray);
}
} else if (selectorsOption instanceof Object[]) {
Object[] selectorsURIArray = (Object[]) selectorsOption;
String[] selectorsArray = new String[selectorsURIArray.length];
int index = 0;
for (Object selector : selectorsURIArray) {
selectorsArray[index++] = runtimeObjectModel.toString(selector);
}
requestPathInfo.setSelectors(selectorsArray);
}
}
Object addSelectorsOption = options.get(ADD_SELECTORS);
if (addSelectorsOption instanceof String) {
String selectorString = (String) addSelectorsOption;
String[] selectorsArray = selectorString.split("\\.");
for(String selector : selectorsArray) {
requestPathInfo.addSelector(selector);
}
} else if (addSelectorsOption instanceof Object[]) {
Object[] selectorsURIArray = (Object[]) addSelectorsOption;
for (Object selector : selectorsURIArray) {
requestPathInfo.addSelector(runtimeObjectModel.toString(selector));
}
}
Object removeSelectorsOption = options.get(REMOVE_SELECTORS);
if (removeSelectorsOption instanceof String) {
String selectorString = (String) removeSelectorsOption;
String[] selectorsArray = selectorString.split("\\.");
for(String selector : selectorsArray) {
requestPathInfo.removeSelector(selector);
}
} else if (removeSelectorsOption instanceof Object[]) {
Object[] selectorsURIArray = (Object[]) removeSelectorsOption;
for (Object selector : selectorsURIArray) {
requestPathInfo.removeSelector(runtimeObjectModel.toString(selector));
}
}
}