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

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

Introduction

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

Prototype

public static <T> Iterator<T> concat(final Iterator<? extends Iterator<? extends T>> inputs) 

Source Link

Document

Combines multiple iterators into a single iterator.

Usage

From source file:org.fcrepo.kernel.impl.rdf.impl.LdpContainerRdfContext.java

private Iterator<Triple> membershipContext(final Iterator<Property> properties) {
    return Iterators.concat(Iterators.transform(properties, nodes2triples()));
}

From source file:ch.ethz.inf.vs.hypermedia.corehal.block.ThingCrawler.java

@Override
public Iterator<ThingDescriptionFuture> iterator() {
    LocationCrawler locationCrawler = new LocationCrawler().withContext(parent);
    if (targetLocation != null) {
        locationCrawler = locationCrawler.matchingPrefix(targetLocation);
    }//from   w  w  w .j a  v  a  2s .c  o m
    // Use pre order for thing discovery
    locationCrawler.setPostOrder(false);
    Iterator<Iterator<ThingDescriptionFuture>> locationResources = Iterators
            .transform(locationCrawler.iterator(), this::discoverLocation);
    Iterator<ThingDescriptionFuture> flatLocationResources = Iterators.concat(locationResources);
    Iterator<WebLink> links = Collections.emptyIterator();
    if (parent instanceof LinkListFuture) {
        links = getSortedWebLinks((LinkListFuture) parent);
    }
    return Iterators.filter(
            Iterators.concat(Iterators.transform(links, ThingCrawler::transform), flatLocationResources),
            this::filter);
}

From source file:org.fcrepo.kernel.modeshape.rdf.impl.NodeTypeRdfContext.java

/**
 * Convert a NodeType into an RDF stream by capturing the supertypes, node
 * definitions, and property definitions of the type as RDFS triples.
 *
 * @param nodeType the node type//www.  j a  v  a  2  s .  co m
 * @throws RepositoryException if repository exception occurred
 */
public NodeTypeRdfContext(final NodeType nodeType) throws RepositoryException {
    super();

    final Node nodeTypeResource = getResource(nodeType).asNode();
    final String nodeTypeName = nodeType.getName();

    LOGGER.trace("Adding triples for nodeType: {} with URI: {}", nodeTypeName, nodeTypeResource.getURI());

    concat(Collections2.transform(copyOf(nodeType.getDeclaredSupertypes()), uncheck((final NodeType x) -> {
        final Node supertypeNode = getResource(x).asNode();
        LOGGER.trace("Adding triple for nodeType: {} with subclass: {}", nodeTypeName, supertypeNode.getURI());
        return create(nodeTypeResource, subClassOf.asNode(), supertypeNode);
    })::apply));

    concat(Iterators.concat(Iterators.transform(
            Iterators.filter(forArray(nodeType.getDeclaredChildNodeDefinitions()),
                    isWildcardResidualDefinition.negate()::test),
            (new NodeDefinitionToTriples(nodeTypeResource))::apply)));

    concat(Iterators.concat(Iterators.transform(
            Iterators.filter(forArray(nodeType.getDeclaredPropertyDefinitions()),
                    isWildcardResidualDefinition.negate()::test),
            (new PropertyDefinitionToTriples(nodeTypeResource))::apply)));

    concat(create(nodeTypeResource, type.asNode(), Class.asNode()),
            create(nodeTypeResource, label.asNode(), createLiteral(nodeTypeName)));
}

From source file:backup.store.local.LocalBackupStore.java

@Override
public ExtendedBlockEnum<Void> getExtendedBlocks() {
    File[] pools = dir.listFiles((FileFilter) pathname -> pathname.isDirectory());
    Builder<Iterator<ExtendedBlock>> builder = ImmutableList.builder();
    for (File pool : pools) {
        builder.add(getExtendedBlocks(pool));
    }/*from  w  w  w  . j a  v  a  2 s .  c  om*/
    return ExtendedBlockEnum.toExtendedBlockEnum(Iterators.concat(builder.build().iterator()));
}

From source file:org.fcrepo.kernel.rdf.impl.PropertiesRdfContext.java

private Iterator<Triple> triplesFromProperties(final javax.jcr.Node n) throws RepositoryException {
    LOGGER.trace("Creating triples for node: {}", n);
    final UnmodifiableIterator<Property> nonBinaryProperties = Iterators
            .filter(new PropertyIterator(n.getProperties()), not(isInternalProperty));

    final UnmodifiableIterator<Property> nonBinaryPropertiesCopy = Iterators
            .filter(new PropertyIterator(n.getProperties()), not(isInternalProperty));

    return Iterators.concat(new ZippingIterator<>(Iterators.transform(nonBinaryProperties, property2values),
            Iterators.transform(nonBinaryPropertiesCopy, property2triple)));

}

From source file:org.locationtech.geogig.osm.internal.history.HistoryDownloader.java

/**
 * @return the next available changeset, or absent if reached the last one
 * @throws IOException//from  w  ww  .  jav a  2 s. c om
 * @throws InterruptedException
 */
public Iterator<Changeset> fetchChangesets() {

    Range<Long> range = Range.closed(initialChangeset, finalChangeset);
    ContiguousSet<Long> changesetIds = ContiguousSet.create(range, DiscreteDomain.longs());
    final int fetchSize = 100;
    Iterator<List<Long>> partitions = Iterators.partition(changesetIds.iterator(), fetchSize);

    Function<List<Long>, Iterator<Changeset>> asChangesets = new Function<List<Long>, Iterator<Changeset>>() {
        @Override
        public Iterator<Changeset> apply(List<Long> batchIds) {

            Iterable<Changeset> changesets = downloader.fetchChangesets(batchIds);

            for (Changeset changeset : changesets) {
                if (filter.apply(changeset)) {
                    Supplier<Optional<File>> changesFile;
                    changesFile = downloader.fetchChanges(changeset.getId());
                    Supplier<Optional<Iterator<Change>>> changes = new ChangesSupplier(changesFile);
                    changeset.setChanges(changes);
                }
            }

            return changesets.iterator();
        }
    };

    Iterator<Iterator<Changeset>> changesets = Iterators.transform(partitions, asChangesets);
    Iterator<Changeset> concat = Iterators.concat(changesets);
    return concat;
}

From source file:org.apache.jackrabbit.oak.security.authorization.composite.CompositeAccessControlManager.java

@Override
public AccessControlPolicyIterator getApplicablePolicies(String absPath) throws RepositoryException {
    List<AccessControlPolicyIterator> l = Lists.newArrayList();
    for (AccessControlManager acMgr : acMgrs) {
        if (acMgr instanceof PolicyOwner) {
            l.add(acMgr.getApplicablePolicies(absPath));
        }//from w w w.  j  a v  a 2 s. c  o m
    }
    return new AccessControlPolicyIteratorAdapter(
            Iterators.concat(l.toArray(new AccessControlPolicyIterator[l.size()])));
}

From source file:org.jclouds.collect.AdvanceUntilEmptyIterable.java

/**
 * Combines all the pages into a single unmodifiable iterable. ex.
 * //  w ww. j a v a  2s.co m
 * <pre>
 * FluentIterable<StorageMetadata> blobs = blobstore.list(...).concat();
 * for (StorageMetadata blob : blobs) {
 *     process(blob);
 * }
 * </pre>
 * 
 * @see Iterators#concat
 */
public FluentIterable<E> concat() {
    final Iterator<FluentIterable<E>> iterator = iterator();
    final UnmodifiableIterator<Iterator<E>> unmodifiable = new UnmodifiableIterator<Iterator<E>>() {
        @Override
        public boolean hasNext() {
            return iterator.hasNext();
        }

        @Override
        public Iterator<E> next() {
            return iterator.next().iterator();
        }
    };
    return new FluentIterable<E>() {
        @Override
        public Iterator<E> iterator() {
            return Iterators.concat(unmodifiable);
        }
    };
}

From source file:org.apache.cassandra.hadoop.cql3.LimitedLocalNodeFirstLocalBalancingPolicy.java

private static Set<InetAddress> getLocalInetAddresses() {
    try {//  ww w  .  j  a v a2s.  c  o  m
        return Sets.newHashSet(Iterators
                .concat(Iterators.transform(Iterators.forEnumeration(NetworkInterface.getNetworkInterfaces()),
                        new Function<NetworkInterface, Iterator<InetAddress>>() {
                            @Override
                            public Iterator<InetAddress> apply(NetworkInterface netIface) {
                                return Iterators.forEnumeration(netIface.getInetAddresses());
                            }
                        })));
    } catch (SocketException e) {
        logger.warn("Could not retrieve local network interfaces.", e);
        return Collections.emptySet();
    }
}

From source file:org.locationtech.geogig.repository.AutoCloseableIterator.java

public static <T> AutoCloseableIterator<T> concat(AutoCloseableIterator<Iterator<T>> its) {
    Iterator<T> result = Iterators.concat(its);

    return new AutoCloseableIterator<T>() {

        @Override//w ww .  j av  a2s.  c o  m
        public boolean hasNext() {
            return result.hasNext();
        }

        @Override
        public T next() {
            return result.next();
        }

        @Override
        public void close() {
            its.close();
        }

    };
}