Examples of RevTreeBuilder


Examples of org.locationtech.geogig.api.RevTreeBuilder

                } else {
                    checkState(node.isPresent(), "pathspec '" + st
                            + "' didn't match a feature in the tree");

                    if (node.get().getType() == TYPE.TREE) {
                        RevTreeBuilder treeBuilder = new RevTreeBuilder(stagingDatabase(),
                                workingTree().getTree());
                        treeBuilder.remove(st);
                        treeBuilder.put(node.get().getNode());
                        RevTree newRoot = treeBuilder.build();
                        stagingDatabase().put(newRoot);
                        workingTree().updateWorkHead(newRoot.getId());
                    } else {

                        ObjectId metadataId = ObjectId.NULL;
                        Optional<NodeRef> parentNode = command(FindTreeChild.class)
                                .setParent(workingTree().getTree())
                                .setChildPath(node.get().getParentPath()).setIndex(true).call();
                        RevTreeBuilder treeBuilder = null;
                        if (parentNode.isPresent()) {
                            metadataId = parentNode.get().getMetadataId();
                            Optional<RevTree> parsed = command(RevObjectParse.class).setObjectId(
                                    parentNode.get().getNode().getObjectId()).call(RevTree.class);
                            checkState(parsed.isPresent(),
                                    "Parent tree couldn't be found in the repository.");
                            treeBuilder = new RevTreeBuilder(stagingDatabase(), parsed.get());
                            treeBuilder.remove(node.get().getNode().getName());
                        } else {
                            treeBuilder = new RevTreeBuilder(stagingDatabase());
                        }
                        treeBuilder.put(node.get().getNode());
                        ObjectId newTreeId = command(WriteBack.class)
                                .setAncestor(
                                        workingTree().getTree().builder(stagingDatabase()))
                                .setChildPath(node.get().getParentPath()).setToIndex(true)
                                .setTree(treeBuilder.build()).setMetadataId(metadataId).call();
                        workingTree().updateWorkHead(newTreeId);
                    }
                }
            }
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

        final RevFeatureType revType = RevFeatureTypeImpl.build(featureType);
        indexDatabase.put(revType);

        final ObjectId metadataId = revType.getId();
        RevTreeBuilder treeBuilder = new RevTreeBuilder(indexDatabase);

        final RevTree newTree = treeBuilder.build();
        ObjectId newWorkHeadId = context.command(WriteBack.class).setToIndex(true)
                .setAncestor(workHead.builder(indexDatabase)).setChildPath(treePath)
                .setTree(newTree).setMetadataId(metadataId).call();
        updateWorkHead(newWorkHeadId);
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

    }

    @Test
    public void testInsertUnordered() {
        System.err.println("testInsertUnordered...");
        createTree(nodes, new RevTreeBuilder(odb), true);
        // createTree(nodes, new RevTreeBuilder(odb), true);
    }
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

    private void testInsertPartitioned(int partitionSize) {
        UnmodifiableIterator<List<Node>> partitions = Iterators.partition(nodes.iterator(),
                partitionSize);

        RevTreeBuilder builder = new RevTreeBuilder(odb);
        Stopwatch sw = Stopwatch.createStarted();
        while (partitions.hasNext()) {
            List<Node> partition = new ArrayList<Node>(partitions.next());
            Collections.sort(partition, new NodeStorageOrder());
            createTree(partition, builder, false);
        }
        System.err.println("Calling RevTreeBuilder.build()...");
        builder.build();
        sw.stop();
        System.err.printf("-- Created tree with %d sorted partitioned size in %s\n", partitionSize,
                sw);
    }
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

        if (nodeIndex == null) {
            return original.builder(db).build();
        }

        Stopwatch sw = Stopwatch.createStarted();
        RevTreeBuilder builder;
        try {
            builder = new RevTreeBuilder(db, original);
            Iterator<Node> nodes = nodeIndex.nodes();
            while (nodes.hasNext()) {
                Node node = nodes.next();
                if (node.getObjectId().isNull()) {
                    builder.remove(node.getName());
                } else {
                    builder.put(node);
                }
            }
        } catch (RuntimeException e) {
            e.printStackTrace();
            throw e;
        } finally {
            nodeIndex.close();
        }
        LOGGER.debug("Index traversed in {}", sw.stop());
        sw.reset().start();

        RevTree namedTree = builder.build();
        saveExtraFeatureTypes();
        LOGGER.debug("RevTreeBuilder.build() in {}", sw.stop());
        return namedTree;
    }
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

                updateStageHead(newRoot);
                progress.setProgress(100f);
                progress.complete();
                return;
            }
            RevTreeBuilder parentTree = getParentTree(currentIndexHead, parentPath, parentTress,
                    parentMetadataIds);

            i++;
            progress.setProgress((float) (i * 100) / numChanges);

            NodeRef oldObject = diff.getOldObject();
            NodeRef newObject = diff.getNewObject();
            if (newObject == null) {
                // Delete
                parentTree.remove(oldObject.name());
                if (TYPE.TREE.equals(oldObject.getType())) {
                    removedTrees.add(oldObject.path());
                }
            } else if (oldObject == null) {
                // Add
                Node node = newObject.getNode();
                parentTree.put(node);
                parentMetadataIds.put(newObject.path(), newObject.getMetadataId());
            } else {
                // Modify
                Node node = newObject.getNode();
                parentTree.put(node);
            }

            database.removeConflict(null, fullPath);
        }

        ObjectId newRootTree = currentIndexHead.getId();

        for (Map.Entry<String, RevTreeBuilder> entry : parentTress.entrySet()) {
            String changedTreePath = entry.getKey();
            RevTreeBuilder changedTreeBuilder = entry.getValue();
            RevTree changedTree = changedTreeBuilder.build();
            ObjectId parentMetadataId = parentMetadataIds.get(changedTreePath);
            if (NodeRef.ROOT.equals(changedTreePath)) {
                // root
                database.put(changedTree);
                newRootTree = changedTree.getId();
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

     * @return
     */
    private RevTreeBuilder getParentTree(RevTree currentIndexHead, String parentPath,
            Map<String, RevTreeBuilder> parentTress, Map<String, ObjectId> parentMetadataIds) {

        RevTreeBuilder parentBuilder = parentTress.get(parentPath);
        if (parentBuilder == null) {
            ObjectId parentMetadataId = null;
            if (NodeRef.ROOT.equals(parentPath)) {
                parentBuilder = currentIndexHead.builder(getDatabase());
            } else {
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

        ObjectId metadataId = null;
        if (typeTreeRef.isPresent()) {
            metadataId = typeTreeRef.get().getMetadataId();
        }

        RevTreeBuilder parentTree = context.command(FindOrCreateSubtree.class).setIndex(true)
                .setParent(Suppliers.ofInstance(Optional.of(getTree()))).setChildPath(path).call()
                .builder(indexDatabase);

        String featurePath = NodeRef.appendChild(path, featureId);
        Optional<Node> node = findUnstaged(featurePath);
        if (node.isPresent()) {
            parentTree.remove(node.get().getName());
        }

        ObjectId newTree = context.command(WriteBack.class).setAncestor(getTreeSupplier())
                .setChildPath(path).setToIndex(true).setMetadataId(metadataId)
                .setTree(parentTree.build()).call();

        updateWorkHead(newTree);

        return node.isPresent();
    }
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

        final String childName = NodeRef.nodeFromPath(path);

        final RevTree workHead = getTree();

        RevTree parent;
        RevTreeBuilder parentBuilder;
        ObjectId parentMetadataId = ObjectId.NULL;
        if (parentPath.isEmpty()) {
            parent = workHead;
            parentBuilder = workHead.builder(indexDatabase);
        } else {
            Optional<NodeRef> parentRef = context.command(FindTreeChild.class).setParent(workHead)
                    .setChildPath(parentPath).setIndex(true).call();
            if (!parentRef.isPresent()) {
                return;
            }

            parentMetadataId = parentRef.get().getMetadataId();
            parent = context.command(RevObjectParse.class).setObjectId(parentRef.get().objectId())
                    .call(RevTree.class).get();
            parentBuilder = parent.builder(indexDatabase);
        }
        RevTree newParent = parentBuilder.remove(childName).build();
        indexDatabase.put(newParent);
        if (parent.getId().equals(newParent.getId())) {
            return;// nothing changed
        }
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

        ObjectId parentMetadataId = null;
        if (typeTreeRef.isPresent()) {
            parentMetadataId = typeTreeRef.get().getMetadataId();
        }

        RevTreeBuilder parentTree = context.command(FindOrCreateSubtree.class)
                .setParent(Suppliers.ofInstance(Optional.of(getTree()))).setIndex(true)
                .setChildPath(typeName.getLocalPart()).call().builder(indexDatabase);

        String fid;
        String featurePath;

        while (affectedFeatures.hasNext()) {
            fid = affectedFeatures.next().getIdentifier().getID();
            featurePath = NodeRef.appendChild(typeName.getLocalPart(), fid);
            Optional<Node> ref = findUnstaged(featurePath);
            if (ref.isPresent()) {
                parentTree.remove(ref.get().getName());
            }
        }

        ObjectId newTree = context.command(WriteBack.class)
                .setAncestor(getTree().builder(indexDatabase)).setMetadataId(parentMetadataId)
                .setChildPath(typeName.getLocalPart()).setToIndex(true).setTree(parentTree.build())
                .call();

        updateWorkHead(newTree);
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.