Package org.locationtech.geogig.api

Examples of org.locationtech.geogig.api.RevTree


                return Iterators.emptyIterator();
            }
            Preconditions.checkArgument(TYPE.TREE.equals(next.getType()));

            ObjectId treeId = next.getObjectId();
            RevTree childTree = source.getTree(treeId);

            String childTreePath = NodeRef.appendChild(this.functor.treePath, next.getName());
            Iterator<NodeRef> children = new Recursive(childTreePath, next.getMetadataId().or(
                    functor.metadataId), childTree, features, trees);
            if (trees) {
View Full Code Here


        /**
         * @param bucketId
         * @return
         */
        protected Iterator<Node> resolveBucketEntries(ObjectId bucketId) {
            RevTree bucketTree = source.getTree(bucketId);
            if (bucketTree.buckets().isPresent()) {
                return new Buckets(bucketTree);
            }
            return new Children(bucketTree);
        }
View Full Code Here

            super(tree);
        }

        @Override
        protected Iterator<Node> resolveBucketEntries(ObjectId bucketId) {
            RevTree bucketTree = source.getTree(bucketId);
            if (bucketTree.numTrees() == 0) {
                return Iterators.emptyIterator();
            }
            if (bucketTree.trees().isPresent()) {
                return new Trees(bucketTree);
            }
            if (bucketTree.buckets().isPresent()) {
                return new TreeBuckets(bucketTree);
            }
            return Iterators.emptyIterator();
        }
View Full Code Here

            super(tree);
        }

        @Override
        protected Iterator<Node> resolveBucketEntries(ObjectId bucketId) {
            RevTree bucketTree = source.getTree(bucketId);
            if (bucketTree.buckets().isPresent()) {
                return new FeatureBuckets(bucketTree);
            }
            if (bucketTree.features().isPresent()) {
                return new Features(bucketTree);
            }
            return Iterators.emptyIterator();
        }
View Full Code Here

        if (TYPE.FEATURE.equals(type)) {
            consumer.feature(left, right);
        } else {
            checkState(TYPE.TREE.equals(type));
            if (consumer.tree(left, right)) {
                RevTree leftTree;
                RevTree rightTree;
                leftTree = left == null ? RevTree.EMPTY : leftSource.getTree(left.getObjectId());
                rightTree = right == null ? RevTree.EMPTY : rightSource
                        .getTree(right.getObjectId());
                traverseTree(consumer, leftTree, rightTree, 0);
            }
View Full Code Here

            List<Node> rightNodes = nodesByBucket.get(bucketIndex);// never returns null, but empty
            if (null == leftBucket) {
                traverseLeafLeaf(consumer, Iterators.<Node> emptyIterator(), rightNodes.iterator());
            } else if (rightNodes.isEmpty()) {
                if (consumer.bucket(bucketIndex, bucketDepth, leftBucket, null)) {
                    RevTree leftTree = (RevTree) bucketTrees.get(leftBucket.id());
                    // traverseBucketBucket(consumer, leftTree, RevTree.EMPTY, bucketDepth);
                    traverseTree(consumer, leftTree, RevTree.EMPTY, bucketDepth + 1);
                }
                consumer.endBucket(bucketIndex, bucketDepth, leftBucket, null);
            } else {
                RevTree leftTree = (RevTree) bucketTrees.get(leftBucket.id());
                if (leftTree.buckets().isPresent()) {
                    traverseBucketLeaf(consumer, leftTree, rightNodes.iterator(), bucketDepth + 1);
                } else {
                    traverseLeafLeaf(consumer, leftTree.children(), rightNodes.iterator());
                }
            }
        }
    }
View Full Code Here

            List<Node> leftNodes = nodesByBucket.get(bucketIndex);// never returns null, but empty
            if (null == rightBucket) {
                traverseLeafLeaf(consumer, leftNodes.iterator(), Iterators.<Node> emptyIterator());
            } else if (leftNodes.isEmpty()) {
                if (consumer.bucket(bucketIndex, bucketDepth, null, rightBucket)) {
                    RevTree rightTree = (RevTree) bucketTrees.get(rightBucket.id());
                    // traverseBucketBucket(consumer, RevTree.EMPTY, rightTree, bucketDepth);
                    traverseTree(consumer, RevTree.EMPTY, rightTree, bucketDepth + 1);
                }
                consumer.endBucket(bucketIndex, bucketDepth, null, rightBucket);
            } else {
                RevTree rightTree = (RevTree) bucketTrees.get(rightBucket.id());
                if (rightTree.buckets().isPresent()) {
                    traverseLeafBucket(consumer, leftNodes.iterator(), rightTree, bucketDepth + 1);
                } else {
                    traverseLeafLeaf(consumer, leftNodes.iterator(), rightTree.children());
                }
            }
        }
    }
View Full Code Here

            rbucket = rb.get(index);
            if (Objects.equal(lbucket, rbucket)) {
                continue;
            }
            if (consumer.bucket(index.intValue(), bucketDepth, lbucket, rbucket)) {
                RevTree ltree = lbucket == null ? RevTree.EMPTY : leftSource.getTree(lbucket.id());
                RevTree rtree = rbucket == null ? RevTree.EMPTY : rightSource.getTree(rbucket.id());
                traverseTree(consumer, ltree, rtree, bucketDepth + 1);
            }
            consumer.endBucket(index.intValue(), bucketDepth, lbucket, rbucket);
        }
    }
View Full Code Here

        }

        object = geogig.command(RevObjectParse.class).setObjectId(commit.getTreeId()).call();

        if (object.isPresent()) {
            RevTree tree = (RevTree) object.get();
            return geogig.command(FindTreeChild.class).setParent(tree).setChildPath(path).call();
        } else {
            throw new CommandSpecException("Couldn't resolve commit's treeId");
        }
    }
View Full Code Here

        this.node = newNode;
    }

    public RevTree build(ObjectDatabase origin, ObjectDatabase target) {
        final ObjectId nodeId = node.getObjectId();
        final RevTree tree = origin.getTree(nodeId);

        RevTreeBuilder builder = tree.builder(target).clearSubtrees();

        for (MutableTree childTree : this.childTrees.values()) {
            String name;
            ObjectId newObjectId;
            ObjectId metadataId;
            Envelope bounds;
            {
                RevTree newChild = childTree.build(origin, target);
                target.put(newChild);
                Node oldNode = childTree.getNode();
                name = oldNode.getName();
                newObjectId = newChild.getId();
                metadataId = oldNode.getMetadataId().or(ObjectId.NULL);
                bounds = SpatialOps.boundsOf(newChild);
            }
            Node newNode = Node.create(name, newObjectId, metadataId, TYPE.TREE, bounds);
            builder.put(newNode);
        }
        RevTree newTree = builder.build();
        if (!this.node.getObjectId().equals(newTree.getId())) {
            target.put(newTree);
            Envelope bounds = SpatialOps.boundsOf(newTree);
            this.node = Node.create(node.getName(), newTree.getId(),
                    node.getMetadataId().or(ObjectId.NULL), TYPE.TREE, bounds);
        }

        return newTree;
    }
View Full Code Here

TOP

Related Classes of org.locationtech.geogig.api.RevTree

Copyright © 2018 www.massapicom. 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.