@Override public boolean equals(Object o) { if (o instanceof Index) { Index i = (Index) o; return info().equals(i.info()) && indexTreeId().equals(i.indexTreeId()); } return false; }
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); }
/** * Verifies the index was using by inspecting {@link DiffTree#setNewTree} was given the index * objectId */ private void verifyUsesIndex(Index index) { ObjectId indexTreeId = index.indexTreeId(); verify(difftree).setNewTree(eq(indexTreeId)); }
/** * Verifies the index was using by inspecting {@link DiffTree#setNewTree} was given the index * objectId */ private void verifyUsesIndex(Index index) { ObjectId indexTreeId = index.indexTreeId(); verify(difftree).setNewTree(eq(indexTreeId)); }
private IndexInfo createIndex(boolean indexHistory, @Nullable String... extraAttributes) { Index index = geogig.command(CreateQuadTree.class)// .setTreeRefSpec(worldPointsLayer.getName())// .setGeometryAttributeName("geom")// .setExtraAttributes(Lists.newArrayList(extraAttributes))// .setIndexHistory(indexHistory)// .call(); return index.info(); }
@Override public boolean equals(Object o) { if (o instanceof Index) { Index i = (Index) o; return info().equals(i.info()) && indexTreeId().equals(i.indexTreeId()); } return false; }
} else { cli.getConsole().println("Index created successfully: " + index.indexTreeId().toString().substring(0, 8));
private IndexInfo createIndex(boolean indexHistory, @Nullable String... extraAttributes) { Index index = geogig.command(CreateQuadTree.class)// .setTreeRefSpec(worldPointsLayer.getName())// .setGeometryAttributeName("geom")// .setExtraAttributes(Lists.newArrayList(extraAttributes))// .setIndexHistory(indexHistory)// .call(); return index.info(); }
return null; return new Index(newIndexInfo, indexedTreeId, indexDatabase);
@Override public void write(ResponseWriter out) throws Exception { out.start(); out.writeIndexInfo(index.info(), "index", false); out.writeElement("indexedTreeId", index.indexTreeId().toString()); out.finish(); } });
} else { cli.getConsole().println("Index created successfully: " + index.indexTreeId().toString().substring(0, 8));
private IndexInfo createIndex(@Nullable String... extraAttributes) { Map<String, Object> metadata = new HashMap<>(); metadata.put(IndexInfo.MD_QUAD_MAX_BOUNDS, new Envelope(-180, 180, -90, 90)); if (extraAttributes != null && extraAttributes.length > 0) { metadata.put(IndexInfo.FEATURE_ATTRIBUTES_EXTRA_DATA, extraAttributes); } Index index = geogig.command(CreateIndexOp.class)// .setTreeName(worldPointsLayer.getName())// .setCanonicalTypeTree(worldPointsTree)// .setFeatureTypeId(worldPointsLayer.getMetadataId().get())// .setAttributeName("geom")// .setIndexType(IndexType.QUADTREE)// .setMetadata(metadata)// .call(); return index.info(); }
return null; return new Index(newIndexInfo, indexedTreeId, indexDatabase);
@Override public void write(ResponseWriter out) throws Exception { out.start(); out.writeIndexInfo(index.info(), "index", false); out.writeElement("indexedTreeId", index.indexTreeId().toString()); out.finish(); } });
@Override protected void runInternal(GeogigCLI cli) throws InvalidParameterException, CommandFailedException, IOException { Repository repo = cli.getGeogig().getRepository(); Envelope envelope = SpatialOps.parseNonReferencedBBOX(bbox); Index index = repo.command(CreateQuadTree.class)// .setTreeRefSpec(treeRefSpec)// .setGeometryAttributeName(attribute)// .setExtraAttributes(extraAttributes)// .setIndexHistory(indexHistory)// .setBounds(envelope)// .setProgressListener(cli.getProgressListener())// .call(); if (cli.getProgressListener().isCanceled()) { cli.getConsole().println("Index creation cancelled."); } else { cli.getConsole().println("Index created successfully: " + index.indexTreeId().toString().substring(0, 8)); } } }
private IndexInfo createIndex(@Nullable String... extraAttributes) { Map<String, Object> metadata = new HashMap<>(); metadata.put(IndexInfo.MD_QUAD_MAX_BOUNDS, new Envelope(-180, 180, -90, 90)); if (extraAttributes != null && extraAttributes.length > 0) { metadata.put(IndexInfo.FEATURE_ATTRIBUTES_EXTRA_DATA, extraAttributes); } Index index = geogig.command(CreateIndexOp.class)// .setTreeName(worldPointsLayer.getName())// .setCanonicalTypeTree(worldPointsTree)// .setFeatureTypeId(worldPointsLayer.getMetadataId().get())// .setAttributeName("geom")// .setIndexType(IndexType.QUADTREE)// .setMetadata(metadata)// .call(); return index.info(); }
return new Index(indexInfo, indexedTreeId, indexDatabase());
@Test public void testEqualIndexesWithDifferentExtraAttributesHashDifferently() { Index noExtraAtts = createAndBuildIndex(); Index xExtraAtts = updateIndex(noExtraAtts.info().getTreeName(), "x"); Index yExtraAtts = updateIndex(noExtraAtts.info().getTreeName(), "y"); assertNotEquals(noExtraAtts, xExtraAtts); assertNotEquals(xExtraAtts, yExtraAtts); assertNotEquals(noExtraAtts.indexTreeId(), xExtraAtts.indexTreeId()); assertNotEquals(xExtraAtts.indexTreeId(), yExtraAtts.indexTreeId()); }
} else { cli.getConsole().println("Index updated successfully: " + index.indexTreeId().toString().substring(0, 8));