List of usage examples for com.google.common.collect Iterators singletonIterator
public static <T> UnmodifiableIterator<T> singletonIterator(@Nullable final T value)
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"); } }; }