@Override public boolean isOldDataObjectInDocument() { boolean isOldDataObjectInExistence = true; if (getDataObject() == null) { isOldDataObjectInExistence = false; } else { // dataObject contains a non persistable wrapper - use agenda from the wrapper object instead Map<String, ?> keyFieldValues = getLegacyDataAdapter().getPrimaryKeyFieldValues( ((AgendaEditor) getDataObject()).getAgenda()); for (Object keyValue : keyFieldValues.values()) { if (keyValue == null) { isOldDataObjectInExistence = false; } else if ((keyValue instanceof String) && StringUtils.isBlank((String) keyValue)) { isOldDataObjectInExistence = false; } if (!isOldDataObjectInExistence) { break; } } } return isOldDataObjectInExistence; }
/** * @see org.kuali.rice.krad.service.PersistenceService#retrieveNonKeyFields(java.lang.Object) */ @Override public void retrieveNonKeyFields(Object persistableObject) { if (persistableObject != null && ExternalizableBusinessObjectUtils.isExternalizableBusinessObject(persistableObject.getClass())) { // // special handling for EBOs // Map<String, ?> criteria = KRADServiceLocatorWeb.getLegacyDataAdapter().getPrimaryKeyFieldValues(persistableObject); if (!CollectionUtils.isEmpty(criteria)) { ModuleService moduleService = getKualiModuleService().getResponsibleModuleService(persistableObject.getClass()); if (moduleService != null) { Class<? extends ExternalizableBusinessObject> clazz = ExternalizableBusinessObjectUtils.determineExternalizableBusinessObjectSubInterface(persistableObject.getClass()); ExternalizableBusinessObject freshEbo = moduleService.getExternalizableBusinessObject(clazz, (Map<String, Object>)criteria); if (freshEbo != null) { BeanUtils.copyProperties(freshEbo, persistableObject); } } } } else { getService(persistableObject.getClass()).retrieveNonKeyFields(persistableObject); } }
Map<String, ?> newPkFields = KRADServiceLocatorWeb.getLegacyDataAdapter().getPrimaryKeyFieldValues(newDataObject);