List of usage examples for org.springframework.data.mapping PersistentProperty isMap
boolean isMap();
From source file:org.lightadmin.core.persistence.metamodel.PersistentPropertyType.java
public static PersistentPropertyType forPersistentProperty(PersistentProperty persistentProperty) { final Class<?> attrType = persistentProperty.getType(); if (persistentProperty.isAnnotationPresent(Embedded.class) || persistentProperty.isAnnotationPresent(EmbeddedId.class)) { return PersistentPropertyType.EMBEDDED; }//from w w w. ja v a2s.com if (persistentProperty.isAssociation()) { if (persistentProperty.isCollectionLike()) { return PersistentPropertyType.ASSOC_MULTI; } return PersistentPropertyType.ASSOC; } if (persistentProperty.isMap()) { return PersistentPropertyType.MAP; } if (ClassUtils.isAssignable(Enum.class, attrType)) { return ENUM; } if (forType(attrType) == STRING && persistentProperty.isAnnotationPresent(FileReference.class)) { return PersistentPropertyType.FILE; } if (isOfDateType(persistentProperty)) { return DATE; } if (isOfTimeType(persistentProperty)) { return TIME; } if (isOfDateTimeType(persistentProperty)) { return DATE_TIME; } return forType(attrType); }
From source file:org.lightadmin.core.web.support.DynamicPersistentEntityResourceProcessor.java
private Object associationPropertyValue(Association association, Object instance) { PersistentProperty persistentProperty = association.getInverse(); PersistentEntity persistentEntity = persistentProperty.getOwner(); if (persistentProperty.isMap()) { return null; }//from ww w.j av a2 s .c o m if (persistentProperty.isCollectionLike()) { return associatedPersistentEntities(association, instance); } Object associationValue = beanWrapper(instance).getPropertyValue(persistentProperty.getName()); return associatedPersistentEntity(persistentProperty, associationValue); }
From source file:org.springframework.data.rest.webmvc.json.DomainObjectReader.java
/** * Merges the given {@link ObjectNode} onto the given object. * /* w ww. jav a 2 s.co m*/ * @param root must not be {@literal null}. * @param target must not be {@literal null}. * @param mapper must not be {@literal null}. * @return * @throws Exception */ private <T> T doMerge(ObjectNode root, T target, ObjectMapper mapper) throws Exception { Assert.notNull(root, "Root ObjectNode must not be null!"); Assert.notNull(target, "Target object instance must not be null!"); Assert.notNull(mapper, "ObjectMapper must not be null!"); PersistentEntity<?, ?> entity = entities.getPersistentEntity(target.getClass()); if (entity == null) { return mapper.readerForUpdating(target).readValue(root); } MappedProperties mappedProperties = getJacksonProperties(entity, mapper); for (Iterator<Entry<String, JsonNode>> i = root.fields(); i.hasNext();) { Entry<String, JsonNode> entry = i.next(); JsonNode child = entry.getValue(); if (child.isArray()) { continue; } String fieldName = entry.getKey(); if (!mappedProperties.hasPersistentPropertyForField(fieldName)) { i.remove(); continue; } if (child.isObject()) { PersistentProperty<?> property = mappedProperties.getPersistentProperty(fieldName); if (associationLinks.isLinkableAssociation(property)) { continue; } PersistentPropertyAccessor accessor = entity.getPropertyAccessor(target); Object nested = accessor.getProperty(property); ObjectNode objectNode = (ObjectNode) child; if (property.isMap()) { // Keep empty Map to wipe it as expected if (!objectNode.fieldNames().hasNext()) { continue; } doMergeNestedMap((Map<String, Object>) nested, objectNode, mapper); // Remove potentially emptied Map as values have been handled recursively if (!objectNode.fieldNames().hasNext()) { i.remove(); } continue; } if (nested != null && property.isEntity()) { doMerge(objectNode, nested, mapper); } } } return mapper.readerForUpdating(target).readValue(root); }