Object convertedValue = resolvedValue; boolean convertible = bw.isWritableProperty(propertyName) && !PropertyAccessorUtils.isNestedOrIndexedProperty(propertyName); if (convertible) { convertedValue = convertForProperty(resolvedValue, propertyName, bw, converter);
Object convertedValue = resolvedValue; boolean convertible = bw.isWritableProperty(propertyName) && !PropertyAccessorUtils.isNestedOrIndexedProperty(propertyName); if (convertible) { convertedValue = convertForProperty(resolvedValue, propertyName, bw, converter);
Object convertedValue = resolvedValue; boolean convertible = bw.isWritableProperty(propertyName) && !PropertyAccessorUtils.isNestedOrIndexedProperty(propertyName); if (convertible) { convertedValue = convertForProperty(resolvedValue, propertyName, bw, converter);
/** * Gets the property type for a property name. * * @param objectMetadata the metadata object. * @param propertyName the name of the property. * @return the property type for a property name. */ private Class<?> getPropertyTypeChild(DataObjectMetadata objectMetadata, String propertyName){ if(PropertyAccessorUtils.isNestedOrIndexedProperty(propertyName)){ String attributePrefix = StringUtils.substringBefore(propertyName,"."); String attributeName = StringUtils.substringAfter(propertyName,"."); if(StringUtils.isNotBlank(attributePrefix) && StringUtils.isNotBlank(attributeName) && objectMetadata!= null){ Class<?> propertyType = traverseRelationship(objectMetadata,attributePrefix,attributeName); if(propertyType != null){ return propertyType; } } } return getPropertyType(propertyName); }
@Override public Map<String, String> getInquiryParameters(Object dataObject, List<String> keys, String propertyName) { Map<String, String> inquiryParameters = new HashMap<String, String>(); Class<?> objectClass = ObjectUtils.materializeClassForProxiedObject(dataObject); org.kuali.rice.krad.bo.DataObjectRelationship relationship = dataObjectMetaDataService.getDataObjectRelationship(dataObject, objectClass, propertyName, "", true, false, true); for (String keyName : keys) { String keyConversion = keyName; if (relationship != null) { keyConversion = relationship.getParentAttributeForChildAttribute(keyName); } else if (PropertyAccessorUtils.isNestedOrIndexedProperty(propertyName)) { String nestedAttributePrefix = KRADUtils.getNestedAttributePrefix(propertyName); keyConversion = nestedAttributePrefix + "." + keyName; } inquiryParameters.put(keyConversion, keyName); } return inquiryParameters; }
if (PropertyAccessorUtils.isNestedOrIndexedProperty(attributeName)) { if (ddReference != null) { if (classHasSupportedFeatures(ddReference.getTargetClass(), supportsLookup, supportsInquiry)) {
Object convertedValue = resolvedValue; boolean convertible = bw.isWritableProperty(propertyName) && !PropertyAccessorUtils.isNestedOrIndexedProperty(propertyName); if (convertible) { convertedValue = convertForProperty(resolvedValue, propertyName, bw, converter);
/** * Gets the property type for a property name in a relationship. * * @param objectMetadata the metadata object. * @param attributePrefix the prefix of the property that indicated it was in a relationship. * @param attributeName the name of the property. * @return the property type for a property name. */ private Class<?> traverseRelationship(DataObjectMetadata objectMetadata,String attributePrefix, String attributeName){ DataObjectRelationship rd = objectMetadata.getRelationship(attributePrefix); if(rd != null){ DataObjectMetadata relatedObjectMetadata = dataObjectService.getMetadataRepository().getMetadata(rd.getRelatedType()); if(relatedObjectMetadata != null){ if(PropertyAccessorUtils.isNestedOrIndexedProperty(attributeName)){ return getPropertyTypeChild(relatedObjectMetadata,attributeName); } else{ if(relatedObjectMetadata.getAttribute(attributeName) == null && relatedObjectMetadata.getRelationship(attributeName)!=null){ DataObjectRelationship relationship = relatedObjectMetadata.getRelationship(attributeName); return relationship.getRelatedType(); } return relatedObjectMetadata.getAttribute(attributeName).getDataType().getType(); } } } return null; }