/** * Similar to {@link #clone()} but whereas a clone is an exact copy (with the same GUID), a duplicate keeps the * same data but with a different identity. * * @since 2.2.3 */ public BaseObject duplicate() { BaseObject object = (BaseObject) clone(); // Set a new GUID for the duplicate object.setGuid(UUID.randomUUID().toString()); return object; }
public void setGuid(String guid) { getBaseObject().setGuid(guid); }
public Object doInHibernate(Session session) throws HibernateException, XWikiException { Query q = session.createQuery("select o from BaseObject o where o.guid is null"); List lst = q.list(); if (lst.size() == 0) { return null; } List<BaseObject> lst2 = new ArrayList<BaseObject>(lst.size()); for (Iterator it = lst.iterator(); it.hasNext();) { BaseObject o = (BaseObject) it.next(); o.setGuid(UUID.randomUUID().toString()); lst2.add(o); } for (BaseObject o : lst2) { session.update(o); } return null; } });
/** * {@inheritDoc} * * @see com.xpn.xwiki.objects.BaseCollection#clone() */ @Override public Object clone() { BaseObject object = (BaseObject) super.clone(); object.setGuid(getGuid()); return object; }
public void readObjectsFromForm(EditForm eform, XWikiContext context) throws XWikiException { for (DocumentReference reference : getXObjects().keySet()) { List<BaseObject> oldObjects = getXObjects(reference); List<BaseObject> newObjects = new ArrayList<BaseObject>(); while (newObjects.size() < oldObjects.size()) { newObjects.add(null); } for (int i = 0; i < oldObjects.size(); i++) { BaseObject oldobject = oldObjects.get(i); if (oldobject != null) { BaseClass baseclass = oldobject.getXClass(context); BaseObject newobject = (BaseObject) baseclass.fromMap(eform.getObject( this.localEntityReferenceSerializer.serialize(baseclass.getDocumentReference()) + "_" + i), oldobject); newobject.setNumber(oldobject.getNumber()); newobject.setGuid(oldobject.getGuid()); newobject.setDocumentReference(getDocumentReference()); newObjects.set(newobject.getNumber(), newobject); } } getXObjects().put(reference, newObjects); } setContentDirty(true); }
cobject.setNumber(object.getNumber()); if (object instanceof BaseObject) { cobject.setGuid(((BaseObject) object).getGuid());
originalObj.setXClassReference(newObj.getXClassReference()); originalObj.setNumber(newObj.getNumber()); originalObj.setGuid(newObj.getGuid()); List<ObjectDiff> dlist = newObj.getDiff(originalObj, context); ObjectDiff addMarker = new ObjectDiff(newObj.getClassName(), newObj.getNumber(),
obj.setGuid(UUID.randomUUID().toString());
@Override public void beginWikiObject(String name, FilterEventParameters parameters) throws WikiStreamException { if (name != null) { this.currentEntityReference = new EntityReference(name, EntityType.OBJECT, this.currentEntityReference); } this.currentXObject = new BaseObject(); int number = getInt(WikiObjectFilter.PARAMETER_NUMBER, parameters, -1); String className = getString(WikiObjectFilter.PARAMETER_CLASS_REFERENCE, parameters, null); if (className == null) { BaseObjectReference reference = new BaseObjectReference(this.currentEntityReference); this.currentXObject.setXClassReference(reference.getXClassReference()); if (number < 0 && reference.getObjectNumber() != null) { number = reference.getObjectNumber(); } } else { this.currentXObject.setClassName(className); } if (number < 0) { this.document.addXObject(this.currentXObject); } else { this.document.setXObject(number, this.currentXObject); } this.currentXObject.setGuid(getString(WikiObjectFilter.PARAMETER_GUID, parameters, null)); }
newobject.setDocumentReference(object.getDocumentReference()); newobject.setNumber(object.getNumber()); newobject.setGuid(object.getGuid()); object = newobject;
/** * Adds an object from an new object creation form. * * @since 2.2.3 */ public BaseObject updateXObjectFromRequest(EntityReference classReference, String prefix, int num, XWikiContext context) throws XWikiException { DocumentReference absoluteClassReference = resolveClassReference(classReference); int nb; BaseObject oldobject = getXObject(absoluteClassReference, num); if (oldobject == null) { nb = createXObject(classReference, context); oldobject = getXObject(absoluteClassReference, nb); } else { nb = oldobject.getNumber(); } BaseClass baseclass = oldobject.getXClass(context); String newPrefix = prefix + this.localEntityReferenceSerializer.serialize(absoluteClassReference) + "_" + nb; BaseObject newobject = (BaseObject) baseclass.fromMap(Util.getObject(context.getRequest(), newPrefix), oldobject); newobject.setNumber(oldobject.getNumber()); newobject.setGuid(oldobject.getGuid()); newobject.setDocumentReference(getDocumentReference()); setXObject(nb, newobject); return newobject; }