- NodeIterator valuesIt = childNode.getNodes();
- while (valuesIt.hasNext()) {
- Node lstValueNode = valuesIt.nextNode();
- Object lstValue = nodeToBean(lstValueNode);
- lst.add(lstValue);
+ if (childNode.hasNodes()) {
+ // Look for children nodes
+ NodeIterator valuesIt = childNode.getNodes();
+ while (valuesIt.hasNext()) {
+ Node lstValueNode = valuesIt.nextNode();
+ Object lstValue = nodeToBean(lstValueNode);
+ lst.add(lstValue);
+ }
+ } else {
+ // look for a property with the same name which will
+ // provide
+ // primitives
+ Property childProp = childNode.getProperty(childNode
+ .getName());
+ Class<?> valuesClass = classFromProperty(childProp);
+ if (valuesClass != null)
+ if (childProp.getDefinition().isMultiple())
+ for (Value value : childProp.getValues()) {
+ lst.add(asObject(value, valuesClass));
+ }
+ else
+ lst.add(asObject(childProp.getValue(),
+ valuesClass));