public static PropertyType getPropertyTypeById(Collection<PropertyType> propertyTypes, String propertyTypeId) { for (PropertyType propertyType : propertyTypes) { if (propertyType.getMetadata().getId().equals(propertyTypeId)) { return propertyType; } } return null; }
public static void resolveValueType(DefinitionsService definitionsService, PropertyType propertyType) { if (propertyType.getValueType() == null) { ValueType valueType = definitionsService.getValueType(propertyType.getValueTypeId()); if (valueType != null) { propertyType.setValueType(valueType); } } }
private void handleExportProperty(StringBuilder sb, Object propertyValue, PropertyType propertyType) { if (propertyValue instanceof Collection && propertyType != null && propertyType.isMultivalued() != null && propertyType.isMultivalued()) { Collection propertyValues = (Collection) propertyValue; Collection encodedValues = new ArrayList(propertyValues.size()); for (Object value : propertyValues) { encodedValues.add(csvEncode(value.toString())); } sb.append(csvEncode(StringUtils.join(encodedValues, ","))); } else { sb.append(csvEncode(propertyValue.toString())); } }
@Override public int compare(PropertyType o1, PropertyType o2) { if (o1.getRank() == o2.getRank()) { return o1.getMetadata().getName().compareTo(o1.getMetadata().getName()); } else if (o1.getRank() < o2.getRank()) { return -1; } else { return 1; } } });
public void setPropertyTypeTarget(URL predefinedPropertyTypeURL, PropertyType propertyType) { if (StringUtils.isBlank(propertyType.getTarget())) { String[] splitPath = predefinedPropertyTypeURL.getPath().split("/"); String target = splitPath[4]; if (StringUtils.isNotBlank(target)) { propertyType.setTarget(target); } } }
logger.error("No valid property type found for propertyTypeId=" + fieldMappingKey); } else { if (propertyType.getValueTypeId() == null) { logger.error("No value type id found for property type " + propertyType.getItemId()); if (propertyType.getValueTypeId().equals("string") || propertyType.getValueTypeId().equals("email") || propertyType.getValueTypeId().equals("date")) { if (BooleanUtils.isTrue(propertyType.isMultivalued())) { String multivalueArray = profileData[fieldsMapping.get(fieldMappingKey)].trim(); if (StringUtils.isNotBlank(multiValueDelimiter) && multiValueDelimiter.length() == 2) { properties.put(fieldMappingKey, singleValue); } else if (propertyType.getValueTypeId().equals("boolean")) { properties.put(fieldMappingKey, new Boolean(profileData[fieldsMapping.get(fieldMappingKey)].trim())); } else if (propertyType.getValueTypeId().equals("integer")) { properties.put(fieldMappingKey, new Integer(profileData[fieldsMapping.get(fieldMappingKey)].trim())); logger.error("Error converting profileData", t); if (fieldMappingKey != null && fieldsMapping.get(fieldMappingKey) != null && profileData != null && profileData[fieldsMapping.get(fieldMappingKey)] != null) { throw new BadProfileDataFormatException("Unable to convert '" + profileData[fieldsMapping.get(fieldMappingKey)].trim() + "' to " + propertyType!=null?propertyType.getValueTypeId():"Null propertyType ", new Throwable("DATA_TYPE")); } else { throw new BadProfileDataFormatException("Unable to find profile data for key " + fieldMappingKey, new Throwable("DATA_TYPE"));
public PropertyTypes(List<PropertyType> allPropertyTypes) { this.allPropertyTypes = new ArrayList<>(allPropertyTypes); propertyTypesById = new HashMap<>(); propertyTypesByTags = new HashMap<>(); propertyTypesBySystemTags = new HashMap<>(); propertyTypesByTarget = new HashMap<>(); for (PropertyType propertyType : allPropertyTypes) { propertyTypesById.put(propertyType.getItemId(), propertyType); for (String propertyTypeTag : propertyType.getMetadata().getTags()) { updateListMap(propertyTypesByTags, propertyType, propertyTypeTag); } for (String propertyTypeSystemTag : propertyType.getMetadata().getSystemTags()) { updateListMap(propertyTypesBySystemTags, propertyType, propertyTypeSystemTag); } updateListMap(propertyTypesByTarget, propertyType, propertyType.getTarget()); } }
Map<String, PropertyType> profilePropertyTypeById = new HashMap<>(); for (PropertyType propertyType : profilePropertyTypes) { profilePropertyTypeById.put(propertyType.getMetadata().getId(), propertyType); String propertyMergeStrategyId = "defaultMergeStrategy"; if (propertyType != null) { if (propertyType.getMergeStrategy() != null && propertyMergeStrategyId.length() > 0) { propertyMergeStrategyId = propertyType.getMergeStrategy();
Object result = targetPropertyValue; if (result == null) { if (propertyType.getValueTypeId() != null) { if (propertyType.getValueTypeId().equals("integer")) { result = new Integer(0); } else if (propertyType.getValueTypeId().equals("long")) { result = new Long(0); } else if (propertyType.getValueTypeId().equals("double")) { result = new Double(0.0); } else if (propertyType.getValueTypeId().equals("float")) { result = new Float(0.0); } else { if (propertyType.getValueTypeId().equals("integer") || (property instanceof Integer)) { result = (Integer) result + (Integer) property; } else if (propertyType.getValueTypeId().equals("long") || (property instanceof Long)) { result = (Long) result + (Long) property; } else if (propertyType.getValueTypeId().equals("double") || (property instanceof Double)) { result = (Double) result + (Double) property; } else if (propertyType.getValueTypeId().equals("float") || (property instanceof Float)) { result = (Float) result + (Float) property; } else {
/** * Creates a new instance of this class containing all property types except the one with given ID. * @param propertyId ID of the property to delete * @return new instance */ public PropertyTypes without(String propertyId) { List<PropertyType> newPropertyTypes = allPropertyTypes.stream() .filter(property -> property.getItemId().equals(propertyId)) .collect(Collectors.toList()); return new PropertyTypes(newPropertyTypes); }
public Collection<PropertyType> getPropertyTypeByMapping(String propertyName) { Collection<PropertyType> l = new TreeSet<PropertyType>(new Comparator<PropertyType>() { @Override public int compare(PropertyType o1, PropertyType o2) { if (o1.getRank() == o2.getRank()) { return o1.getMetadata().getName().compareTo(o1.getMetadata().getName()); } else if (o1.getRank() < o2.getRank()) { return -1; } else { return 1; } } }); for (PropertyType propertyType : propertyTypes.getAll()) { if (propertyType.getAutomaticMappingsFrom() != null && propertyType.getAutomaticMappingsFrom().contains(propertyName)) { l.add(propertyType); } } return l; }
public PropertyTypes(List<PropertyType> allPropertyTypes) { this.allPropertyTypes = new ArrayList<>(allPropertyTypes); propertyTypesById = new HashMap<>(); propertyTypesByTags = new HashMap<>(); propertyTypesBySystemTags = new HashMap<>(); propertyTypesByTarget = new HashMap<>(); for (PropertyType propertyType : allPropertyTypes) { propertyTypesById.put(propertyType.getItemId(), propertyType); for (String propertyTypeTag : propertyType.getMetadata().getTags()) { updateListMap(propertyTypesByTags, propertyType, propertyTypeTag); } for (String propertyTypeSystemTag : propertyType.getMetadata().getSystemTags()) { updateListMap(propertyTypesBySystemTags, propertyType, propertyTypeSystemTag); } updateListMap(propertyTypesByTarget, propertyType, propertyType.getTarget()); } }
@Override public int compare(PropertyType o1, PropertyType o2) { if (o1.getRank() == o2.getRank()) { return o1.getMetadata().getName().compareTo(o1.getMetadata().getName()); } else if (o1.getRank() < o2.getRank()) { return -1; } else { return 1; } } });
Map<String, PropertyType> profilePropertyTypeById = new HashMap<>(); for (PropertyType propertyType : profilePropertyTypes) { profilePropertyTypeById.put(propertyType.getMetadata().getId(), propertyType); String propertyMergeStrategyId = "defaultMergeStrategy"; if (propertyType != null) { if (propertyType.getMergeStrategy() != null && propertyMergeStrategyId.length() > 0) { propertyMergeStrategyId = propertyType.getMergeStrategy();
Object result = targetPropertyValue; if (result == null) { if (propertyType.getValueTypeId() != null) { if (propertyType.getValueTypeId().equals("integer")) { result = new Integer(0); } else if (propertyType.getValueTypeId().equals("long")) { result = new Long(0); } else if (propertyType.getValueTypeId().equals("double")) { result = new Double(0.0); } else if (propertyType.getValueTypeId().equals("float")) { result = new Float(0.0); } else { if (propertyType.getValueTypeId().equals("integer") || (property instanceof Integer)) { result = (Integer) result + (Integer) property; } else if (propertyType.getValueTypeId().equals("long") || (property instanceof Long)) { result = (Long) result + (Long) property; } else if (propertyType.getValueTypeId().equals("double") || (property instanceof Double)) { result = (Double) result + (Double) property; } else if (propertyType.getValueTypeId().equals("float") || (property instanceof Float)) { result = (Float) result + (Float) property; } else {
/** * Creates a new instance of this class containing given property types. * If property types with the same ID existed before, they will be replaced by the new ones. * @param newProperties list of property types to change * @return new instance */ public PropertyTypes with(List<PropertyType> newProperties) { Map<String, PropertyType> updatedProperties = new HashMap<>(); for (PropertyType property : newProperties) { if (propertyTypesById.containsKey(property.getItemId())) { updatedProperties.put(property.getItemId(), property); } } List<PropertyType> newPropertyTypes = Stream.concat( allPropertyTypes.stream().map(property -> updatedProperties.getOrDefault(property.getItemId(), property)), newProperties.stream().filter(property -> !propertyTypesById.containsKey(property.getItemId())) ).collect(Collectors.toList()); return new PropertyTypes(newPropertyTypes); }
public void setPropertyTypeTarget(URL predefinedPropertyTypeURL, PropertyType propertyType) { if (StringUtils.isBlank(propertyType.getTarget())) { String[] splitPath = predefinedPropertyTypeURL.getPath().split("/"); String target = splitPath[4]; if (StringUtils.isNotBlank(target)) { propertyType.setTarget(target); } } }
public Collection<PropertyType> getPropertyTypeByMapping(String propertyName) { Collection<PropertyType> l = new TreeSet<PropertyType>(new Comparator<PropertyType>() { @Override public int compare(PropertyType o1, PropertyType o2) { if (o1.getRank() == o2.getRank()) { return o1.getMetadata().getName().compareTo(o1.getMetadata().getName()); } else if (o1.getRank() < o2.getRank()) { return -1; } else { return 1; } } }); for (PropertyType propertyType : propertyTypes.getAll()) { if (propertyType.getAutomaticMappingsFrom() != null && propertyType.getAutomaticMappingsFrom().contains(propertyName)) { l.add(propertyType); } } return l; }
private Map removePersonalIdentifiersFromSessionProfile(final Map<String, Object> profileProperties) { Set<PropertyType> personalIdsProps = getPropertyTypeBySystemTag(PERSONAL_IDENTIFIER_TAG_NAME); final List personalIdsPropsNames = new ArrayList<String>(); personalIdsProps.forEach(propType -> personalIdsPropsNames.add(propType.getMetadata().getId())); Set propsToRemove = new HashSet<String>(); profileProperties.keySet().forEach(propKey -> { if (personalIdsPropsNames.contains(propKey)) { propsToRemove.add(propKey); } }); propsToRemove.forEach(propId -> profileProperties.remove(propId)); return profileProperties; }
public static void resolveValueType(DefinitionsService definitionsService, PropertyType propertyType) { if (propertyType.getValueType() == null) { ValueType valueType = definitionsService.getValueType(propertyType.getValueTypeId()); if (valueType != null) { propertyType.setValueType(valueType); } } }