[jboss-cvs] JBossAS SVN: r69993 - in projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi: metadata and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Feb 21 06:35:39 EST 2008


Author: adrian at jboss.org
Date: 2008-02-21 06:35:39 -0500 (Thu, 21 Feb 2008)
New Revision: 69993

Modified:
   projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/helpers/NameAndVersionSupport.java
   projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/metadata/CapabilitiesMetaData.java
   projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java
   projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/metadata/RequirementsMetaData.java
Log:
Make ClassLoadingMetaData Cloneable

Modified: projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/helpers/NameAndVersionSupport.java
===================================================================
--- projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/helpers/NameAndVersionSupport.java	2008-02-21 11:34:40 UTC (rev 69992)
+++ projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/helpers/NameAndVersionSupport.java	2008-02-21 11:35:39 UTC (rev 69993)
@@ -35,7 +35,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
-public class NameAndVersionSupport implements Serializable
+public class NameAndVersionSupport implements Serializable, Cloneable
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = 6943685422194480909L;
@@ -177,4 +177,18 @@
    {
       return getClass().getSimpleName() + " " + getName() + ":" + getVersion();
    }
+
+   @Override
+   public NameAndVersionSupport clone()
+   {
+      try
+      {
+         NameAndVersionSupport clone = (NameAndVersionSupport) super.clone();
+         return clone;
+      }
+      catch (CloneNotSupportedException e)
+      {
+         throw new RuntimeException("Unexpected", e);
+      }
+   }
 }

Modified: projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/metadata/CapabilitiesMetaData.java
===================================================================
--- projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/metadata/CapabilitiesMetaData.java	2008-02-21 11:34:40 UTC (rev 69992)
+++ projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/metadata/CapabilitiesMetaData.java	2008-02-21 11:35:39 UTC (rev 69993)
@@ -40,7 +40,7 @@
  * @version $Revision: 1.1 $
  */
 @XmlType(propOrder= {"capabilities"})
-public class CapabilitiesMetaData implements Serializable
+public class CapabilitiesMetaData implements Serializable, Cloneable
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = -7910704924025591308L;
@@ -103,4 +103,23 @@
          return;
       capabilities.remove(capability);
    }
+
+   @Override
+   public CapabilitiesMetaData clone()
+   {
+      try
+      {
+         CapabilitiesMetaData clone = (CapabilitiesMetaData) super.clone();
+         if (capabilities != null)
+         {
+            List<Capability> clonedCapabilities = new CopyOnWriteArrayList<Capability>(capabilities);
+            clone.setCapabilities(clonedCapabilities);
+         }
+         return clone;
+      }
+      catch (CloneNotSupportedException e)
+      {
+         throw new RuntimeException("Unexpected", e);
+      }
+   }
 }

Modified: projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java
===================================================================
--- projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java	2008-02-21 11:34:40 UTC (rev 69992)
+++ projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/metadata/ClassLoadingMetaData.java	2008-02-21 11:35:39 UTC (rev 69993)
@@ -539,4 +539,13 @@
          return false;
       return one.equals(two);
    }
+
+   @Override
+   public ClassLoadingMetaData clone()
+   {
+      ClassLoadingMetaData clone = (ClassLoadingMetaData) super.clone();
+      requirements = clone.requirements.clone();
+      capabilities = clone.capabilities.clone();
+      return clone;
+   }
 }

Modified: projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/metadata/RequirementsMetaData.java
===================================================================
--- projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/metadata/RequirementsMetaData.java	2008-02-21 11:34:40 UTC (rev 69992)
+++ projects/microcontainer/trunk/classloading/src/main/org/jboss/classloading/spi/metadata/RequirementsMetaData.java	2008-02-21 11:35:39 UTC (rev 69993)
@@ -41,7 +41,7 @@
  * @version $Revision: 1.1 $
  */
 @XmlType(propOrder={"requirements"})
-public class RequirementsMetaData implements Serializable
+public class RequirementsMetaData implements Serializable, Cloneable
 {
    /** The serialVersionUID */
    private static final long serialVersionUID = 3282035888494128833L;
@@ -105,4 +105,23 @@
          return;
       requirements.remove(requirement);
    }
+
+   @Override
+   public RequirementsMetaData clone()
+   {
+      try
+      {
+         RequirementsMetaData clone = (RequirementsMetaData) super.clone();
+         if (requirements != null)
+         {
+            List<Requirement> clonedRequirements = new CopyOnWriteArrayList<Requirement>(requirements);
+            clone.setRequirements(clonedRequirements);
+         }
+         return clone;
+      }
+      catch (CloneNotSupportedException e)
+      {
+         throw new RuntimeException("Unexpected", e);
+      }
+   }
 }




More information about the jboss-cvs-commits mailing list