本文整理汇总了Java中org.springframework.beans.PropertyAccessorUtils.isNestedOrIndexedProperty方法的典型用法代码示例。如果您正苦于以下问题:Java PropertyAccessorUtils.isNestedOrIndexedProperty方法的具体用法?Java PropertyAccessorUtils.isNestedOrIndexedProperty怎么用?Java PropertyAccessorUtils.isNestedOrIndexedProperty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.springframework.beans.PropertyAccessorUtils
的用法示例。
在下文中一共展示了PropertyAccessorUtils.isNestedOrIndexedProperty方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getInquiryParameters
import org.springframework.beans.PropertyAccessorUtils; //导入方法依赖的package包/类
@Override
public Map<String, String> getInquiryParameters(Object dataObject, List<String> keys, String propertyName) {
Map<String, String> inquiryParameters = new HashMap<String, String>();
org.kuali.rice.krad.data.metadata.DataObjectRelationship dataObjectRelationship = null;
DataObjectMetadata objectMetadata =
KRADServiceLocator.getDataObjectService().getMetadataRepository().getMetadata(dataObject.getClass());
if (objectMetadata != null) {
dataObjectRelationship = objectMetadata.getRelationshipByLastAttributeInRelationship(propertyName);
}
for (String keyName : keys) {
String keyConversion = keyName;
if (dataObjectRelationship != null) {
keyConversion = dataObjectRelationship.getParentAttributeNameRelatedToChildAttributeName(keyName);
} else if (PropertyAccessorUtils.isNestedOrIndexedProperty(propertyName)) {
String nestedAttributePrefix = KRADUtils.getNestedAttributePrefix(propertyName);
keyConversion = nestedAttributePrefix + "." + keyName;
}
inquiryParameters.put(keyConversion, keyName);
}
return inquiryParameters;
}
示例2: getPropertyTypeChild
import org.springframework.beans.PropertyAccessorUtils; //导入方法依赖的package包/类
/**
* 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);
}
示例3: traverseRelationship
import org.springframework.beans.PropertyAccessorUtils; //导入方法依赖的package包/类
/**
* 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;
}
示例4: getInquiryParameters
import org.springframework.beans.PropertyAccessorUtils; //导入方法依赖的package包/类
@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;
}
示例5: isPersonProperty
import org.springframework.beans.PropertyAccessorUtils; //导入方法依赖的package包/类
private boolean isPersonProperty(Object bo, String propertyName) {
try {
if (PropertyAccessorUtils.isNestedOrIndexedProperty( propertyName ) // is a nested property
&& !StringUtils.contains(propertyName, "add.") ) {// exclude add line properties (due to path parsing problems in PropertyUtils.getPropertyType)
int lastIndex = PropertyAccessorUtils.getLastNestedPropertySeparatorIndex(propertyName);
String propertyTypeName = lastIndex != -1 ? StringUtils.substring(propertyName, 0, lastIndex) : StringUtils.EMPTY;
Class<?> type = PropertyUtils.getPropertyType(bo, propertyTypeName);
// property type indicates a Person object
if ( type != null ) {
return Person.class.isAssignableFrom(type);
}
LOG.warn( "Unable to determine type of nested property: " + bo.getClass().getName() + " / " + propertyName );
}
} catch (Exception ex) {
if ( LOG.isDebugEnabled() ) {
LOG.debug("Unable to determine if property on " + bo.getClass().getName() + " to a person object: " + propertyName, ex );
}
}
return false;
}
示例6: refreshReferences
import org.springframework.beans.PropertyAccessorUtils; //导入方法依赖的package包/类
/**
* {@inheritDoc}
*/
@Override
public void refreshReferences(String referencesToRefresh) {
Object model = ViewLifecycle.getModel();
for (String reference : StringUtils.split(referencesToRefresh, KRADConstants.REFERENCES_TO_REFRESH_SEPARATOR)) {
if (StringUtils.isBlank(reference)) {
continue;
}
//ToDo: handle add line
if (PropertyAccessorUtils.isNestedOrIndexedProperty(reference)) {
String parentPath = KRADUtils.getNestedAttributePrefix(reference);
Object parentObject = ObjectPropertyUtils.getPropertyValue(model, parentPath);
String referenceObjectName = KRADUtils.getNestedAttributePrimitive(reference);
if (parentObject == null) {
LOG.warn("Unable to refresh references for " + referencesToRefresh +
". Object not found in model. Nothing refreshed.");
continue;
}
refreshReference(parentObject, referenceObjectName);
} else {
refreshReference(model, reference);
}
}
}
示例7: validateReferenceExistsAndIsActive
import org.springframework.beans.PropertyAccessorUtils; //导入方法依赖的package包/类
/**
* @see org.kuali.rice.krad.service.DictionaryValidationService#validateReferenceExistsAndIsActive(java.lang.Object
* dataObject,
* String, String, String)
*/
@Override
public boolean validateReferenceExistsAndIsActive(Object dataObject, String referenceName,
String attributeToHighlightOnFail, String displayFieldName) {
// if we're dealing with a nested attribute, we need to resolve down to the BO where the primitive attribute is located
// this is primarily to deal with the case of a defaultExistenceCheck that uses an "extension", i.e referenceName
// would be extension.attributeName
if (PropertyAccessorUtils.isNestedOrIndexedProperty(referenceName)) {
String nestedAttributePrefix = KRADUtils.getNestedAttributePrefix(referenceName);
String nestedAttributePrimitive = KRADUtils.getNestedAttributePrimitive(referenceName);
Object nestedObject = KradDataServiceLocator.getDataObjectService().wrap(dataObject)
.getPropertyValueNullSafe(nestedAttributePrefix);
return validateReferenceExistsAndIsActive(nestedObject, nestedAttributePrimitive,
attributeToHighlightOnFail, displayFieldName);
}
boolean hasReferences = validateFkFieldsPopulated(dataObject, referenceName);
boolean referenceExists = hasReferences && validateReferenceExists(dataObject, referenceName);
boolean canIncludeActiveReference = referenceExists && (!(dataObject instanceof Inactivatable) ||
((Inactivatable) dataObject).isActive());
boolean referenceActive = canIncludeActiveReference && validateReferenceIsActive(dataObject, referenceName);
if(hasReferences && !referenceExists) {
GlobalVariables.getMessageMap().putError(attributeToHighlightOnFail, RiceKeyConstants.ERROR_EXISTENCE,
displayFieldName);
return false;
} else if(canIncludeActiveReference && !referenceActive) {
GlobalVariables.getMessageMap().putError(attributeToHighlightOnFail, RiceKeyConstants.ERROR_INACTIVE,
displayFieldName);
return false;
}
return true;
}
示例8: getPropertyType
import org.springframework.beans.PropertyAccessorUtils; //导入方法依赖的package包/类
@Override
/**
* Recursively calls getPropertyTypeChild if nested property to allow it to properly look it up
*/
public Class<?> getPropertyType(Object object, String propertyName) {
DataObjectWrapper<?> wrappedObject = dataObjectService.wrap(object);
if (PropertyAccessorUtils.isNestedOrIndexedProperty(propertyName)) {
return wrappedObject.getPropertyTypeNullSafe(wrappedObject.getWrappedClass(), propertyName);
}
return wrappedObject.getPropertyType(propertyName);
}