You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by sr...@apache.org on 2009/03/08 11:22:52 UTC

svn commit: r751397 - in /lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common: BitSet.java FastMap.java FastSet.java

Author: srowen
Date: Sun Mar  8 10:22:52 2009
New Revision: 751397

URL: http://svn.apache.org/viewvc?rev=751397&view=rev
Log:
Made some stuff Cloneable for later use

Modified:
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/BitSet.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/FastMap.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/FastSet.java

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/BitSet.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/BitSet.java?rev=751397&r1=751396&r2=751397&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/BitSet.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/BitSet.java Sun Mar  8 10:22:52 2009
@@ -22,7 +22,7 @@
 /**
  * A simplified and streamlined version of {@link java.util.BitSet}.
  */
-final class BitSet implements Serializable {
+final class BitSet implements Serializable, Cloneable {
 
   private final long[] bits;
 
@@ -50,9 +50,19 @@
   }
 
   void clear() {
-    for (int i = 0; i < bits.length; i++) {
+    int length = bits.length;
+    for (int i = 0; i < length; i++) {
       bits[i] = 0L;
     }
   }
 
+  @Override
+  public BitSet clone() {
+    try {
+      return (BitSet) super.clone();
+    } catch (CloneNotSupportedException cnse) {
+      throw new AssertionError();
+    }
+  }
+
 }

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/FastMap.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/FastMap.java?rev=751397&r1=751396&r2=751397&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/FastMap.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/FastMap.java Sun Mar  8 10:22:52 2009
@@ -39,7 +39,7 @@
  *
  * <p>This implementation does not allow <code>null</code> as a key or value.</p>
  */
-public final class FastMap<K, V> implements Map<K, V>, Serializable {
+public final class FastMap<K, V> implements Map<K, V>, Serializable, Cloneable {
 
   public static final int NO_MAX_SIZE = Integer.MAX_VALUE;
 
@@ -324,6 +324,23 @@
     numEntries--;
   }
 
+  @Override
+  public FastMap<K,V> clone() {
+    FastMap<K,V> clone;
+    try {
+      clone = (FastMap<K,V>) super.clone();
+    } catch (CloneNotSupportedException cnse) {
+      throw new AssertionError();
+    }
+    int length = keys.length;
+    clone.keys = (K[]) new Object[length];
+    clone.values = (V[]) new Object[length];
+    System.arraycopy(keys, 0, clone.keys, 0, length);
+    System.arraycopy(values, 0, clone.values,  0, length);
+    clone.recentlyAccessed = countingAccesses ? new BitSet(length) : null;
+    return clone;
+  }
+
   private final class EntrySet extends AbstractSet<Entry<K, V>> {
 
     @Override

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/FastSet.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/FastSet.java?rev=751397&r1=751396&r2=751397&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/FastSet.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/FastSet.java Sun Mar  8 10:22:52 2009
@@ -39,7 +39,7 @@
  *
  * @see FastMap
  */
-public final class FastSet<K> implements Set<K>, Serializable {
+public final class FastSet<K> implements Set<K>, Serializable, Cloneable {
 
   /**
    * Dummy object used to represent a key that has been removed.
@@ -281,6 +281,19 @@
     return count;
   }
 
+  @Override
+  public FastSet<K> clone() {
+    FastSet<K> clone;
+    try {
+      clone = (FastSet<K>) super.clone();
+    } catch (CloneNotSupportedException cnse) {
+      throw new AssertionError();
+    }
+    clone.keys = (K[]) new Object[keys.length];
+    System.arraycopy(keys, 0, clone.keys, 0, keys.length);
+    return clone;
+  }
+
   private final class KeyIterator implements Iterator<K> {
 
     private int position;