in src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java [132:160]
private Resource createMergedResource(final ResourceResolver resolver, final String relativePath,
final ResourceHolder holder) {
int index = 0;
while (index < holder.resources.size()) {
final Resource baseRes = holder.resources.get(index);
// check if resource is hidden
final ValueMap props = baseRes.getValueMap();
holder.valueMaps.add(props);
if (props.get(MergedResourceConstants.PN_HIDE_RESOURCE, Boolean.FALSE)) {
// clear everything up to now
for (int i = 0; i <= index; i++) {
holder.resources.remove(0);
}
holder.valueMaps.clear();
index = 0; // start at zero
} else {
index++;
}
}
if (!holder.resources.isEmpty()) {
// create a new merged resource based on the list of mapped physical resources
if ( this.readOnly ) {
return new MergedResource(resolver, mergeRootPath, relativePath, holder.resources, holder.valueMaps);
}
return new CRUDMergedResource(resolver, mergeRootPath, relativePath, holder.resources, holder.valueMaps, this.picker);
}
return null;
}