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;