Package org.locationtech.geogig.api

Examples of org.locationtech.geogig.api.ObjectId


    private NodeRef findOrCreateTree(final String treePath, final FeatureType type) {

        RevTree tree = context.command(FindOrCreateSubtree.class).setChildPath(treePath)
                .setIndex(true).setParent(workHead).setParentPath(NodeRef.ROOT).call();

        ObjectId metadataId = ObjectId.NULL;
        if (type != null) {
            RevFeatureType revFeatureType = RevFeatureTypeImpl.build(type);
            if (tree.isEmpty()) {
                indexDatabase.put(revFeatureType);
            }
View Full Code Here


    }

    private RevTreeBuilder2 createBuilder(String treePath, FeatureType type) {

        final NodeRef treeRef = findOrCreateTree(treePath, type);
        final ObjectId treeId = treeRef.objectId();
        final RevTree origTree = indexDatabase.getTree(treeId);

        ObjectId defaultMetadataId = treeRef.getMetadataId();

        RevTreeBuilder2 builder;
        Platform platform = context.platform();
        builder = new RevTreeBuilder2(indexDatabase, origTree, defaultMetadataId, platform,
                executorService);
View Full Code Here

            }

            @Override
            public SimpleFeature apply(RevObject obj) {
                final RevFeature revFeature = (RevFeature) obj;
                final ObjectId id = obj.getId();
                List<String> list = fidIndex.get(id);
                final String fid = list.remove(0);

                Feature feature = featureBuilder.build(fid, revFeature);
                return (SimpleFeature) feature;
View Full Code Here

        public Void call() {
            RevTree tree = builder.build();

            Node treeNode;
            {
                ObjectId treeMetadataId = builder.getDefaultMetadataId();
                String name = NodeRef.nodeFromPath(treePath);
                ObjectId oid = tree.getId();
                Envelope bounds = SpatialOps.boundsOf(tree);
                treeNode = Node.create(name, oid, treeMetadataId, RevObject.TYPE.TREE, bounds);
            }

            final String parentPath = NodeRef.parentPath(treePath);
            final ObjectId parentMetadataId;
            if (NodeRef.ROOT.equals(parentPath)) {
                parentMetadataId = ObjectId.NULL;
            } else {
                Optional<NodeRef> parentRef = context.command(FindTreeChild.class)
                        .setChildPath(parentPath).setIndex(true).setParent(workHead)
View Full Code Here

        RevFeatureType revFeatureType = revFeatureTypes.get(type.getName());
        if (null == revFeatureType) {
            revFeatureType = RevFeatureTypeImpl.build(type);
            revFeatureTypes.put(type.getName(), revFeatureType);
        }
        ObjectId metadataId = revFeatureType.getId().equals(defaultMetadataId) ? ObjectId.NULL
                : revFeatureType.getId();
        Node node = Node.create(name, id, metadataId, TYPE.FEATURE, bbox);
        put(node);
        return node;
    }
View Full Code Here

                        @Override
                        public RevObject apply(RevObject input) {
                            if (input instanceof RevCommit) {
                                RevCommit commit = (RevCommit) input;
                                ObjectId commitId = commit.getId();
                                ImmutableList<ObjectId> parentIds = commit.getParentIds();
                                graphDatabase.put(commitId, parentIds);

                                // addedCommits.add((RevCommit) input);
                            }
View Full Code Here

                            || (getTags && line.startsWith("refs/tags"))) {
                        Ref remoteRef = HttpUtils.parseRef(line);
                        Ref newRef = remoteRef;
                        if (!(newRef instanceof SymRef)
                                && localRepository.graphDatabase().exists(remoteRef.getObjectId())) {
                            ObjectId mappedCommit = localRepository.graphDatabase().getMapping(
                                    remoteRef.getObjectId());
                            if (mappedCommit != null) {
                                newRef = new Ref(remoteRef.getName(), mappedCommit);
                            }
                        }
View Full Code Here

        Repository from = localRepository;
        Optional<RevObject> object = from.command(RevObjectParse.class).setObjectId(commitId)
                .call();
        if (object.isPresent() && object.get().getType().equals(TYPE.COMMIT)) {
            RevCommit commit = (RevCommit) object.get();
            ObjectId parent = ObjectId.NULL;
            List<ObjectId> newParents = new LinkedList<ObjectId>();
            for (int i = 0; i < commit.getParentIds().size(); i++) {
                ObjectId parentId = commit.getParentIds().get(i);
                if (i != 0) {
                    Optional<ObjectId> commonAncestor = from.command(FindCommonAncestor.class)
                            .setLeftId(commit.getParentIds().get(0)).setRightId(parentId).call();
                    if (commonAncestor.isPresent()) {
                        if (from.command(CheckSparsePath.class).setStart(parentId)
                                .setEnd(commonAncestor.get()).call()) {
                            // This should be the base commit to preserve changes that were filtered
                            // out.
                            newParents.add(0, from.graphDatabase().getMapping(parentId));
                            continue;
                        }
                    }
                }
                newParents.add(from.graphDatabase().getMapping(parentId));
            }
            if (newParents.size() > 0) {
                parent = from.graphDatabase().getMapping(newParents.get(0));
            }
            Iterator<DiffEntry> diffIter = from.command(DiffOp.class).setNewVersion(commitId)
                    .setOldVersion(parent).setReportTrees(true).call();

            // connect and send packed changes
            final URL resourceURL;
            try {
                resourceURL = new URL(repositoryURL.toString() + "/repo/applychanges");
            } catch (MalformedURLException e) {
                throw Throwables.propagate(e);
            }

            final HttpURLConnection connection;
            final OutputStream out;
            try {
                connection = (HttpURLConnection) resourceURL.openConnection();
                connection.setDoOutput(true);
                connection.setDoInput(true);
                out = connection.getOutputStream();
                // pack the commit object
                final ObjectSerializingFactory factory = DataStreamSerializationFactoryV1.INSTANCE;
                final ObjectWriter<RevCommit> commitWriter = factory
                        .createObjectWriter(TYPE.COMMIT);
                commitWriter.write(commit, out);

                // write the new parents
                out.write(newParents.size());
                for (ObjectId parentId : newParents) {
                    out.write(parentId.getRawValue());
                }

                // pack the changes
                BinaryPackedChanges changes = new BinaryPackedChanges(from);
                changes.write(out, diffIter);
            } catch (IOException e) {
                throw Throwables.propagate(e);
            }

            final InputStream in;
            try {
                in = connection.getInputStream();
                BufferedReader rd = new BufferedReader(new InputStreamReader(in));

                String line = rd.readLine();
                if (line != null) {
                    ObjectId remoteCommitId = ObjectId.valueOf(line);
                    from.graphDatabase().map(commit.getId(), remoteCommitId);
                    from.graphDatabase().map(remoteCommitId, commit.getId());
                }

            } catch (IOException e) {
View Full Code Here

        final String refspec = resolveRefSpec();
        final String treePath = refspec.substring(refspec.indexOf(':') + 1);
        final RevTree rootTree = resolveRootTree(refspec);
        final NodeRef typeTreeRef = resolTypeTreeRef(refspec, treePath, rootTree);

        final ObjectId defaultMetadataId = typeTreeRef.getMetadataId();

        final RevTree typeTree = database.getTree(typeTreeRef.objectId());

        final ProgressListener progressListener = getProgressListener();
View Full Code Here

     * Returns true if there are no unstaged changes, false otherwise
     */
    public boolean isClean() {
        Optional<ObjectId> resolved = context.command(ResolveTreeish.class).setTreeish(Ref.HEAD)
                .call();
        ObjectId indexTreeId = resolved.get();
        return getTree().getId().equals(indexTreeId);
    }
View Full Code Here

TOP

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

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.