diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBIDPair.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBIDPair.java | 94 |
1 files changed, 71 insertions, 23 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBIDPair.java b/src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBIDPair.java index 12e9b685..9c691bc9 100644 --- a/src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBIDPair.java +++ b/src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBIDPair.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.database.ids.integer; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -23,14 +23,16 @@ package de.lmu.ifi.dbs.elki.database.ids.integer; along with this program. If not, see <http://www.gnu.org/licenses/>. */ +import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; import de.lmu.ifi.dbs.elki.database.ids.DBIDPair; +import de.lmu.ifi.dbs.elki.database.ids.DBIDRef; /** * DBID pair using two ints for storage. * * @author Erich Schubert */ -public class IntegerDBIDPair implements DBIDPair { +class IntegerDBIDPair implements DBIDPair, IntegerDBIDs { /** * First value in pair */ @@ -47,7 +49,7 @@ public class IntegerDBIDPair implements DBIDPair { * @param first first parameter * @param second second parameter */ - public IntegerDBIDPair(int first, int second) { + protected IntegerDBIDPair(int first, int second) { this.first = first; this.second = second; } @@ -60,36 +62,18 @@ public class IntegerDBIDPair implements DBIDPair { return "Pair(" + first + ", " + second + ")"; } - /** - * Getter for first - * - * @return first element in pair - */ + @Deprecated @Override public final IntegerDBID getFirst() { return new IntegerDBID(first); } - /** - * Getter for second element in pair - * - * @return second element in pair - */ + @Deprecated @Override public final IntegerDBID getSecond() { return new IntegerDBID(second); } - /** - * Simple equals statement. - * - * This Pair equals another Object if they are identical or if the other - * Object is also a Pair and the {@link #first} and {@link #second} element of - * this Pair equal the {@link #first} and {@link #second} element, - * respectively, of the other Pair. - * - * @param obj Object to compare to - */ @Override public boolean equals(Object obj) { if(this == obj) { @@ -118,4 +102,68 @@ public class IntegerDBIDPair implements DBIDPair { result = prime * result + second; return (int) result; } + + @Override + public int size() { + return 2; + } + + @Override + public boolean contains(DBIDRef o) { + final int i = o.internalGetIndex(); + return (i == first) || (i == second); + } + + @Override + public boolean isEmpty() { + return false; + } + + @Override + public IntegerDBIDIter iter() { + return new Itr(first, second); + } + + /** + * Iterator. + * + * @author Erich Schubert + * + * @apiviz.exclude + */ + private static class Itr implements IntegerDBIDIter { + /** + * State + */ + int first, second, pos; + + /** + * Constructor. + * + * @param first First ID + * @param second Second ID + */ + public Itr(int first, int second) { + super(); + this.first = first; + this.second = second; + this.pos = 0; + } + + @Override + public boolean valid() { + return pos < 2; + } + + @Override + public DBIDIter advance() { + ++pos; + return this; + } + + @Override + public int internalGetIndex() { + return (pos == 0) ? first : second; + } + } }
\ No newline at end of file |