private EntityData correctBooleanValues(DefaultEntityData entityData) { boolean value; HashMap<String, Object> properties = (HashMap<String, Object>) entityData.getMap();
@SuppressWarnings("unchecked") @Override public Map<String, Object> asMap() { return (Map<String, Object>) cloneDeepMap((Map<String, Object>) properties, associationProperties); }
private EntityData getEntityDataAfterCaseChange(EntityData ed, List<String> selectedList, String entityName) { if(ed == null) return null; Map<String, Object> initial = ed.asMap(); for(String selectedProp : selectedList) { if(initial.containsKey(selectedProp.toUpperCase())) { initial.put(selectedProp, initial.remove(selectedProp.toUpperCase())); } } return EntityData.createFromMap(initial, ((DefaultEntityData)ed).getEntityMetadata().getKeyNames(), entityName); }
@Override public EntityData buildEntityData(String name) { List<String> flattenedElements = new ArrayList<>(); for(String element : elementTypes.keySet()) { ElementType type = elementTypes.get(element); if(type.equals(ElementType.SIMPLE_TYPE)) flattenedElements.add(element); else { HashMap<String, Object> value = (HashMap<String, Object>) properties.get(element); flattenedElements.addAll(getFlattenedElementsFromHashMap(element, value)); } } DefaultEntityMetadata em = new DefaultEntityMetadata() .setEntityName(name) .setElements(elements) .setKeys(keys) .setNamespace(namespace) .setElementTypes(elementTypes) .setFlattenedElements(flattenedElements); if(associationProperties.size() > 0){ return new DefaultEntityData(properties, associationProperties, em); }else{ return new DefaultEntityData(properties, em); } }
private static Object cloneDeepMap(Map<String, Object> properties, Map<String,Object> associationProperties) { HashMap<String, Object> cloned = (HashMap<String, Object>)cloneMap(properties); if(associationProperties == null || associationProperties.isEmpty()){ return cloned; if(item instanceof EntityData){ EntityData entityData = (EntityData) item; cnvList.add(cloneDeepMap(entityData.getMap(), entityData.getAssociations())); cloned.put(entry.getKey(), cnvList); }else { cnvList.add(cloneProperty(item)); cloned.put(entry.getKey(), cnvList); cloned.put(entry.getKey(), cloneDeepMap(entityData.getMap(), entityData.getAssociations())); }else{ cloned.put(entry.getKey(), cloneProperty(obj));
public <T> T as(Class<T> t) throws DataConversionException { Map<String, Object> copy = this.asMap(); ObjectMapper mapper = new ObjectMapper(); /*-- Ignore Null Values --*/ mapper.configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false); /*-- do not fail on empty beans --*/ mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); /*-- First: hide all elements in the class ; make property,getter,setter hidden --*/ mapper.setVisibility(PropertyAccessor.ALL, Visibility.NONE); /*-- Second: now only make the properties discoverable --*/ mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY); mapper.setSerializationInclusion(Include.NON_NULL); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); T pojo; try { pojo = (T) mapper.convertValue(copy, Class.forName(t.getTypeName())); } catch (IllegalArgumentException | ClassNotFoundException e) { throw new DataConversionException( e.getMessage(), e.getCause()); } return pojo; }
private List<EntityData> getEntityDataListFromDataProvider(IDataProviderResponse result, UriInfo uriInfo) throws EdmException { EntityMetadata em = null; List<EntityData> entityDataList = new ArrayList<EntityData>(); if (em == null && uriInfo != null) { em = new EntityMetadataV2(uriInfo.getTargetEntitySet()); } if(result.getResultEntities()!=null) { for (int i = 0; i < result.getResultEntities().size(); i++) { Map<String, Object> properties = result.getResultEntities().get(i); convertGUIDtoStringForAfter(properties); entityDataList.add(new DefaultEntityData(properties, em)); } } return entityDataList; }
return new DefaultEntityData(properties, associationProperties, em);
httpMethod = "PUT"; List<String> properties = em.getFlattenedElementNames(); Map<String, Object> startingMap = ((DefaultEntityData) ed).getMap(); Map<String, Object> targetMap = null; String targetProperty = null;
private EntityData getEntityDataFromDataProvider(IDataProviderResponse result, UriInfo uriInfo) throws EdmException { Map<String, Object> properties = new HashMap<String, Object>(); EntityMetadata em = null; if (result != null && result.getResultEntity() != null) { properties = result.getResultEntity(); convertGUIDtoStringForAfter(properties); } if (em == null && uriInfo != null) { em = new EntityMetadataV2(uriInfo.getTargetEntitySet()); } return new DefaultEntityData(properties, em); }