/** * {@inheritDoc} * * @see com.xpn.xwiki.objects.BaseElement#clone() */ @Override public Object clone() { BaseProperty property = (BaseProperty) super.clone(); property.setObject(getObject()); return property; }
public void merge(BaseObject object) { Iterator itfields = object.getPropertyList().iterator(); while (itfields.hasNext()) { String name = (String) itfields.next(); if (safeget(name) == null) { safeput(name, (PropertyInterface) ((BaseElement) object.safeget(name)).clone()); } } }
/** * {@inheritDoc} * * @see com.xpn.xwiki.objects.BaseElement#clone() */ @Override public Object clone() { BaseCollection collection = (BaseCollection) super.clone(); collection.setXClassReference(getRelativeXClassReference()); collection.setNumber(getNumber()); Map fields = getFields(); Map cfields = new HashMap(); for (Object objEntry : fields.entrySet()) { Map.Entry entry = (Map.Entry) objEntry; PropertyInterface prop = (PropertyInterface) ((BaseElement) entry.getValue()).clone(); prop.setObject(collection); cfields.put(entry.getKey(), prop); } collection.setFields(cfields); return collection; }
/** * Overwrite current BaseObject fields with provided one. Only provided non null fields are copied. * * @param sdoc the document to merge. */ public void mergeObject(DefaultXObjectDocument sdoc) { if (getXClassManager() != sdoc.getXClassManager()) { return; } BaseObject obj1 = getBaseObject(true); BaseObject obj2 = sdoc.getBaseObject(false); for (Object fieldNameObj : obj2.getPropertyList()) { String fieldName = (String) fieldNameObj; Object fieldValue2 = obj2.safeget(fieldName); if (fieldValue2 != null) { obj1.safeput(fieldName, (PropertyInterface) ((BaseElement) fieldValue2).clone()); } } }