in src/main/java/org/apache/sling/resourceresolver/impl/mapping/ResourceMapperImpl.java [236:263]
private List<String> readAliases(String path, Resource current) {
if (this.mapEntries.isOptimizeAliasResolutionEnabled()) {
logger.debug("map: Optimize Alias Resolution is Enabled");
String parentPath = ResourceUtil.getParent(path);
if ( parentPath == null )
return Collections.emptyList();
final Map<String, String> aliases = mapEntries.getAliasMap(parentPath);
if ( aliases == null || !aliases.containsValue(current.getName()) )
return Collections.emptyList();
return aliases.entrySet().stream()
.filter( e -> current.getName().contentEquals(e.getValue()) )
.map( Entry::getKey )
.collect(Collectors.toList());
} else {
logger.debug("map: Optimize Alias Resolution is Disabled");
String[] aliases = ResourceResolverControl.getProperty(current, ResourceResolverImpl.PROP_ALIAS, String[].class);
if ( aliases == null || aliases.length == 0 )
return Collections.emptyList();
if ( aliases.length == 1 )
return Collections.singletonList(aliases[0]);
return Arrays.asList(aliases);
}
}