@Override public List<ObjectDiff> getDiff(Object oldObject, XWikiContext context) { ArrayList<ObjectDiff> difflist = new ArrayList<ObjectDiff>(); BaseClass oldClass = (BaseClass) oldObject; for (PropertyClass newProperty : (Collection<PropertyClass>) getFieldList()) { String propertyName = newProperty.getName(); PropertyClass oldProperty = (PropertyClass) oldClass.get(propertyName); String propertyType = newProperty.getClassType(); if (oldProperty == null) { difflist.add( new ObjectDiff( getXClassReference(), getNumber(), "", ObjectDiff.ACTION_PROPERTYADDED, propertyName, propertyType, "", "")); } else if (!oldProperty.equals(newProperty)) { difflist.add( new ObjectDiff( getXClassReference(), getNumber(), "", ObjectDiff.ACTION_PROPERTYCHANGED, propertyName, propertyType, "", "")); } } for (PropertyClass oldProperty : (Collection<PropertyClass>) oldClass.getFieldList()) { String propertyName = oldProperty.getName(); PropertyClass newProperty = (PropertyClass) get(propertyName); String propertyType = oldProperty.getClassType(); if (newProperty == null) { difflist.add( new ObjectDiff( getXClassReference(), getNumber(), "", ObjectDiff.ACTION_PROPERTYREMOVED, propertyName, propertyType, "", "")); } } return difflist; }
public BaseCollection fromValueMap(Map<String, ?> map, BaseCollection object) { for (PropertyClass property : (Collection<PropertyClass>) getFieldList()) { String name = property.getName(); Object formvalue = map.get(name); if (formvalue != null) { BaseProperty objprop; objprop = property.fromValue(formvalue); if (objprop != null) { objprop.setObject(object); object.safeput(name, objprop); } } } return object; }
public BaseCollection fromMap(Map<String, ?> map, BaseCollection object) { for (PropertyClass property : (Collection<PropertyClass>) getFieldList()) { String name = property.getName(); Object formvalues = map.get(name); if (formvalues != null) { BaseProperty objprop; if (formvalues instanceof String[]) { objprop = property.fromStringArray(((String[]) formvalues)); } else { objprop = property.fromString(formvalues.toString()); } if (objprop != null) { objprop.setObject(object); object.safeput(name, objprop); } } } return object; }
/** * Get the list of disabled properties that exist in a given object. This list is a subset of all * the disabled properties in a class, since the object could have been created and stored before * some of the class properties were added. The resulting list is unmodifiable, but the contained * elements are live. * * @param object the instance of this class where the disabled properties must exist * @return an unmodifiable list containing the disabled properties of the given object * @see PropertyClass#isDisabled() * @since 2.4M2 */ public List<PropertyClass> getDisabledObjectProperties(BaseObject object) { List<PropertyClass> disabledProperties = getDisabledProperties(); if (disabledProperties == null) { return Collections.emptyList(); } List<PropertyClass> disabledObjectProperties = new ArrayList<PropertyClass>(disabledProperties.size()); for (PropertyClass property : disabledProperties) { try { if (object.get(property.getName()) != null) { disabledObjectProperties.add(property); } } catch (XWikiException ex) { // Not really gonna happen } } return Collections.unmodifiableList(disabledObjectProperties); }