Author: knguyen
Date: Fri Aug 18 16:47:56 2006
New Revision: 14938

URL: https://svndev.jahia.net/websvn/listing.php?sc=1&rev=14938&repname=jahia
Log:
clone support

Modified:
    trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectDelegate.java
    trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java
    trunk/core/src/java/org/jahia/hibernate/model/JahiaRetentionRule.java
    
trunk/core/src/java/org/jahia/services/timebasedpublishing/BaseRetentionRule.java
    
trunk/core/src/java/org/jahia/services/timebasedpublishing/BaseRetentionRuleDef.java
    
trunk/core/src/java/org/jahia/services/timebasedpublishing/RangeRetentionRule.java
    
trunk/core/src/java/org/jahia/services/timebasedpublishing/RetentionRule.java

Modified: 
trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectDelegate.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectDelegate.java&rev=14938&repname=jahia
==============================================================================
--- trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectDelegate.java 
(original)
+++ trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectDelegate.java 
Fri Aug 18 16:47:56 2006
@@ -27,7 +27,7 @@
  * Time: 15:42:36
  * To change this template use File | Settings | File Templates.
  */
-public class JahiaObjectDelegate implements TimeBasedPublishingState {
+public class JahiaObjectDelegate implements TimeBasedPublishingState, 
Cloneable {
 
     private static org.apache.log4j.Logger logger =
             org.apache.log4j.Logger.getLogger(JahiaObjectDelegate.class);
@@ -117,4 +117,15 @@
         return ( validTo > date );
     }
 
+    public Object clone() throws CloneNotSupportedException {
+        JahiaObjectDelegate clone = new JahiaObjectDelegate();
+        clone.setObjectKey(getObjectKey());
+        clone.setRule((RetentionRule)getRule().clone());
+        clone.setSiteId(getSiteId());
+        clone.setTimeBPState(getTimeBPState());
+        clone.setValidFromDate(getValidFromDate());
+        clone.setValidToDate(getValidToDate());
+        return clone;
+    }
+
 }

Modified: 
trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java&rev=14938&repname=jahia
==============================================================================
--- trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java 
(original)
+++ trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java Fri 
Aug 18 16:47:56 2006
@@ -267,13 +267,23 @@
             } catch (Throwable t) {
             }
         }
-        return jahiaObjectDelegate;
+        try {
+            return (JahiaObjectDelegate)jahiaObjectDelegate.clone();
+        } catch ( Throwable t ) {
+            logger.debug("Exception occured cloning object",t);
+        }
+        return null;
     }
 
     public void addJahiaObjectDelegateInCache(JahiaObjectDelegate 
jahiaObjectDelegate){
         if ( jahiaObjectDelegate == null ){
             return;
         }
+        try {
+            jahiaObjectDelegate = 
(JahiaObjectDelegate)jahiaObjectDelegate.clone();
+        } catch ( Throwable t ){
+            return;
+        }
         if(cache==null) {
             try {
                 cache = cacheService.createCacheInstance(CACHE_NAME);

Modified: trunk/core/src/java/org/jahia/hibernate/model/JahiaRetentionRule.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/hibernate/model/JahiaRetentionRule.java&rev=14938&repname=jahia
==============================================================================
--- trunk/core/src/java/org/jahia/hibernate/model/JahiaRetentionRule.java 
(original)
+++ trunk/core/src/java/org/jahia/hibernate/model/JahiaRetentionRule.java Fri 
Aug 18 16:47:56 2006
@@ -32,7 +32,7 @@
  * @hibernate.class table="jahia_retrule"
  * @hibernate.cache usage="nonstrict-read-write"
  */
-public abstract class JahiaRetentionRule implements Serializable, Cloneable{
+public abstract class JahiaRetentionRule implements Serializable, Cloneable {
 
     private Integer id;
     private JahiaRetentionRuleDef retentionRuleDef;

Modified: 
trunk/core/src/java/org/jahia/services/timebasedpublishing/BaseRetentionRule.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/services/timebasedpublishing/BaseRetentionRule.java&rev=14938&repname=jahia
==============================================================================
--- 
trunk/core/src/java/org/jahia/services/timebasedpublishing/BaseRetentionRule.java
 (original)
+++ 
trunk/core/src/java/org/jahia/services/timebasedpublishing/BaseRetentionRule.java
 Fri Aug 18 16:47:56 2006
@@ -132,4 +132,6 @@
      * @throws Exception
      */
     public abstract boolean deleteJob() throws Exception;    
+    public abstract Object clone() throws CloneNotSupportedException;
+
 }

Modified: 
trunk/core/src/java/org/jahia/services/timebasedpublishing/BaseRetentionRuleDef.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/services/timebasedpublishing/BaseRetentionRuleDef.java&rev=14938&repname=jahia
==============================================================================
--- 
trunk/core/src/java/org/jahia/services/timebasedpublishing/BaseRetentionRuleDef.java
 (original)
+++ 
trunk/core/src/java/org/jahia/services/timebasedpublishing/BaseRetentionRuleDef.java
 Fri Aug 18 16:47:56 2006
@@ -184,4 +184,5 @@
         }
         return null;
     }
+
 }

Modified: 
trunk/core/src/java/org/jahia/services/timebasedpublishing/RangeRetentionRule.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/services/timebasedpublishing/RangeRetentionRule.java&rev=14938&repname=jahia
==============================================================================
--- 
trunk/core/src/java/org/jahia/services/timebasedpublishing/RangeRetentionRule.java
 (original)
+++ 
trunk/core/src/java/org/jahia/services/timebasedpublishing/RangeRetentionRule.java
 Fri Aug 18 16:47:56 2006
@@ -264,6 +264,22 @@
         return rule;
     }
 
+    public Object clone() throws CloneNotSupportedException {
+        RangeRetentionRule clone = new RangeRetentionRule();
+        clone.setComment(getComment());
+        clone.setEnabled(getEnabled());
+        clone.setId(getId());
+        clone.setInherited(getInherited());
+        clone.setNotifiedValidFromDate(this.getNotifiedValidFromDate());
+        clone.setNotifiedValidToDate(this.getNotifiedValidToDate());
+        clone.setRetentionRuleDef(this.getRetentionRuleDef());
+        clone.setShared(getShared());
+        clone.setTitle(getTitle());
+        clone.setValidFromDate(getValidFromDate());
+        clone.setValidToDate(getValidToDate());
+        return clone;
+    }
+
     public boolean equals(Object o) {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;

Modified: 
trunk/core/src/java/org/jahia/services/timebasedpublishing/RetentionRule.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/services/timebasedpublishing/RetentionRule.java&rev=14938&repname=jahia
==============================================================================
--- 
trunk/core/src/java/org/jahia/services/timebasedpublishing/RetentionRule.java 
(original)
+++ 
trunk/core/src/java/org/jahia/services/timebasedpublishing/RetentionRule.java 
Fri Aug 18 16:47:56 2006
@@ -23,7 +23,7 @@
  * Time: 12:53:53
  * To change this template use File | Settings | File Templates.
  */
-public interface RetentionRule {
+public interface RetentionRule extends Cloneable {
 
     /**
      * The rule identifier
@@ -110,4 +110,6 @@
      * @throws Exception
      */
     public boolean deleteJob() throws Exception;
+
+    public Object clone() throws CloneNotSupportedException;
 }

Reply via email to