private void revertSetCell(long id, PropertyInfo prop, Object oldValue, Object value) { // INFORM INSIDER insider.unchanging(clazz, id, prop.getName(), oldValue, value); int row = row(id); Column column = prop.getColumn(); Index index = prop.getIndex(); column.set(row, oldValue); // UNDO CHANGE #1 if (index != null) { Transformer<Object> tr = prop.getTransformer(); index.add(tr.transform(oldValue), id); // UNDO CHANGE #2 index.remove(tr.transform(value), id); // UNDO CHANGE #3 } }
@SuppressWarnings("unchecked") @Override public <T> void createIndexOnNamed(String propertyName, Transformer<T> transformer) { try { // WRITE LOCK locker.globalWriteLock(); PropertyInfo prop = prop(propertyName); Index oldIndex = prop.getIndex(); prop.setIndex(null); // temporary set to null if (oldIndex != null) { oldIndex.dispose(); } Transformer<Object> tr = (Transformer<Object>) transformer; prop.setTransformer(tr); Index index = makeIndex(); prop.setIndex(index); long[] idss = ids(); for (long id : idss) { Object value = read(id, propertyName); value = tr.transform(value); index.add(value, id); } } finally { // WRITE UNLOCK locker.globalWriteUnlock(); } }
Index index = indexOf(columnName); Transformer<Object> tr = prop(columnName).getTransformer(); return index.find(op, tr.transform(value)); } else { if (indexer instanceof IndexerImpl) { IndexerImpl<?, ?> ind = (IndexerImpl<?, ?>) indexer; Index index = ind.getIndex(); return index.find(op, value); } else { throw Errors.notExpected();
private void revertSetCell(long id, PropertyInfo prop, Object oldValue, Object value) { // INFORM INSIDER insider.unchanging(clazz, id, prop.getName(), oldValue, value); int row = row(id); Column column = prop.getColumn(); Index index = prop.getIndex(); column.set(row, oldValue); // UNDO CHANGE #1 if (index != null) { Transformer<Object> tr = prop.getTransformer(); index.add(tr.transform(oldValue), id); // UNDO CHANGE #2 index.remove(tr.transform(value), id); // UNDO CHANGE #3 } }
@SuppressWarnings("unchecked") @Override public <T> void createIndexOnNamed(String propertyName, Transformer<T> transformer) { try { // WRITE LOCK locker.globalWriteLock(); PropertyInfo prop = prop(propertyName); Index oldIndex = prop.getIndex(); prop.setIndex(null); // temporary set to null if (oldIndex != null) { oldIndex.dispose(); } Transformer<Object> tr = (Transformer<Object>) transformer; prop.setTransformer(tr); Index index = makeIndex(); prop.setIndex(index); long[] idss = ids(); for (long id : idss) { Object value = read(id, propertyName); value = tr.transform(value); index.add(value, id); } } finally { // WRITE UNLOCK locker.globalWriteUnlock(); } }
Index index = indexOf(columnName); Transformer<Object> tr = prop(columnName).getTransformer(); return index.find(op, tr.transform(value)); } else { if (indexer instanceof IndexerImpl) { IndexerImpl<?, ?> ind = (IndexerImpl<?, ?>) indexer; Index index = ind.getIndex(); return index.find(op, value); } else { throw Errors.notExpected();
private void revertSetCell(long id, PropertyInfo prop, Object oldValue, Object value) { // INFORM INSIDER insider.unchanging(clazz, id, prop.getName(), oldValue, value); int row = row(id); Column column = prop.getColumn(); Index index = prop.getIndex(); column.set(row, oldValue); // UNDO CHANGE #1 if (index != null) { Transformer<Object> tr = prop.getTransformer(); index.add(tr.transform(oldValue), id); // UNDO CHANGE #2 index.remove(tr.transform(value), id); // UNDO CHANGE #3 } }
@SuppressWarnings("unchecked") @Override public <T> void createIndexOnNamed(String propertyName, Transformer<T> transformer) { try { // WRITE LOCK locker.globalWriteLock(); PropertyInfo prop = prop(propertyName); Index oldIndex = prop.getIndex(); prop.setIndex(null); // temporary set to null if (oldIndex != null) { oldIndex.dispose(); } Transformer<Object> tr = (Transformer<Object>) transformer; prop.setTransformer(tr); Index index = makeIndex(); prop.setIndex(index); long[] idss = ids(); for (long id : idss) { Object value = read(id, propertyName); value = tr.transform(value); index.add(value, id); } } finally { // WRITE UNLOCK locker.globalWriteUnlock(); } }
Index index = indexOf(columnName); Transformer<Object> tr = prop(columnName).getTransformer(); return index.find(op, tr.transform(value)); } else { if (indexer instanceof IndexerImpl) { IndexerImpl<?, ?> ind = (IndexerImpl<?, ?>) indexer; Index index = ind.getIndex(); return index.find(op, value); } else { throw Errors.notExpected();
private Object setCell(DatastoreTransaction tx, long id, PropertyInfo prop, Object value, ComplexIndex<?>[] complexIndices) { int row = row(id); Column column = prop.getColumn(); Index index = prop.getIndex(); Object oldValue = column.get(row); column.set(row, value); // CHANGE #1 if (index != null) { Transformer<Object> tr = prop.getTransformer(); index.remove(tr.transform(oldValue), id); // CHANGE #2 index.add(tr.transform(value), id); // CHANGE #3 } prop.appendComplexIndices(complexIndices); changelog.add(TableChange.set(id, prop, oldValue, value)); // CHANGELOG tx.changed(id); // PERSIST return oldValue; }
private Object setCell(DatastoreTransaction tx, long id, PropertyInfo prop, Object value, ComplexIndex<?>[] complexIndices) { int row = row(id); Column column = prop.getColumn(); Index index = prop.getIndex(); Object oldValue = column.get(row); column.set(row, value); // CHANGE #1 if (index != null) { Transformer<Object> tr = prop.getTransformer(); index.remove(tr.transform(oldValue), id); // CHANGE #2 index.add(tr.transform(value), id); // CHANGE #3 } prop.appendComplexIndices(complexIndices); changelog.add(TableChange.set(id, prop, oldValue, value)); // CHANGELOG tx.changed(id); // PERSIST return oldValue; }
private void insertCell(DatastoreTransaction tx, PropertyInfo prop, long id, int row, Object value) { // INFORM INSIDER insider.insertingCell(clazz, id, prop.getName(), value); Column column = prop.getColumn(); Index index = prop.getIndex(); column.set(row, value); // CHANGE #1 if (index != null) { index.add(prop.getTransformer().transform(value), id); // CHANGE #2 } // CHANGELOG changelog.add(TableChange.insertCell(prop, id, row, value)); tx.changed(id); // PERSIST }
private void deleteCell(DatastoreTransaction tx, long id, int row, PropertyInfo prop) { insider.deletingCell(clazz, id, prop.getName()); Column column = prop.getColumn(); Index index = prop.getIndex(); Object value = column.delete(row); // CHANGE #1 if (index != null) { Transformer<Object> tr = prop.getTransformer(); index.remove(tr.transform(value), id); // CHANGE #2 } changelog.add(TableChange.deleteCell(id, prop, row, value)); // CHANGELOG tx.delete(id); // PERSIST }
private Object setCell(DatastoreTransaction tx, long id, PropertyInfo prop, Object value, ComplexIndex<?>[] complexIndices) { int row = row(id); Column column = prop.getColumn(); Index index = prop.getIndex(); Object oldValue = column.get(row); column.set(row, value); // CHANGE #1 if (index != null) { Transformer<Object> tr = prop.getTransformer(); index.remove(tr.transform(oldValue), id); // CHANGE #2 index.add(tr.transform(value), id); // CHANGE #3 } prop.appendComplexIndices(complexIndices); changelog.add(TableChange.set(id, prop, oldValue, value)); // CHANGELOG tx.changed(id); // PERSIST return oldValue; }