diff options
author | Erich Schubert <erich@debian.org> | 2012-06-02 17:47:03 +0200 |
---|---|---|
committer | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:32 +0000 |
commit | 593eae6c91717eb9f4ff5088ba460dd4210509c0 (patch) | |
tree | d97e8cefb48773a382542e9e9d4a6796202a044a /src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBID.java | |
parent | e580e42664ca92fbf8792bc39b8d59383db829fe (diff) | |
parent | c36aa2a8fd31ca5e225ff30278e910070cd2c8c1 (diff) |
Import Debian changes 0.5.0~beta2-1
elki (0.5.0~beta2-1) unstable; urgency=low
* New upstream beta release.
* Needs GNU Trove 3, in NEW.
* Build with OpenJDK7, as OpenJDK6 complains.
elki (0.5.0~beta1-1) unstable; urgency=low
* New upstream beta release.
* Needs GNU Trove 3, not yet in Debian (private package)
* Build with OpenJDK7, as OpenJDK6 complains.
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBID.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBID.java | 72 |
1 files changed, 54 insertions, 18 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBID.java b/src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBID.java index 2842ca75..f9e83294 100644 --- a/src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBID.java +++ b/src/de/lmu/ifi/dbs/elki/database/ids/integer/IntegerDBID.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) 2011 + Copyright (C) 2012 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -24,11 +24,10 @@ package de.lmu.ifi.dbs.elki.database.ids.integer; */ import java.nio.ByteBuffer; -import java.util.AbstractList; -import java.util.Collection; import java.util.Iterator; import de.lmu.ifi.dbs.elki.database.ids.DBID; +import de.lmu.ifi.dbs.elki.database.ids.DBIDIter; import de.lmu.ifi.dbs.elki.persistent.ByteArrayUtil; import de.lmu.ifi.dbs.elki.persistent.ByteBufferSerializer; import de.lmu.ifi.dbs.elki.persistent.FixedSizeByteBufferSerializer; @@ -50,7 +49,7 @@ import de.lmu.ifi.dbs.elki.persistent.FixedSizeByteBufferSerializer; * @apiviz.composedOf DynamicSerializer * @apiviz.composedOf StaticSerializer */ -class IntegerDBID extends AbstractList<DBID> implements DBID { +class IntegerDBID implements DBID { /** * The actual object ID. */ @@ -113,13 +112,16 @@ class IntegerDBID extends AbstractList<DBID> implements DBID { } @Override - public Collection<DBID> asCollection() { - return this; + public DBIDIter iter() { + return new DBIDItr(); } @Override - public boolean contains(Object o) { - return this.equals(o); + public DBID get(int i) { + if(i != 0) { + throw new ArrayIndexOutOfBoundsException(); + } + return this; } @Override @@ -128,10 +130,20 @@ class IntegerDBID extends AbstractList<DBID> implements DBID { } @Override + public boolean contains(DBID o) { + return o.getIntegerID() == id; + } + + @Override public int size() { return 1; } + @Override + public int binarySearch(DBID key) { + return equals(key) ? 0 : -1; + } + /** * Pseudo iterator for DBIDs interface. * @@ -163,21 +175,45 @@ class IntegerDBID extends AbstractList<DBID> implements DBID { } } - @Override - public boolean isEmpty() { - return false; - } + /** + * Pseudo iterator for DBIDs interface. + * + * @author Erich Schubert + * + * @apiviz.exclude + */ + protected class DBIDItr implements DBIDIter { + /** + * Whether we've already returned our object. + */ + boolean first = true; - @Override - public DBID get(int i) { - if(i == 0) { - return this; + @Override + public void advance() { + first = false; } - else { - throw new ArrayIndexOutOfBoundsException(); + + @Override + public int getIntegerID() { + return id; + } + + @Override + public DBID getDBID() { + return IntegerDBID.this; + } + + @Override + public boolean valid() { + return first; } } + @Override + public boolean isEmpty() { + return false; + } + /** * Dynamic sized serializer, using varint. * |