Example usage for com.google.common.collect Iterators singletonIterator

List of usage examples for com.google.common.collect Iterators singletonIterator

Introduction

In this page you can find the example usage for com.google.common.collect Iterators singletonIterator.

Prototype

public static <T> UnmodifiableIterator<T> singletonIterator(@Nullable final T value) 

Source Link

Document

Returns an iterator containing only value .

Usage

From source file:org.geogit.api.porcelain.RevertOp.java

private List<Conflict> applyRevertedChanges(RevCommit commit) {

    ObjectId parentCommitId = ObjectId.NULL;
    if (commit.getParentIds().size() > 0) {
        parentCommitId = commit.getParentIds().get(0);
    }//from   w w w .ja  v a  2s  .  c o m
    ObjectId parentTreeId = ObjectId.NULL;
    if (repository.commitExists(parentCommitId)) {
        parentTreeId = repository.getCommit(parentCommitId).getTreeId();
    }

    // get changes (in reverse)
    Iterator<DiffEntry> diffs = command(DiffTree.class).setNewTree(parentTreeId).setOldTree(commit.getTreeId())
            .setReportTrees(true).call();

    ObjectId headTreeId = repository.getCommit(revertHead).getTreeId();
    final RevTree headTree = repository.getTree(headTreeId);

    ArrayList<Conflict> conflicts = new ArrayList<Conflict>();
    DiffEntry diff;
    while (diffs.hasNext()) {
        diff = diffs.next();
        if (diff.oldObjectId().equals(ObjectId.NULL)) {
            // Feature was deleted
            Optional<NodeRef> node = command(FindTreeChild.class).setChildPath(diff.newPath()).setIndex(true)
                    .setParent(headTree).call();
            // make sure it is still deleted
            if (node.isPresent()) {
                conflicts.add(new Conflict(diff.newPath(), diff.oldObjectId(), node.get().objectId(),
                        diff.newObjectId()));
            } else {
                getIndex().stage(getProgressListener(), Iterators.singletonIterator(diff), 1);
            }
        } else {
            // Feature was added or modified
            Optional<NodeRef> node = command(FindTreeChild.class).setChildPath(diff.oldPath()).setIndex(true)
                    .setParent(headTree).call();
            ObjectId nodeId = node.get().getNode().getObjectId();
            // Make sure it wasn't changed
            if (node.isPresent() && nodeId.equals(diff.oldObjectId())) {
                getIndex().stage(getProgressListener(), Iterators.singletonIterator(diff), 1);
            } else {
                // do not mark as conflict if reverting to the same feature currently in HEAD
                if (!nodeId.equals(diff.newObjectId())) {
                    conflicts.add(new Conflict(diff.newPath(), diff.oldObjectId(), node.get().objectId(),
                            diff.newObjectId()));
                }
            }

        }

    }

    return conflicts;

}

From source file:org.pshdl.model.impl.AbstractHDLManip.java

@Override
public Iterator<IHDLObject> iterator() {
    return new Iterator<IHDLObject>() {

        private int pos = 0;
        private Iterator<? extends IHDLObject> current;

        @Override//from   w  ww  .j  av  a  2  s  .  co  m
        public boolean hasNext() {
            if ((current != null) && !current.hasNext()) {
                current = null;
            }
            while (current == null) {
                switch (pos++) {
                case 0:
                    if (target != null) {
                        current = Iterators.singletonIterator(target);
                    }
                    break;
                case 1:
                    if (castTo != null) {
                        current = Iterators.singletonIterator(castTo);
                    }
                    break;
                default:
                    return false;
                }
            }
            return (current != null) && current.hasNext();
        }

        @Override
        public IHDLObject next() {
            return current.next();
        }

        @Override
        public void remove() {
            throw new IllegalArgumentException("Not supported");
        }

    };
}

From source file:org.locationtech.geogig.api.porcelain.RevertOp.java

private List<Conflict> applyRevertedChanges(RevCommit commit) {

    ObjectId parentCommitId = ObjectId.NULL;
    if (commit.getParentIds().size() > 0) {
        parentCommitId = commit.getParentIds().get(0);
    }//from  w w  w .  j  a  va  2 s .c om
    ObjectId parentTreeId = ObjectId.NULL;
    Repository repository = repository();
    if (repository.commitExists(parentCommitId)) {
        parentTreeId = repository.getCommit(parentCommitId).getTreeId();
    }

    // get changes (in reverse)
    Iterator<DiffEntry> reverseDiff = command(DiffTree.class).setNewTree(parentTreeId)
            .setOldTree(commit.getTreeId()).setReportTrees(false).call();

    ObjectId headTreeId = repository.getCommit(revertHead).getTreeId();
    final RevTree headTree = repository.getTree(headTreeId);

    ArrayList<Conflict> conflicts = new ArrayList<Conflict>();
    DiffEntry diff;
    while (reverseDiff.hasNext()) {
        diff = reverseDiff.next();
        if (diff.isAdd()) {
            // Feature was deleted
            Optional<NodeRef> node = command(FindTreeChild.class).setChildPath(diff.newPath())
                    .setParent(headTree).call();
            // make sure it is still deleted
            if (node.isPresent()) {
                conflicts.add(new Conflict(diff.newPath(), diff.oldObjectId(), node.get().objectId(),
                        diff.newObjectId()));
            } else {
                index().stage(getProgressListener(), Iterators.singletonIterator(diff), 1);
            }
        } else {
            // Feature was added or modified
            Optional<NodeRef> node = command(FindTreeChild.class).setChildPath(diff.oldPath())
                    .setParent(headTree).call();
            ObjectId nodeId = node.get().getNode().getObjectId();
            // Make sure it wasn't changed
            if (node.isPresent() && nodeId.equals(diff.oldObjectId())) {
                index().stage(getProgressListener(), Iterators.singletonIterator(diff), 1);
            } else {
                // do not mark as conflict if reverting to the same feature currently in HEAD
                if (!nodeId.equals(diff.newObjectId())) {
                    conflicts.add(new Conflict(diff.newPath(), diff.oldObjectId(), node.get().objectId(),
                            diff.newObjectId()));
                }
            }

        }

    }

    return conflicts;

}

From source file:org.locationtech.geogig.repository.impl.WorkingTreeImpl.java

@Override
public ObjectId insert(FeatureInfo featureInfo) {
    checkNotNull(featureInfo);
    return insert(Iterators.singletonIterator(featureInfo), DefaultProgressListener.NULL);
}

From source file:com.addthis.meshy.service.file.FileTarget.java

/**
 * Recursively (though it calls walkSafe for its recursion) walk through the filesystem to locate the
 * requested files. Returns void because it streams the results out through the mesh network in place
 * instead of appending to a results list. Remember that send() is asynchronous so this does not block
 * on network activity; it may block on disk i/o or various local handler implementations. Also the
 * results that it sends out may not be recieved as fast as imagined (queuing in meshy output).
 */// w ww.j ava2  s. c  o  m
private void walk(final WalkState state, final String vfsKey, final VirtualFileReference ref,
        final VFSPath path) throws Exception {
    if (canceled.get()) {
        return;
    }
    long mark = debugCacheLine > 0 ? System.currentTimeMillis() : 0;
    String token = path.getToken();
    final boolean isGlob = GLOB_MATCHER.matchesAnyOf(token);
    final boolean asDir = path.hasMoreTokens();
    Iterator<VirtualFileReference> files;
    if (isGlob) {
        PathMatcher pathMatcher = FileSystems.getDefault().getPathMatcher("glob:" + token);
        files = ref.listFiles(pathMatcher);
    } else {
        VirtualFileReference nextRef = ref.getFile(token);
        if (nextRef != null) {
            files = Iterators.singletonIterator(ref.getFile(token));
        } else {
            return;
        }
    }
    log.trace("walk token={} ref={} path={} asDir={} files={}", token, ref, path, asDir, files);
    /* possible now b/c of change to follow sym links */
    if (asDir) {
        if (files == null) {
            return;
        }
        while (files.hasNext() && !canceled.get()) {
            VirtualFileReference next = files.next();
            if (path.push(next.getName())) {
                walkSafe(state, vfsKey, next, path);
                state.dirs++;
                path.pop();
            }
        }
    } else {
        if (files == null) {
            return;
        }
        while (files.hasNext() && !canceled.get()) {
            VirtualFileReference next = files.next();
            FileReference fileRef = new FileReference(path.getRealPath(), next);
            sendLocalFileRef(fileRef);
        }
        state.files += found.get();
    }
    if (debugCacheLine > 0) {
        long time = System.currentTimeMillis() - mark;
        if (time > debugCacheLine) {
            String pathString = vfsKey + ":" + path.getRealPath() + "[" + token + "]";
            log.warn("slow ({}) for {} {{}}", time, pathString, state);
        }
    }
}

From source file:org.pshdl.model.impl.AbstractHDLTernary.java

@Override
public Iterator<IHDLObject> iterator() {
    return new Iterator<IHDLObject>() {

        private int pos = 0;
        private Iterator<? extends IHDLObject> current;

        @Override// w ww .j a va 2 s.c om
        public boolean hasNext() {
            if ((current != null) && !current.hasNext()) {
                current = null;
            }
            while (current == null) {
                switch (pos++) {
                case 0:
                    if (ifExpr != null) {
                        current = Iterators.singletonIterator(ifExpr);
                    }
                    break;
                case 1:
                    if (thenExpr != null) {
                        current = Iterators.singletonIterator(thenExpr);
                    }
                    break;
                case 2:
                    if (elseExpr != null) {
                        current = Iterators.singletonIterator(elseExpr);
                    }
                    break;
                default:
                    return false;
                }
            }
            return (current != null) && current.hasNext();
        }

        @Override
        public IHDLObject next() {
            return current.next();
        }

        @Override
        public void remove() {
            throw new IllegalArgumentException("Not supported");
        }

    };
}

From source file:com.addthis.hydra.data.query.QueryElementNode.java

public Iterator<DataTreeNode> getNodes(LinkedList<DataTreeNode> stack) {
    List<DataTreeNode> ret = null;
    if (up()) {/*w w w  .j  a v  a  2  s. c o  m*/
        ret = new ArrayList<>(1);
        ret.add(stack.get(1));
        return ret.iterator();
    }
    DataTreeNode parent = stack.peek();
    DataTreeNode defaultNode = null;
    if (defaultValue != null) {
        defaultNode = new VirtualTreeNode(defaultValue, defaultHits);
    }
    try {
        DataTreeNode tmp;
        if (path != null) {
            DataTreeNode refnode = followPath(parent.getTreeRoot(), path);
            return refnode != null ? new ReferencePathIterator(refnode, parent) : null;
        }
        if (trap != null) {
            for (String name : trap) {
                for (ClosableIterator<DataTreeNode> iter = parent.getIterator(); iter.hasNext();) {
                    tmp = iter.next();
                    if (regex()) {
                        if (tmp.getName().matches(name)) {
                            iter.close();
                            return null;
                        }
                    } else {
                        if (tmp.getName().equals(name)) {
                            iter.close();
                            return null;
                        }
                    }
                }
            }
        }
        if ((match == null) && (regex == null) && (data == null)) {
            Iterator<DataTreeNode> result = parent.getIterator();
            if (result.hasNext() || (defaultNode == null)) {
                return result;
            } else {
                return Iterators.singletonIterator(defaultNode);
            }
        }
        ret = new LinkedList<>();
        if (match != null) {
            if (regex()) {
                if (regexPatterns == null) {
                    regexPatterns = new Pattern[match.length];
                    for (int i = 0; i < match.length; i++) {
                        regexPatterns[i] = Pattern.compile(match[i]);
                    }
                }
                for (Iterator<DataTreeNode> iter = parent.getIterator(); iter.hasNext();) {
                    tmp = iter.next();
                    for (Pattern name : regexPatterns) {
                        if (name.matcher(tmp.getName()).matches() ^ not()) {
                            ret.add(tmp);
                        }
                    }
                }
            } else if (range()) {
                if (match.length == 0) {
                    return parent.getIterator();
                } else if (match.length == 1) {
                    return parent.getIterator(match[0]);
                } else {
                    ArrayList<Iterator<DataTreeNode>> metaIterator = new ArrayList<>();
                    for (String name : match) {
                        metaIterator.add(parent.getIterator(name));
                    }
                    return Iterators.concat(metaIterator.iterator());
                }
            } else if (rangeStrict()) {
                return parent.getIterator(match.length > 0 ? match[0] : null,
                        match.length > 1 ? match[1] : null);
            } else if (data == null) {
                return new LazyNodeMatch(parent, match, defaultNode);
            } else {
                for (String name : match) {
                    DataTreeNode find = parent.getNode(name);
                    if (find != null) {
                        ret.add(find);
                    }
                }
            }
        }
        if (data != null) {
            if (regex()) {
                if (parent.getDataMap() != null) {
                    for (Map.Entry<String, TreeNodeData> actor : parent.getDataMap().entrySet()) {
                        int memSize = CodecBin2.encodeBytes(actor.getValue()).length;
                        ReadTreeNode memNode = new ReadTreeNode(actor.getKey(), memSize);
                        ret.add(memNode);
                    }
                }
            } else {
                DataTreeNodeActor actor = parent.getData(data);
                if (actor != null) {
                    Collection<DataTreeNode> nodes = actor.onNodeQuery(dataKey);
                    if (nodes != null) {
                        ret.addAll(nodes);
                    }
                }
            }
        }
    } catch (RuntimeException ex) {
        throw ex;
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    if ((ret.size() == 0) && (defaultNode != null)) {
        return Iterators.singletonIterator(defaultNode);
    } else {
        return ret.iterator();
    }
}

From source file:org.pshdl.model.impl.AbstractHDLInstantiation.java

@Override
public Iterator<IHDLObject> iterator() {
    return new Iterator<IHDLObject>() {

        private int pos = 0;
        private Iterator<? extends IHDLObject> current;

        @Override//w w  w  .j a va 2s  .  c  om
        public boolean hasNext() {
            if ((current != null) && !current.hasNext()) {
                current = null;
            }
            while (current == null) {
                switch (pos++) {
                case 0:
                    if ((annotations != null) && (annotations.size() != 0)) {
                        current = annotations.iterator();
                    }
                    break;
                case 1:
                    if (var != null) {
                        current = Iterators.singletonIterator(var);
                    }
                    break;
                case 2:
                    if ((arguments != null) && (arguments.size() != 0)) {
                        current = arguments.iterator();
                    }
                    break;
                default:
                    return false;
                }
            }
            return (current != null) && current.hasNext();
        }

        @Override
        public IHDLObject next() {
            return current.next();
        }

        @Override
        public void remove() {
            throw new IllegalArgumentException("Not supported");
        }

    };
}

From source file:org.pshdl.model.impl.AbstractHDLEnumDeclaration.java

@Override
public Iterator<IHDLObject> iterator() {
    return new Iterator<IHDLObject>() {

        private int pos = 0;
        private Iterator<? extends IHDLObject> current;

        @Override/*from w w  w .j a  va 2 s.co m*/
        public boolean hasNext() {
            if ((current != null) && !current.hasNext()) {
                current = null;
            }
            while (current == null) {
                switch (pos++) {
                case 0:
                    if ((annotations != null) && (annotations.size() != 0)) {
                        current = annotations.iterator();
                    }
                    break;
                case 1:
                    if (hEnum != null) {
                        current = Iterators.singletonIterator(hEnum);
                    }
                    break;
                default:
                    return false;
                }
            }
            return (current != null) && current.hasNext();
        }

        @Override
        public IHDLObject next() {
            return current.next();
        }

        @Override
        public void remove() {
            throw new IllegalArgumentException("Not supported");
        }

    };
}

From source file:org.pshdl.model.impl.AbstractHDLInterfaceDeclaration.java

@Override
public Iterator<IHDLObject> iterator() {
    return new Iterator<IHDLObject>() {

        private int pos = 0;
        private Iterator<? extends IHDLObject> current;

        @Override// w w  w.  ja v a  2 s. c o m
        public boolean hasNext() {
            if ((current != null) && !current.hasNext()) {
                current = null;
            }
            while (current == null) {
                switch (pos++) {
                case 0:
                    if ((annotations != null) && (annotations.size() != 0)) {
                        current = annotations.iterator();
                    }
                    break;
                case 1:
                    if (hIf != null) {
                        current = Iterators.singletonIterator(hIf);
                    }
                    break;
                default:
                    return false;
                }
            }
            return (current != null) && current.hasNext();
        }

        @Override
        public IHDLObject next() {
            return current.next();
        }

        @Override
        public void remove() {
            throw new IllegalArgumentException("Not supported");
        }

    };
}