prop.remove();
}
}
}
AtomicTypeConverter atomicTypeConverter = getAtomicTypeConverter(collectionDescriptor);
try {
Map map = (Map) collection;
ValueFactory valueFactory = session.getValueFactory();
for (Iterator ei = map.entrySet().iterator(); ei.hasNext();) {
Map.Entry entry = (Map.Entry) ei.next();
String name = String.valueOf(entry.getKey());
// verify the property is not an existing protected property
if (parentNode.hasProperty(name)
&& parentNode.getProperty(name).getDefinition().isProtected()) {
continue;
}
Object value = entry.getValue();
if (value instanceof List) {
// multi value
List valueList = (List) value;
Value[] jcrValues = new Value[valueList.size()];
int i = 0;
for (Iterator vi = valueList.iterator(); vi.hasNext();) {
value = vi.next();
jcrValues[i++] = atomicTypeConverter.getValue(
valueFactory, value);
}
parentNode.setProperty(name, jcrValues);
} else {
// single value
Value jcrValue = atomicTypeConverter.getValue(valueFactory,
value);
parentNode.setProperty(name, jcrValue);
}
}
} catch (ValueFormatException vfe) {