Changeset 30308

Show
Ignore:
Timestamp:
02/19/08 19:11:41 (9 months ago)
Author:
bstefanescu
Message:

added clone method to DocumentModel?

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • org.nuxeo.ecm.core/branches/1.4/nuxeo-core-api/src/main/java/org/nuxeo/ecm/core/api/DocumentModel.java

    r29492 r30308  
    600600     */ 
    601601    void setPropertyValue(String xpath, Serializable value) throws PropertyException; 
    602      
     602 
    603603    /** 
    604604     * Returns the flags set on the document model. 
    605      *  
     605     * 
    606606     * @return 
    607607     */ 
    608608    long getFlags(); 
    609609 
     610    /** 
     611     * Clone operation 
     612     * @return 
     613     * @throws CloneNotSupportedException 
     614     */ 
     615    DocumentModel clone() throws CloneNotSupportedException; 
     616 
    610617} 
  • org.nuxeo.ecm.core/branches/1.4/nuxeo-core-api/src/main/java/org/nuxeo/ecm/core/api/impl/DocumentModelImpl.java

    r29591 r30308  
    7373import org.nuxeo.runtime.api.Framework; 
    7474 
     75import com.sun.org.apache.bcel.internal.generic.CPInstruction; 
     76 
    7577/** 
    7678 * @author <a href="mailto:bs@nuxeo.com">Bogdan Stefanescu</a> 
     
    7981 */ 
    8082@SuppressWarnings({ "SuppressionAnnotation" }) 
    81 public class DocumentModelImpl implements DocumentModel
     83public class DocumentModelImpl implements DocumentModel, Cloneable
    8284 
    8385    public static final long F_STORED = 1L; 
     
    14621464    } 
    14631465 
     1466    public DocumentModel clone() throws CloneNotSupportedException { 
     1467        DocumentModelImpl dm = (DocumentModelImpl)super.clone(); 
     1468//      dm.id =id; 
     1469//      dm.acp = acp; 
     1470//      dm.currentLifeCycleState = currentLifeCycleState; 
     1471//      dm.lifeCyclePolicy = lifeCyclePolicy; 
     1472//      dm.declaredSchemas = declaredSchemas; // schemas are immutable so we don't clone the array 
     1473//      dm.flags = flags; 
     1474//      dm.repositoryName = repositoryName; 
     1475//      dm.ref = ref; 
     1476//      dm.parentRef = parentRef; 
     1477//      dm.path = path; // path is immutable 
     1478//      dm.isACPLoaded = isACPLoaded; 
     1479//      dm.prefetch = dm.prefetch; // prefetch can be shared 
     1480//      dm.lock = lock; 
     1481//      dm.sourceId =sourceId; 
     1482//      dm.sid = sid; 
     1483//      dm.type = type; 
     1484        dm.declaredFacets = new HashSet<String>(declaredFacets); // facets should be clones too - they are not immutable 
     1485        // context data is keeping contextual info so it is reseted 
     1486        dm.contextData = new ScopedMap(); 
     1487 
     1488        // copy parts 
     1489        dm.dataModels = new DataModelMapImpl(); 
     1490        for (Map.Entry<String,DataModel> entry : dataModels.entrySet()) { 
     1491                String key = entry.getKey(); 
     1492                DataModel data = entry.getValue(); 
     1493                DataModelImpl newData = new DataModelImpl(key, data.getMap()); 
     1494                dm.dataModels.put(key, newData); 
     1495        } 
     1496        return dm; 
     1497    } 
     1498 
    14641499} 
  • org.nuxeo.ecm.platform/branches/5.1/nuxeo-platform-cache-api/src/main/java/org/nuxeo/ecm/platform/cache/data/DocumentModelGhost.java

    r29493 r30308  
    485485    } 
    486486 
     487    @Override 
     488    public DocumentModel clone() throws CloneNotSupportedException { 
     489        return getDM().clone(); 
     490    } 
     491 
    487492} 
  • org.nuxeo.ecm.platform/branches/5.1/nuxeo-platform-webapp-core/src/main/java/org/nuxeo/ecm/webapp/bulkupdate/FictiveDocumentModel.java

    r29494 r30308  
    4646 * A DocumentModel that can have any schema and is not made persistent by 
    4747 * itself. A mockup to keep arbitrary schema data. 
    48  *  
     48 * 
    4949 * @author DM 
    5050 */ 
     
    9191 
    9292    /** 
    93      *  
     93     * 
    9494     * @param schema 
    9595     * @param create if <code>true</code> creates the dataModel corresponding 
     
    320320    /** 
    321321     * If schema is already registered, leave it so. 
    322      *  
     322     * 
    323323     * @param schemas 
    324324     */ 
     
    397397    } 
    398398 
     399    @Override 
     400    public DocumentModel clone() throws CloneNotSupportedException { 
     401        throw new java.lang.UnsupportedOperationException("not implemented"); 
     402    } 
     403 
    399404}