diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBIDVar.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBIDVar.java | 81 |
1 files changed, 46 insertions, 35 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBIDVar.java b/src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBIDVar.java index 57d400df..9120c0d7 100644 --- a/src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBIDVar.java +++ b/src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBIDVar.java @@ -23,8 +23,10 @@ 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.ArrayDBIDs; import de.lmu.ifi.dbs.elki.database.ids.DBID; import de.lmu.ifi.dbs.elki.database.ids.DBIDRef; +import de.lmu.ifi.dbs.elki.database.ids.DBIDUtil; import de.lmu.ifi.dbs.elki.database.ids.DBIDVar; import de.lmu.ifi.dbs.elki.logging.LoggingUtil; @@ -87,13 +89,13 @@ class IntegerDBIDVar implements DBIDVar, IntegerDBIDs { } @Override - public IntegerDBIDArrayIter iter() { - return new DBIDItr(); + public int size() { + return 1; } @Override - public int size() { - return 1; + public boolean isEmpty() { + return false; } @Override @@ -107,6 +109,35 @@ class IntegerDBIDVar implements DBIDVar, IntegerDBIDs { return id == o.internalGetIndex(); } + @Override + public void assignVar(int i, DBIDVar var) { + if (var instanceof IntegerDBIDVar) { + ((IntegerDBIDVar) var).internalSetIndex(i); + } else { + // Much less efficient: + var.set(get(i)); + } + } + + @Override + public ArrayDBIDs slice(int begin, int end) { + if (begin == 0 && end == 1) { + return this; + } else { + return DBIDUtil.EMPTYDBIDS; + } + } + + @Override + public String toString() { + return Integer.toString(id); + } + + @Override + public Itr iter() { + return new Itr(); + } + /** * Pseudo iterator for DBIDs interface. * @@ -114,53 +145,53 @@ class IntegerDBIDVar implements DBIDVar, IntegerDBIDs { * * @apiviz.exclude */ - protected class DBIDItr implements IntegerDBIDArrayIter, IntegerDBIDRef { + protected class Itr implements IntegerDBIDArrayIter, IntegerDBIDRef { /** * Iterator position: We use an integer so we can support retract(). */ int pos = 0; - + @Override public void advance() { pos++; } - + @Override public void advance(int count) { pos += count; } - + @Override public void retract() { pos--; } - + @Override public void seek(int off) { pos = off; } - + @Override public int getOffset() { return pos; } - + @Override public int internalGetIndex() { return IntegerDBIDVar.this.id; } - + @Override public boolean valid() { return (pos == 0); } - + @Override public int hashCode() { // Override, because we also are overriding equals. return super.hashCode(); } - + @Override public boolean equals(Object other) { if (other instanceof DBID) { @@ -168,30 +199,10 @@ class IntegerDBIDVar implements DBIDVar, IntegerDBIDs { } return super.equals(other); } - + @Override public String toString() { return Integer.toString(internalGetIndex()); } } - - @Override - public boolean isEmpty() { - return false; - } - - @Override - public void assignVar(int i, DBIDVar var) { - if (var instanceof IntegerDBIDVar) { - ((IntegerDBIDVar) var).internalSetIndex(i); - } else { - // Much less efficient: - var.set(get(i)); - } - } - - @Override - public String toString() { - return Integer.toString(id); - } } |