package com.alvazan.orm.logging; import java.util.ArrayList; import java.util.Collection; import java.util.List; import javax.inject.Inject; import javax.inject.Named; import com.alvazan.orm.api.z5api.NoSqlSession; import com.alvazan.orm.api.z8spi.Key; import com.alvazan.orm.api.z8spi.KeyValue; import com.alvazan.orm.api.z8spi.MetaLookup; import com.alvazan.orm.api.z8spi.NoSqlRawSession; import com.alvazan.orm.api.z8spi.Row; import com.alvazan.orm.api.z8spi.ScanInfo; import com.alvazan.orm.api.z8spi.action.Column; import com.alvazan.orm.api.z8spi.action.IndexColumn; import com.alvazan.orm.api.z8spi.iter.AbstractCursor; import com.alvazan.orm.api.z8spi.iter.DirectCursor; import com.alvazan.orm.api.z8spi.meta.DboTableMeta; /** * WE need to use this to see when the proxies are accidentally going back to the cache of already loaded rows and RE-translating everything * they had already translated the first time. * @author dhiller2 * */ public class NoSqlDevLogger implements NoSqlSession { @Inject @Named("readcachelayer") private NoSqlSession session; @Override public NoSqlRawSession getRawSession() { return session.getRawSession(); } @Override public void persistIndex(DboTableMeta colFamily, String indexColFamily, byte[] rowKey, IndexColumn column) { session.persistIndex(colFamily, indexColFamily, rowKey, column); } @Override public void removeFromIndex(DboTableMeta colFamily, String indexColFamily, byte[] rowKeyBytes, IndexColumn c) { session.removeFromIndex(colFamily, indexColFamily, rowKeyBytes, c); } @Override public void put(DboTableMeta colFamily, byte[] rowKey, List<Column> columns) { session.put(colFamily, rowKey, columns); } @Override public void remove(DboTableMeta colFamily, byte[] rowKey) { session.remove(colFamily, rowKey); } @Override public void remove(DboTableMeta colFamily, byte[] rowKey, Collection<byte[]> columnNames) { session.remove(colFamily, rowKey, columnNames); } @Override public AbstractCursor<KeyValue<Row>> find(DboTableMeta cf, DirectCursor<byte[]> noSqlKeys, boolean skipCache, boolean cacheResults, Integer batchSize) { return session.find(cf, noSqlKeys, skipCache, cacheResults, batchSize); } @Override public Row find(DboTableMeta colFamily, byte[] rowKey) { List<byte[]> keys = new ArrayList<byte[]>(); keys.add(rowKey); //NoSqlRawLogger.logKeys("[cache]", databaseInfo, colFamily, keys); return session.find(colFamily, rowKey); } @Override public void flush() { session.flush(); } @Override public void clearDb() { session.clearDb(); } @Override public AbstractCursor<Column> columnSlice(DboTableMeta colFamily, byte[] rowKey, byte[] from, byte[] to, Integer batchSize, Class columnNameType) { return session.columnSlice(colFamily, rowKey, from, to, batchSize, columnNameType); } @Override public AbstractCursor<IndexColumn> scanIndex(ScanInfo info, Key from, Key to, Integer batchSize) { return session.scanIndex(info, from, to, batchSize); } @Override public void setOrmSessionForMeta(MetaLookup orm) { session.setOrmSessionForMeta(orm); } @Override public AbstractCursor<IndexColumn> scanIndex(ScanInfo scanInfo, List<byte[]> values) { return session.scanIndex(scanInfo, values); } @Override public void clear() { } @Override public void removeColumn(DboTableMeta colFamily, byte[] rowKey, byte[] columnName) { session.removeColumn(colFamily, rowKey, columnName); } @Override public AbstractCursor<Row> allRows(DboTableMeta colFamily, int batchSize) { return session.allRows(colFamily, batchSize); } }