private Optional<Index> resolveIndex(ObjectId canonicalTreeId, IndexInfo indexInfo, IndexDatabase db) { Index index = null; if (EMPTY_TREE_ID.equals(canonicalTreeId)) { index = new Index(indexInfo, EMPTY_TREE_ID, db); } else { ObjectId indexedTree = db.resolveIndexedTree(indexInfo, canonicalTreeId).orNull(); if (indexedTree != null) { index = new Index(indexInfo, indexedTree, db); } } return Optional.ofNullable(index); }
return null; return new Index(newIndexInfo, indexedTreeId, indexDatabase);
return null; return new Index(newIndexInfo, indexedTreeId, indexDatabase);
return new Index(indexInfo, indexedTreeId, indexDatabase());
id, size, bounds)); updated.add(new Index(index, indexTree.getId(), indexDatabase));
return new Index(indexInfo, indexedTreeId, indexDatabase());
id, size, bounds)); updated.add(new Index(index, indexTree.getId(), indexDatabase));
public static List<Index> createIndexes(Repository repo, Ref ref) { Envelope bounds = new Envelope(-180, 180, -90, 90); List<NodeRef> types = repo.command(FindFeatureTypeTrees.class).setRootTreeRef(ref.getName()) .call(); List<Index> indexes = new ArrayList<>(); for (NodeRef treeRef : types) { Map<String, IndexInfo> typeIndexes = getIndexes(repo, treeRef.path()); if (typeIndexes.containsKey(treeRef.path())) { IndexInfo indexInfo = typeIndexes.get(treeRef.path()); IndexDatabase indexdb = repo.indexDatabase(); Optional<ObjectId> indexedTree = indexdb.resolveIndexedTree(indexInfo, treeRef.getObjectId()); if (indexedTree.isPresent()) { indexes.add(new Index(indexInfo, indexedTree.get(), indexdb)); } } else { Index index = repo.command(CreateQuadTree.class).setBounds(bounds) .setIndexHistory(true).setTypeTreeRef(treeRef).call(); log.info("Created index {} before cloning", index); indexes.add(index); } } return indexes; }