summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike')
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/ArrayLikeUtil.java33
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/DoubleArrayAdapter.java3
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/ExtendedArray.java4
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/FeatureVectorAdapter.java8
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/FloatArrayAdapter.java3
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/ListArrayAdapter.java22
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/NumberVectorAdapter.java37
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/SubsetArrayAdapter.java6
-rw-r--r--src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/TDoubleListAdapter.java3
9 files changed, 76 insertions, 43 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/ArrayLikeUtil.java b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/ArrayLikeUtil.java
index f485e214..a08feb1a 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/ArrayLikeUtil.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/ArrayLikeUtil.java
@@ -40,29 +40,29 @@ import de.lmu.ifi.dbs.elki.data.NumberVector;
*/
public final class ArrayLikeUtil {
/**
- * Static instance for lists
+ * Static instance for lists.
*/
private static final ListArrayAdapter<Object> LISTADAPTER = new ListArrayAdapter<Object>();
/**
- * Static instance for lists of numbers
+ * Static instance for lists of numbers.
*/
private static final NumberListArrayAdapter<Number> NUMBERLISTADAPTER = new NumberListArrayAdapter<Number>();
/**
- * Static instance
+ * Static instance.
*/
- private final static IdentityArrayAdapter<?> IDENTITYADAPTER = new IdentityArrayAdapter<Object>();
+ private static final IdentityArrayAdapter<?> IDENTITYADAPTER = new IdentityArrayAdapter<Object>();
/**
- * Static instance
+ * Static instance.
*/
- private static final FeatureVectorAdapter<?> FEATUREVECTORADAPTER = new FeatureVectorAdapter<Number>();
+ public static final FeatureVectorAdapter<?> FEATUREVECTORADAPTER = new FeatureVectorAdapter<Number>();
/**
* Use a number vector in the array API.
*/
- private static final NumberVectorAdapter<?> NUMBERVECTORADAPTER = new NumberVectorAdapter<Double>();
+ public static final NumberVectorAdapter<?> NUMBERVECTORADAPTER = new NumberVectorAdapter<Double>();
/**
* Use a double array in the array API.
@@ -83,6 +83,13 @@ public final class ArrayLikeUtil {
* Use ArrayDBIDs as array.
*/
public static final ArrayDBIDsAdapter ARRAYDBIDADAPTER = new ArrayDBIDsAdapter();
+
+ /**
+ * Fake constructor. Do not instantiate!
+ */
+ private ArrayLikeUtil() {
+ // Do not instantiate
+ }
/**
* Cast the static instance.
@@ -124,7 +131,7 @@ public final class ArrayLikeUtil {
* @return Instance
*/
@SuppressWarnings("unchecked")
- public static <F> FeatureVectorAdapter<F> featureVectorAdapter(FeatureVector<?, F> prototype) {
+ public static <F> FeatureVectorAdapter<F> featureVectorAdapter(FeatureVector<F> prototype) {
return (FeatureVectorAdapter<F>) FEATUREVECTORADAPTER;
}
@@ -135,7 +142,7 @@ public final class ArrayLikeUtil {
* @return Instance
*/
@SuppressWarnings("unchecked")
- public static <N extends Number> NumberVectorAdapter<N> numberVectorAdapter(NumberVector<?, N> prototype) {
+ public static <N extends Number> NumberVectorAdapter<N> numberVectorAdapter(NumberVector<N> prototype) {
return (NumberVectorAdapter<N>) NUMBERVECTORADAPTER;
}
@@ -185,7 +192,7 @@ public final class ArrayLikeUtil {
}
/**
- * Convert a numeric array-like to a <code>double[]</code>
+ * Convert a numeric array-like to a <code>double[]</code>.
*
* @param array Array-like
* @param adapter Adapter
@@ -215,12 +222,12 @@ public final class ArrayLikeUtil {
* @param obj Object to convert
* @return primitive double array
*/
- public static <N extends Number> double[] toPrimitiveDoubleArray(NumberVector<?, N> obj) {
+ public static <N extends Number> double[] toPrimitiveDoubleArray(NumberVector<N> obj) {
return toPrimitiveDoubleArray(obj, numberVectorAdapter(obj));
}
/**
- * Convert a numeric array-like to a <code>float[]</code>
+ * Convert a numeric array-like to a <code>float[]</code>.
*
* @param array Array-like
* @param adapter Adapter
@@ -250,7 +257,7 @@ public final class ArrayLikeUtil {
* @param obj Object to convert
* @return primitive float array
*/
- public static <N extends Number> float[] toPrimitiveFloatArray(NumberVector<?, N> obj) {
+ public static <N extends Number> float[] toPrimitiveFloatArray(NumberVector<N> obj) {
return toPrimitiveFloatArray(obj, numberVectorAdapter(obj));
}
} \ No newline at end of file
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/DoubleArrayAdapter.java b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/DoubleArrayAdapter.java
index 43419103..117f3845 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/DoubleArrayAdapter.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/DoubleArrayAdapter.java
@@ -45,8 +45,9 @@ class DoubleArrayAdapter implements NumberArrayAdapter<Double, double[]> {
}
@Override
+ @Deprecated
public Double get(double[] array, int off) throws IndexOutOfBoundsException {
- return array[off];
+ return Double.valueOf(array[off]);
}
@Override
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/ExtendedArray.java b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/ExtendedArray.java
index a195360b..491c4f95 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/ExtendedArray.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/ExtendedArray.java
@@ -68,13 +68,13 @@ public class ExtendedArray<T> implements ArrayAdapter<T, ExtendedArray<T>> {
@Override
public int size(ExtendedArray<T> array) {
- assert (array == this);
+ assert (this == array);
return size;
}
@Override
public T get(ExtendedArray<T> array, int off) throws IndexOutOfBoundsException {
- assert (array == this);
+ assert (this == array);
if(off == size - 1) {
return extra;
}
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/FeatureVectorAdapter.java b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/FeatureVectorAdapter.java
index 19c2ec19..38b662e8 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/FeatureVectorAdapter.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/FeatureVectorAdapter.java
@@ -34,7 +34,7 @@ import de.lmu.ifi.dbs.elki.data.FeatureVector;
*
* @param <F> Feature type
*/
-public class FeatureVectorAdapter<F> implements ArrayAdapter<F, FeatureVector<?, F>> {
+public class FeatureVectorAdapter<F> implements ArrayAdapter<F, FeatureVector<F>> {
/**
* Constructor.
*
@@ -45,12 +45,12 @@ public class FeatureVectorAdapter<F> implements ArrayAdapter<F, FeatureVector<?,
}
@Override
- public int size(FeatureVector<?, F> array) {
+ public int size(FeatureVector<F> array) {
return array.getDimensionality();
}
@Override
- public F get(FeatureVector<?, F> array, int off) throws IndexOutOfBoundsException {
+ public F get(FeatureVector<F> array, int off) throws IndexOutOfBoundsException {
return array.getValue(off);
}
-} \ No newline at end of file
+}
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/FloatArrayAdapter.java b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/FloatArrayAdapter.java
index 14d42dc5..ae501039 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/FloatArrayAdapter.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/FloatArrayAdapter.java
@@ -46,8 +46,9 @@ class FloatArrayAdapter implements NumberArrayAdapter<Float, float[]> {
}
@Override
+ @Deprecated
public Float get(float[] array, int off) throws IndexOutOfBoundsException {
- return array[off];
+ return Float.valueOf(array[off]);
}
@Override
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/ListArrayAdapter.java b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/ListArrayAdapter.java
index 792fad0b..cba1e706 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/ListArrayAdapter.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/ListArrayAdapter.java
@@ -1,4 +1,26 @@
package de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike;
+/*
+ This file is part of ELKI:
+ Environment for Developing KDD-Applications Supported by Index-Structures
+
+ Copyright (C) 2012
+ Ludwig-Maximilians-Universität München
+ Lehr- und Forschungseinheit für Datenbanksysteme
+ ELKI Development Team
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
import java.util.List;
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/NumberVectorAdapter.java b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/NumberVectorAdapter.java
index c75acd64..fd1e6636 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/NumberVectorAdapter.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/NumberVectorAdapter.java
@@ -1,7 +1,5 @@
package de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike;
-import de.lmu.ifi.dbs.elki.data.NumberVector;
-
/*
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
@@ -25,6 +23,8 @@ import de.lmu.ifi.dbs.elki.data.NumberVector;
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+import de.lmu.ifi.dbs.elki.data.NumberVector;
+
/**
* Adapter to use a feature vector as an array of features.
*
@@ -34,7 +34,7 @@ import de.lmu.ifi.dbs.elki.data.NumberVector;
*
* @param <N> Number type
*/
-public class NumberVectorAdapter<N extends Number> implements NumberArrayAdapter<N, NumberVector<?, N>> {
+public class NumberVectorAdapter<N extends Number> implements NumberArrayAdapter<N, NumberVector<N>> {
/**
* Constructor.
*
@@ -45,42 +45,43 @@ public class NumberVectorAdapter<N extends Number> implements NumberArrayAdapter
}
@Override
- public int size(NumberVector<?, N> array) {
+ public int size(NumberVector<N> array) {
return array.getDimensionality();
}
@Override
- public N get(NumberVector<?, N> array, int off) throws IndexOutOfBoundsException {
+ @Deprecated
+ public N get(NumberVector<N> array, int off) throws IndexOutOfBoundsException {
return array.getValue(off + 1);
}
@Override
- public double getDouble(NumberVector<?, N> array, int off) throws IndexOutOfBoundsException {
- return array.doubleValue(off + 1);
+ public double getDouble(NumberVector<N> array, int off) throws IndexOutOfBoundsException {
+ return array.doubleValue(off);
}
@Override
- public float getFloat(NumberVector<?, N> array, int off) throws IndexOutOfBoundsException {
- return array.floatValue(off + 1);
+ public float getFloat(NumberVector<N> array, int off) throws IndexOutOfBoundsException {
+ return array.floatValue(off);
}
@Override
- public int getInteger(NumberVector<?, N> array, int off) throws IndexOutOfBoundsException {
- return array.intValue(off + 1);
+ public int getInteger(NumberVector<N> array, int off) throws IndexOutOfBoundsException {
+ return array.intValue(off);
}
@Override
- public short getShort(NumberVector<?, N> array, int off) throws IndexOutOfBoundsException {
- return array.shortValue(off + 1);
+ public short getShort(NumberVector<N> array, int off) throws IndexOutOfBoundsException {
+ return array.shortValue(off);
}
@Override
- public long getLong(NumberVector<?, N> array, int off) throws IndexOutOfBoundsException {
- return array.longValue(off + 1);
+ public long getLong(NumberVector<N> array, int off) throws IndexOutOfBoundsException {
+ return array.longValue(off);
}
@Override
- public byte getByte(NumberVector<?, N> array, int off) throws IndexOutOfBoundsException {
- return array.byteValue(off + 1);
+ public byte getByte(NumberVector<N> array, int off) throws IndexOutOfBoundsException {
+ return array.byteValue(off);
}
-} \ No newline at end of file
+}
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/SubsetArrayAdapter.java b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/SubsetArrayAdapter.java
index b2958358..c607759f 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/SubsetArrayAdapter.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/SubsetArrayAdapter.java
@@ -23,7 +23,7 @@ package de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike;
*/
/**
- * Subset array adapter (allows reordering and projection)
+ * Subset array adapter (allows reordering and projection).
*
* @author Erich Schubert
*
@@ -32,12 +32,12 @@ package de.lmu.ifi.dbs.elki.utilities.datastructures.arraylike;
*/
public class SubsetArrayAdapter<T, A> implements ArrayAdapter<T, A> {
/**
- * Wrapped adapter
+ * Wrapped adapter.
*/
ArrayAdapter<T, ? super A> wrapped;
/**
- * Offsets to return
+ * Offsets to return.
*/
int[] offs;
diff --git a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/TDoubleListAdapter.java b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/TDoubleListAdapter.java
index 889c64e8..cee393ac 100644
--- a/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/TDoubleListAdapter.java
+++ b/src/de/lmu/ifi/dbs/elki/utilities/datastructures/arraylike/TDoubleListAdapter.java
@@ -45,8 +45,9 @@ public class TDoubleListAdapter implements NumberArrayAdapter<Double, TDoubleLis
}
@Override
+ @Deprecated
public Double get(TDoubleList array, int off) throws IndexOutOfBoundsException {
- return array.get(off);
+ return Double.valueOf(array.get(off));
}
@Override