Resource model = this.model;
for (final PathElement element : address) {
model = requireChild(model, element, address);
}
if(recursive) {
return model.clone();
} else {
final Resource copy = Resource.Factory.create();
copy.writeModel(model.getModel());
for(final String childType : model.getChildTypes()) {
for(final Resource.ResourceEntry child : model.getChildren(childType)) {