in src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/ReferenceCollectionConverterImpl.java [103:133]
protected ManageableObjects doGetCollection(Session session,
Node parentNode,
CollectionDescriptor collectionDescriptor,
Class collectionFieldClass) throws RepositoryException {
try {
String jcrName = getCollectionJcrName(collectionDescriptor);
if (!parentNode.hasProperty(jcrName)) {
return null;
}
Property property = parentNode.getProperty(jcrName);
Value[] values = property.getValues();
ManageableObjects objects = ManageableObjectsUtil.getManageableObjects(collectionFieldClass);
for (int i = 0; i < values.length; i++) {
if (objects instanceof ManageableCollection)
((ManageableCollection)objects).addObject(values[i].getString());
else
throw new ObjectContentManagerException(
"Unsupported data type in ReferenceCollectionConverter : " + objects.getClass().getName());
}
return objects;
}
catch(ValueFormatException vfe) {
throw new ObjectContentManagerException("Cannot get the collection field : "
+ collectionDescriptor.getFieldName()
+ "for class " + collectionDescriptor.getClassDescriptor().getClassName(),
vfe);
}
}