throw new ValidationException(msg);
}
if (primaryType.isNodeType(JcrMixLexicon.REFERENCEABLE)) referenceable = true;
// The process the mixin types ...
Property mixinTypesProperty = graphProperties.get(JcrLexicon.MIXIN_TYPES);
List<Name> mixinTypeNames = null;
if (mixinTypesProperty != null && !mixinTypesProperty.isEmpty()) {
for (Object mixinTypeValue : mixinTypesProperty) {
Name mixinTypeName = nameFactory.create(mixinTypeValue);
if (mixinTypeNames == null) mixinTypeNames = new LinkedList<Name>();
mixinTypeNames.add(mixinTypeName);
JcrNodeType mixinType = nodeTypes().getNodeType(mixinTypeName);
if (mixinType == null) continue;
if (!referenceable && mixinType.isNodeType(JcrMixLexicon.REFERENCEABLE)) referenceable = true;
}
}
// Create the set of multi-valued property names ...
Set<Name> multiValuedPropertyNames = EMPTY_NAMES;
Set<Name> newSingleMultiPropertyNames = null;
Property multiValuedPropNamesProp = graphProperties.get(DnaIntLexicon.MULTI_VALUED_PROPERTIES);
if (multiValuedPropNamesProp != null && !multiValuedPropNamesProp.isEmpty()) {
multiValuedPropertyNames = getSingleMultiPropertyNames(multiValuedPropNamesProp, location);
}
// Create the JCR Node payload object ...
JcrNodePayload nodePayload = new JcrNodePayload(SessionCache.this, node, primaryTypeName, mixinTypeNames,