@Override public K create(T value) throws AvroBaseException { return super.create(value); //To change body of overridden methods use File | Settings | File Templates. }
@Override public void delete(K row) throws AvroBaseException { super.delete(row); //To change body of overridden methods use File | Settings | File Templates. }
/** * Get calls the underlying delegate directly and does NOT scan S3 to find something * that is not present the store of record. The only operation that uses the S3 store * is scan. * * @param row * @return * @throws AvroBaseException */ @Override public Row<T, byte[]> get(byte[] row) throws AvroBaseException { return super.get(row); }
@Override public void put(K row, T value) throws AvroBaseException { super.put(row, value); //To change body of overridden methods use File | Settings | File Templates. }
@Override public Row<T, K> mutate(K row, Mutator<T> tMutator, Creator<T> tCreator) throws AvroBaseException { return super.mutate(row, tMutator, tCreator); //To change body of overridden methods use File | Settings | File Templates. } }
@Override public Iterable<Row<T, K>> scan(K startRow, K stopRow) throws AvroBaseException { return super.scan(startRow, stopRow); //To change body of overridden methods use File | Settings | File Templates. }
@Override public boolean put(K row, T value, long version) throws AvroBaseException { return super.put(row, value, version); //To change body of overridden methods use File | Settings | File Templates. }
@Override public Row<T, K> mutate(K row, Mutator<T> tMutator) throws AvroBaseException { return super.mutate(row, tMutator); //To change body of overridden methods use File | Settings | File Templates. }
@Override public Iterable<Row<T, K>> scan(K startRow, K stopRow) throws AvroBaseException { final Iterable<Row<T, K>> scan = super.scan(startRow, stopRow); return new Iterable<Row<T, K>>() { @Override public Iterator<Row<T, K>> iterator() { final Iterator<Row<T, K>> iterator = scan.iterator(); return new Iterator<Row<T, K>>() { @Override public boolean hasNext() { return iterator.hasNext(); } @Override public Row<T, K> next() { Row<T, K> next = iterator.next(); cache.put(new Element(keyMaker.make(next.row), next)); invalidate(next.row); return next; } @Override public void remove() { } }; } }; }
@Override public boolean put(K row, T value, long version) throws AvroBaseException { boolean put = super.put(row, value, version); cache.put(new Element(keyMaker.make(row), new Row<T, K>(value, row, version))); invalidate(row); return put; }
@Override public Row<T, K> mutate(K row, Mutator<T> tMutator, Creator<T> tCreator) throws AvroBaseException { Row<T, K> mutate = super.mutate(row, tMutator, tCreator); Object key = keyMaker.make(row); if (mutate == null) { cache.remove(key); } else { cache.put(new Element(key, mutate)); } invalidate(row); return mutate; }
@Override public void delete(K key) throws AvroBaseException { super.delete(key); cache.remove(keyMaker.make(key)); invalidate(key); }
@Override public K create(T value) throws AvroBaseException { K k = super.create(value); Row<T, K> tkRow = new Row<T, K>(value, k); cache.put(new Element(keyMaker.make(k), tkRow)); return k; }
@Override public Row<T, K> get(K row) throws AvroBaseException { Object key = keyMaker.make(row); Element element = cache.get(key); Row<T, K> tkRow; if (element == null) { tkRow = super.get(row); cache.put(new Element(key, tkRow)); invalidate(row); } else { // TODO: until we offer immutable rows, clone the result Serializable value = element.getValue(); tkRow = value == null ? null : ((Row<T, K>) value).clone(); } return tkRow; }
@Override public void put(K row, T value) throws AvroBaseException { super.put(row, value); cache.put(new Element(keyMaker.make(row), new Row<T, K>(value, row))); invalidate(row); }
@Override public Row<T, K> mutate(K row, Mutator<T> tMutator) throws AvroBaseException { Row<T, K> mutate = super.mutate(row, tMutator); Object key = keyMaker.make(row); if (mutate == null) { cache.remove(key); } else { cache.put(new Element(key, mutate)); } invalidate(row); return mutate; }