/** * Actual setter. * * @param id Database ID * @param index column index * @param value new value * @param <T> type * @return previous value */ @SuppressWarnings("unchecked") protected <T> T set(DBIDRef id, int index, T value) { Object[] d = data.get(DBIDUtil.asInteger(id)); if (d == null) { d = new Object[rlen]; data.put(DBIDUtil.asInteger(id), d); } T ret = (T) d[index]; d[index] = value; return ret; }
/** * Actual getter. * * @param id Database ID * @param index column index * @param <T> type * @return current value */ @SuppressWarnings("unchecked") protected <T> T get(DBIDRef id, int index) { Object[] d = data.get(DBIDUtil.asInteger(id)); if (d == null) { return null; } return (T) d[index]; }
@Override public int binarySearch(DBIDRef key) { int keyid = DBIDUtil.asInteger(key); if (keyid < start) { return -1; } final int off = keyid - start; if (off < len) { return off; } return -(len + 1); }
@Override public boolean remove(DBIDRef id) { return data.remove(DBIDUtil.asInteger(id)) != null; }