final String relativePath,
final List<Resource> mappedResources,
final List<ValueMap> valueMaps) {
this.resolver = resolver;
this.path = (relativePath.length() == 0 ? mergeRootPath : mergeRootPath + "/" + relativePath);
this.properties = new DeepReadValueMapDecorator(this, new MergedValueMap(valueMaps));
this.resourceType = this.properties.get(ResourceResolver.PROPERTY_RESOURCE_TYPE, (relativePath.length() == 0 ? "/" : relativePath));
metadata.put(MergedResourceConstants.METADATA_FLAG, true);
final String[] resourcePaths = new String[mappedResources.size()];
int i = 0;
for(final Resource rsrc : mappedResources) {