@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(); } }
@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(); } }
@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(); } }