List of usage examples for org.apache.commons.collections.iterators IteratorChain IteratorChain
public IteratorChain(Iterator a, Iterator b)
IteratorChain
over the two given iterators. From source file:com.cyclopsgroup.waterview.DefaultContext.java
/** * Overwrite or implement method keys()/*from w w w. j ava 2 s .co m*/ * @see com.cyclopsgroup.waterview.Context#keys() */ public Iterator keys() { if (parent == null) { return content.keySet().iterator(); } return new IteratorChain(parent.keys(), content.keySet().iterator()); }
From source file:name.martingeisse.webide.features.java.compiler.classpath.AbstractLibraryFileManager.java
@Override public final Iterable<JavaFileObject> list(final Location location, final String packageName, final Set<Kind> kinds, final boolean recurse) throws IOException { logger.trace("listing library [" + libraryNameForLogging + "] files for location [" + location + "], package [" + packageName + "], kinds [" + StringUtils.join(kinds, ", ") + "], recurse [" + recurse + "]"); final Iterable<JavaFileObject> superIterable = super.list(location, packageName, kinds, recurse); if (location == StandardLocation.CLASS_PATH && kinds.contains(Kind.CLASS)) { final Iterable<JavaFileObject> libraryIterable = listLibraryClassFiles(packageName, recurse); logger.trace(// w w w . ja v a2 s. co m "contributed files from this library: " + StringUtils.join(libraryIterable.iterator(), ", ")); return new Iterable<JavaFileObject>() { @Override public Iterator<JavaFileObject> iterator() { return GenericTypeUtil .unsafeCast(new IteratorChain(superIterable.iterator(), libraryIterable.iterator())); } }; } else { logger.trace("no contribution from this library because of location/kinds"); return superIterable; } }
From source file:name.martingeisse.webide.features.java.compiler.memfile.MemoryFileManager.java
@Override public Iterable<JavaFileObject> list(final Location location, final String packageName, final Set<Kind> kinds, final boolean recurse) throws IOException { logger.trace("listing memory files for location [" + location + "], package [" + packageName + "], kinds [" + StringUtils.join(kinds, ", ") + "], recurse [" + recurse + "]"); final Iterable<JavaFileObject> superIterable = super.list(location, packageName, kinds, recurse); final Iterable<JavaFileObject> thisIterable = listThis(location, packageName, kinds, recurse); logger.trace("contributed memory files: " + StringUtils.join(thisIterable.iterator(), ", ")); return new Iterable<JavaFileObject>() { @Override// w ww. j ava2s. c om public Iterator<JavaFileObject> iterator() { return GenericTypeUtil .unsafeCast(new IteratorChain(superIterable.iterator(), thisIterable.iterator())); } }; }
From source file:flex2.compiler.mxml.rep.MxmlDocument.java
/** * */// w w w . jav a 2s.c o m public final Iterator<Initializer> getNonStagePropertyInitializerIterator() { return new FilterIterator( new IteratorChain(root.getPropertyInitializerIterator(false), getTopLevelInitializerIterator()), new Predicate() { public boolean evaluate(Object object) { if (object instanceof NamedInitializer) return (!StandardDefs.isStageProperty(((NamedInitializer) object).getName())) && (!((NamedInitializer) object).isDesignLayer()); return true; } }); }
From source file:flex2.compiler.mxml.rep.MxmlDocument.java
/** * */// w w w . j a v a2s . com public final Iterator<Initializer> getStagePropertyInitializerIterator() { return new FilterIterator( new IteratorChain(root.getPropertyInitializerIterator(false), getTopLevelInitializerIterator()), new Predicate() { public boolean evaluate(Object object) { if (object instanceof NamedInitializer) return StandardDefs.isStageProperty(((NamedInitializer) object).getName()); return false; } }); }
From source file:flex2.compiler.mxml.rep.MxmlDocument.java
/** * a little trickiness here: we need to initialize both our superclass properties, and document variables that * have initializers/*from w w w . j a v a2 s . c o m*/ */ public final Iterator<Initializer> getPropertyInitializerIterator() { return new IteratorChain(root.getPropertyInitializerIterator(false), getTopLevelInitializerIterator()); }
From source file:flex2.compiler.mxml.rep.Model.java
/** * *//* w w w . java 2 s. com*/ public Iterator getStyleAndEffectInitializerIterator() { return new IteratorChain(getStyleInitializerIterator(), getEffectInitializerIterator()); }
From source file:org.apache.accumulo.server.util.FindOfflineTablets.java
/** * @param args//from w ww . ja v a2 s. com */ public static void main(String[] args) throws Exception { ClientOpts opts = new ClientOpts(); opts.parseArgs(FindOfflineTablets.class.getName(), args); final AtomicBoolean scanning = new AtomicBoolean(false); Instance instance = opts.getInstance(); MetaDataTableScanner rootScanner = new MetaDataTableScanner(instance, SecurityConstants.getSystemCredentials(), Constants.METADATA_ROOT_TABLET_KEYSPACE); MetaDataTableScanner metaScanner = new MetaDataTableScanner(instance, SecurityConstants.getSystemCredentials(), Constants.NON_ROOT_METADATA_KEYSPACE); @SuppressWarnings("unchecked") Iterator<TabletLocationState> scanner = (Iterator<TabletLocationState>) new IteratorChain(rootScanner, metaScanner); LiveTServerSet tservers = new LiveTServerSet(instance, DefaultConfiguration.getDefaultConfiguration(), new Listener() { @Override public void update(LiveTServerSet current, Set<TServerInstance> deleted, Set<TServerInstance> added) { if (!deleted.isEmpty() && scanning.get()) log.warn("Tablet servers deleted while scanning: " + deleted); if (!added.isEmpty() && scanning.get()) log.warn("Tablet servers added while scanning: " + added); } }); tservers.startListeningForTabletServerChanges(); scanning.set(true); while (scanner.hasNext()) { TabletLocationState locationState = scanner.next(); TabletState state = locationState.getState(tservers.getCurrentServers()); if (state != null && state != TabletState.HOSTED && TableManager.getInstance() .getTableState(locationState.extent.getTableId().toString()) != TableState.OFFLINE) if (!locationState.extent.equals(Constants.ROOT_TABLET_EXTENT)) System.out.println(locationState + " is " + state + " #walogs:" + locationState.walogs.size()); } }
From source file:org.apache.chemistry.opencmis.jcr.util.Iterables.java
public static <T> Iterable<T> concat(final Iterable<T> it1, final Iterable<T> it2) { return new Iterable<T>() { @SuppressWarnings("unchecked") public Iterator<T> iterator() { return new IteratorChain(it1.iterator(), it2.iterator()); }/*www . j av a2 s.co m*/ }; }
From source file:org.apache.jackrabbit.core.ItemImpl.java
/** * {@inheritDoc}//w w w .j a v a 2 s .c om */ public void save() throws AccessDeniedException, ItemExistsException, ConstraintViolationException, InvalidItemStateException, ReferentialIntegrityException, VersionException, LockException, NoSuchNodeTypeException, RepositoryException { // check state of this instance sanityCheck(); // synchronize on this session synchronized (session) { /** * build list of transient (i.e. new & modified) states that * should be persisted */ Collection dirty = getTransientStates(); if (dirty.size() == 0) { // no transient items, nothing to do here return; } /** * build list of transient descendants in the attic * (i.e. those marked as 'removed') */ Collection removed = getRemovedStates(); /** * build set of item id's which are within the scope of * (i.e. affected by) this save operation */ Set affectedIds = new HashSet(dirty.size() + removed.size()); for (Iterator it = new IteratorChain(dirty.iterator(), removed.iterator()); it.hasNext();) { affectedIds.add(((ItemState) it.next()).getId()); } /** * make sure that this save operation is totally 'self-contained' * and independent; items within the scope of this save operation * must not have 'external' dependencies; * (e.g. moving a node requires that the target node including both * old and new parents are saved) */ for (Iterator it = new IteratorChain(dirty.iterator(), removed.iterator()); it.hasNext();) { ItemState transientState = (ItemState) it.next(); if (transientState.isNode()) { NodeState nodeState = (NodeState) transientState; Set dependentIDs = new HashSet(); if (nodeState.hasOverlayedState()) { NodeState overlayedState = (NodeState) nodeState.getOverlayedState(); NodeId oldParentId = overlayedState.getParentId(); NodeId newParentId = nodeState.getParentId(); if (oldParentId != null) { if (newParentId == null) { // node has been removed, add old parents // to dependencies if (overlayedState.isShareable()) { dependentIDs.addAll(overlayedState.getSharedSet()); } else { dependentIDs.add(oldParentId); } } else { if (!oldParentId.equals(newParentId)) { // node has been moved to a new location, // add old and new parent to dependencies dependentIDs.add(oldParentId); dependentIDs.add(newParentId); } else { // parent id hasn't changed, check whether // the node has been renamed (JCR-1034) if (!affectedIds.contains(newParentId) && stateMgr.hasTransientItemState(newParentId)) { try { NodeState parent = (NodeState) stateMgr .getTransientItemState(newParentId); // check parent's renamed child node entries for (Iterator cneIt = parent.getRenamedChildNodeEntries() .iterator(); cneIt.hasNext();) { ChildNodeEntry cne = (ChildNodeEntry) cneIt.next(); if (cne.getId().equals(nodeState.getId())) { // node has been renamed, // add parent to dependencies dependentIDs.add(newParentId); } } } catch (ItemStateException ise) { // should never get here log.warn("failed to retrieve transient state: " + newParentId, ise); } } } } } } // removed child node entries for (Iterator cneIt = nodeState.getRemovedChildNodeEntries().iterator(); cneIt.hasNext();) { ChildNodeEntry cne = (ChildNodeEntry) cneIt.next(); dependentIDs.add(cne.getId()); } // added child node entries for (Iterator cneIt = nodeState.getAddedChildNodeEntries().iterator(); cneIt.hasNext();) { ChildNodeEntry cne = (ChildNodeEntry) cneIt.next(); dependentIDs.add(cne.getId()); } // now walk through dependencies and check whether they // are within the scope of this save operation Iterator depIt = dependentIDs.iterator(); while (depIt.hasNext()) { NodeId id = (NodeId) depIt.next(); if (!affectedIds.contains(id)) { // JCR-1359 workaround: check whether unresolved // dependencies originate from 'this' session; // otherwise ignore them if (stateMgr.hasTransientItemState(id) || stateMgr.hasTransientItemStateInAttic(id)) { // need to save dependency as well String msg = itemMgr.safeGetJCRPath(id) + " needs to be saved as well."; log.debug(msg); throw new ConstraintViolationException(msg); } } } } } /** * validate access and node type constraints * (this will also validate child removals) */ validateTransientItems(dirty.iterator(), removed.iterator()); // start the update operation try { stateMgr.edit(); } catch (IllegalStateException e) { String msg = "Unable to start edit operation"; log.debug(msg); throw new RepositoryException(msg, e); } boolean succeeded = false; try { // process transient items marked as 'removed' removeTransientItems(removed.iterator()); // process transient items that have change in mixins processShareableNodes(dirty.iterator()); // initialize version histories for new nodes (might generate new transient state) if (initVersionHistories(dirty.iterator())) { // re-build the list of transient states because the previous call // generated new transient state dirty = getTransientStates(); } // process 'new' or 'modified' transient states persistTransientItems(dirty.iterator()); // dispose the transient states marked 'new' or 'modified' // at this point item state data is pushed down one level, // node instances are disconnected from the transient // item state and connected to the 'overlayed' item state. // transient item states must be removed now. otherwise // the session item state provider will return an orphaned // item state which is not referenced by any node instance. for (Iterator it = dirty.iterator(); it.hasNext();) { ItemState transientState = (ItemState) it.next(); // dispose the transient state, it is no longer used stateMgr.disposeTransientItemState(transientState); } // end update operation stateMgr.update(); // update operation succeeded succeeded = true; } catch (StaleItemStateException e) { throw new InvalidItemStateException(e.getMessage()); } catch (ItemStateException e) { throw new RepositoryException("Unable to update item: " + this, e); } finally { if (!succeeded) { // update operation failed, cancel all modifications stateMgr.cancel(); // JCR-288: if an exception has been thrown during // update() the transient changes have already been // applied by persistTransientItems() and we need to // restore transient state, i.e. undo the effect of // persistTransientItems() restoreTransientItems(dirty.iterator()); } } // now it is safe to dispose the transient states: // dispose the transient states marked 'removed'. // item states in attic are removed after store, because // the observation mechanism needs to build paths of removed // items in store(). for (Iterator it = removed.iterator(); it.hasNext();) { ItemState transientState = (ItemState) it.next(); // dispose the transient state, it is no longer used stateMgr.disposeTransientItemStateInAttic(transientState); } } }