/** * Performs the operation. * * @return the number of trees that were built */ @Override protected Integer _call() { checkArgument(treeRefSpec != null, "Tree ref spec not provided."); final NodeRef typeTreeRef = IndexUtils.resolveTypeTreeRef(context(), treeRefSpec); checkArgument(typeTreeRef != null, "Can't find feature tree '%s'", treeRefSpec); String treeName = typeTreeRef.path(); List<IndexInfo> indexInfos = IndexUtils.resolveIndexInfo(indexDatabase(), treeName, attributeName); checkState(!indexInfos.isEmpty(), "A matching index could not be found."); checkState(indexInfos.size() == 1, "Multiple indexes were found for the specified tree, please specify the attribute."); IndexInfo index = indexInfos.get(0); indexDatabase().clearIndex(index); int builtTrees = indexHistory(index); return builtTrees; }
/** * Performs the operation. * * @return the number of trees that were built */ @Override protected Integer _call() { checkArgument(treeRefSpec != null, "Tree ref spec not provided."); final NodeRef typeTreeRef = IndexUtils.resolveTypeTreeRef(context(), treeRefSpec); checkArgument(typeTreeRef != null, "Can't find feature tree '%s'", treeRefSpec); String treeName = typeTreeRef.path(); List<IndexInfo> indexInfos = IndexUtils.resolveIndexInfo(indexDatabase(), treeName, attributeName); checkState(!indexInfos.isEmpty(), "A matching index could not be found."); checkState(indexInfos.size() == 1, "Multiple indexes were found for the specified tree, please specify the attribute."); IndexInfo index = indexInfos.get(0); if (!onlyMissing) { indexDatabase().clearIndex(index); } int builtTrees = indexHistory(index); return builtTrees; }
@Test public void testClearIndex() { String treeName = "tree"; String attributeName = "attribute"; IndexInfo index = indexDb.createIndexInfo(treeName, attributeName, IndexType.QUADTREE, null); ObjectId originalTreeId1 = RevObjectTestSupport.hashString("fake1"); ObjectId originalTreeId2 = RevObjectTestSupport.hashString("fake2"); ObjectId indexedTreeId1 = RevObjectTestSupport.hashString("fake3"); ObjectId indexedTreeId2 = RevObjectTestSupport.hashString("fake4"); indexDb.addIndexedTree(index, originalTreeId1, indexedTreeId1); indexDb.addIndexedTree(index, originalTreeId2, indexedTreeId2); Optional<ObjectId> resolvedId = indexDb.resolveIndexedTree(index, originalTreeId1); assertTrue(resolvedId.isPresent()); assertEquals(indexedTreeId1, resolvedId.get()); resolvedId = indexDb.resolveIndexedTree(index, originalTreeId2); assertTrue(resolvedId.isPresent()); assertEquals(indexedTreeId2, resolvedId.get()); indexDb.clearIndex(index); resolvedId = indexDb.resolveIndexedTree(index, originalTreeId1); assertFalse(resolvedId.isPresent()); resolvedId = indexDb.resolveIndexedTree(index, originalTreeId2); assertFalse(resolvedId.isPresent()); }
@Test public void testClearIndex() { String treeName = "tree"; String attributeName = "attribute"; IndexInfo index = indexDb.createIndexInfo(treeName, attributeName, IndexType.QUADTREE, null); ObjectId originalTreeId1 = RevObjectTestSupport.hashString("fake1"); ObjectId originalTreeId2 = RevObjectTestSupport.hashString("fake2"); ObjectId indexedTreeId1 = RevObjectTestSupport.hashString("fake3"); ObjectId indexedTreeId2 = RevObjectTestSupport.hashString("fake4"); indexDb.addIndexedTree(index, originalTreeId1, indexedTreeId1); indexDb.addIndexedTree(index, originalTreeId2, indexedTreeId2); Optional<ObjectId> resolvedId = indexDb.resolveIndexedTree(index, originalTreeId1); assertTrue(resolvedId.isPresent()); assertEquals(indexedTreeId1, resolvedId.get()); resolvedId = indexDb.resolveIndexedTree(index, originalTreeId2); assertTrue(resolvedId.isPresent()); assertEquals(indexedTreeId2, resolvedId.get()); indexDb.clearIndex(index); resolvedId = indexDb.resolveIndexedTree(index, originalTreeId1); assertFalse(resolvedId.isPresent()); resolvedId = indexDb.resolveIndexedTree(index, originalTreeId2); assertFalse(resolvedId.isPresent()); }