List of usage examples for org.springframework.data.mapping PersistentEntity getIdProperty
@Nullable P getIdProperty();
From source file:org.lightadmin.core.util.NamingUtils.java
public static String entityId(DomainTypeAdministrationConfiguration domainTypeAdministrationConfiguration, Object entity) {//from www . j a v a2 s .c o m if (entity == null) { return null; } PersistentEntity persistentEntity = domainTypeAdministrationConfiguration.getPersistentEntity(); PersistentProperty idProperty = persistentEntity.getIdProperty(); BeanWrapper beanWrapper = new DirectFieldAccessFallbackBeanWrapper(entity); return String.valueOf(beanWrapper.getPropertyValue(idProperty.getName())); }
From source file:org.lightadmin.core.web.support.DomainEntityLinks.java
private Serializable idAttributeValue(Object entity, PersistentEntity persistentEntity) { return (Serializable) new DirectFieldAccessFallbackBeanWrapper(entity) .getPropertyValue(persistentEntity.getIdProperty().getName()); }
From source file:org.lightadmin.core.web.support.DynamicRepositoryEntityLinks.java
private Serializable idValue(Object instance, PersistentEntity persistentEntity) { return (Serializable) new DirectFieldAccessFallbackBeanWrapper(instance) .getPropertyValue(persistentEntity.getIdProperty().getName()); }
From source file:org.lightadmin.core.web.support.DynamicPersistentEntityResourceProcessor.java
private String primaryKey(PersistentEntity persistentEntity) { return persistentEntity.getIdProperty().getName(); }
From source file:org.lightadmin.core.persistence.support.DynamicDomainObjectMerger.java
private boolean mathesAny(Collection<Object> collection, final Object item) { final PersistentEntity<?, ?> persistentEntity = configuration.forManagedDomainType(item.getClass()) .getPersistentEntity();/*from w w w . ja v a 2 s. com*/ final PersistentProperty<?> idProperty = persistentEntity.getIdProperty(); return Iterables.any(collection, new Predicate<Object>() { @Override public boolean apply(Object object) { return itemsEqual(object, item, idProperty); } }); }
From source file:org.lightadmin.core.web.ApplicationController.java
private Object findEntityOfDomain(String entityId, String domainTypeName) { DomainTypeAdministrationConfiguration domainTypeConfiguration = configuration.forEntityName(domainTypeName); DynamicJpaRepository repository = domainTypeConfiguration.getRepository(); PersistentEntity persistentEntity = domainTypeConfiguration.getPersistentEntity(); Serializable id = (Serializable) conversionService.convert(entityId, persistentEntity.getIdProperty().getActualType()); return repository.findOne(id); }
From source file:org.springframework.data.rest.webmvc.config.PersistentEntityResourceHandlerMethodArgumentResolver.java
@Override @SuppressWarnings({ "unchecked", "rawtypes" }) public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { RootResourceInformation resourceInformation = resourceInformationResolver.resolveArgument(parameter, mavContainer, webRequest, binderFactory); HttpServletRequest nativeRequest = webRequest.getNativeRequest(HttpServletRequest.class); ServletServerHttpRequest request = new ServletServerHttpRequest(nativeRequest); IncomingRequest incoming = new IncomingRequest(request); Class<?> domainType = resourceInformation.getDomainType(); MediaType contentType = request.getHeaders().getContentType(); for (HttpMessageConverter converter : messageConverters) { if (!converter.canRead(PersistentEntityResource.class, contentType)) { continue; }//from www .j a v a 2s.c o m Serializable id = idResolver.resolveArgument(parameter, mavContainer, webRequest, binderFactory); Object objectToUpdate = getObjectToUpdate(id, resourceInformation); boolean forUpdate = false; Object entityIdentifier = null; PersistentEntity<?, ?> entity = resourceInformation.getPersistentEntity(); if (objectToUpdate != null) { forUpdate = true; entityIdentifier = entity.getIdentifierAccessor(objectToUpdate).getIdentifier(); } Object obj = read(resourceInformation, incoming, converter, objectToUpdate); if (obj == null) { throw new HttpMessageNotReadableException(String.format(ERROR_MESSAGE, domainType)); } if (entityIdentifier != null) { entity.getPropertyAccessor(obj).setProperty(entity.getIdProperty(), entityIdentifier); } Builder build = PersistentEntityResource.build(obj, entity); return forUpdate ? build.build() : build.forCreation(); } throw new HttpMessageNotReadableException(String.format(NO_CONVERTER_FOUND, domainType, contentType)); }
From source file:org.lightadmin.core.web.ApplicationController.java
private Object cloneEntityOfDomain(String entityId, String domainTypeName) { DomainTypeAdministrationConfiguration domainTypeConfiguration = configuration.forEntityName(domainTypeName); DynamicJpaRepository repository = domainTypeConfiguration.getRepository(); PersistentEntity persistentEntity = domainTypeConfiguration.getPersistentEntity(); Serializable id = (Serializable) conversionService.convert(entityId, persistentEntity.getIdProperty().getActualType()); Object found = repository.findOne(id); if (found != null) { try {/* ww w.java 2 s . c om*/ Object newInstance = null; if (found instanceof CloneableEntity) { newInstance = CloneableEntity.class.cast(found).clone(); } else { newInstance = domainTypeConfiguration.getDomainType().newInstance(); BeanUtils.copyProperties(found, newInstance, persistentEntity.getIdProperty().getName()); PropertyDescriptor[] propertyDescriptors = PropertyUtils.getPropertyDescriptors(newInstance); for (PropertyDescriptor propertyDescriptor : propertyDescriptors) { if (propertyDescriptor.getReadMethod() != null && propertyDescriptor.getWriteMethod() != null) { Object value = propertyDescriptor.getReadMethod().invoke(newInstance); Object newValue = null; try { if (value instanceof SortedSet) { newValue = new TreeSet(SortedSet.class.cast(value)); } else if (value instanceof Set) { newValue = new HashSet(Set.class.cast(value)); } else if (value instanceof SortedMap) { newValue = new TreeMap(SortedMap.class.cast(value)); } else if (value instanceof Collection) { newValue = new ArrayList(Collection.class.cast(value)); } else if (value instanceof Map) { newValue = new HashMap(Map.class.cast(value)); } } catch (Throwable t) { if (logger.isWarnEnabled()) { logger.warn("Can't clone " + propertyDescriptor.getName(), t); } } if (newValue != null) { propertyDescriptor.getWriteMethod().invoke(newInstance, newValue); } } } } Object saved = repository.saveAndFlush(newInstance); PersistentProperty idProperty = persistentEntity.getIdProperty(); Field idField = idProperty.getField(); idField.setAccessible(true); return idProperty.usePropertyAccess() ? idProperty.getGetter().invoke(saved) : idField.get(saved); } catch (Throwable t) { throw new RuntimeException(t); } } else { return null; } }