Example usage for com.google.common.util.concurrent Futures immediateCheckedFuture

List of usage examples for com.google.common.util.concurrent Futures immediateCheckedFuture

Introduction

In this page you can find the example usage for com.google.common.util.concurrent Futures immediateCheckedFuture.

Prototype

@GwtIncompatible("TODO")
@CheckReturnValue
public static <V, X extends Exception> CheckedFuture<V, X> immediateCheckedFuture(@Nullable V value) 

Source Link

Document

Returns a CheckedFuture which has its value set immediately upon construction.

Usage

From source file:org.opendaylight.yangtools.yang.model.repo.util.FilesystemSchemaSourceCache.java

@Override
public synchronized CheckedFuture<? extends T, SchemaSourceException> getSource(
        final SourceIdentifier sourceIdentifier) {
    final File file = sourceIdToFile(sourceIdentifier, storageDirectory);
    if (file.exists() && file.canRead()) {
        LOG.trace("Source {} found in cache as {}", sourceIdentifier, file);
        final SchemaSourceRepresentation restored = STORAGE_ADAPTERS.get(representation)
                .restore(sourceIdentifier, file);
        return Futures.immediateCheckedFuture(representation.cast(restored));
    }//  w  w  w.j a va  2 s . com

    LOG.debug("Source {} not found in cache as {}", sourceIdentifier, file);
    return Futures.immediateFailedCheckedFuture(
            new MissingSchemaSourceException("Source not found", sourceIdentifier));
}

From source file:org.opendaylight.openflowplugin.impl.statistics.StatisticsContextImpl.java

private ListenableFuture<Boolean> chooseStat(final MultipartType multipartType) {
    switch (multipartType) {
    case OFPMPFLOW:
        return collectFlowStatistics(multipartType);
    case OFPMPTABLE:
        return collectTableStatistics(multipartType);
    case OFPMPPORTSTATS:
        return collectPortStatistics(multipartType);
    case OFPMPQUEUE:
        return collectQueueStatistics(multipartType);
    case OFPMPGROUPDESC:
        return collectGroupDescStatistics(multipartType);
    case OFPMPGROUP:
        return collectGroupStatistics(multipartType);
    case OFPMPMETERCONFIG:
        return collectMeterConfigStatistics(multipartType);
    case OFPMPMETER:
        return collectMeterStatistics(multipartType);
    default:/*from  w w  w.ja  va  2s . c  om*/
        LOG.warn("Unsuported Statistics type {}", multipartType);
        return Futures.immediateCheckedFuture(Boolean.TRUE);
    }
}

From source file:org.onos.yangtools.yang.parser.repo.SharedSchemaContextFactory.java

@Override
public CheckedFuture<SchemaContext, SchemaResolutionException> createSchemaContext(
        final Collection<SourceIdentifier> requiredSources) {
    // Make sources unique
    final List<SourceIdentifier> uniqueSourceIdentifiers = deDuplicateSources(requiredSources);

    final SchemaContext existing = cache.getIfPresent(uniqueSourceIdentifiers);
    if (existing != null) {
        LOG.debug("Returning cached context {}", existing);
        return Futures.immediateCheckedFuture(existing);
    }/*from   w w  w  . j a v  a2s.  c o m*/

    // Request all sources be loaded
    ListenableFuture<List<ASTSchemaSource>> sf = Futures
            .allAsList(Collections2.transform(uniqueSourceIdentifiers, requestSources));

    // Detect mismatch between requested Source IDs and IDs that are extracted from parsed source
    // Also remove duplicates if present
    // We are relying on preserved order of uniqueSourceIdentifiers as well as sf
    sf = Futures.transform(sf, new SourceIdMismatchDetector(uniqueSourceIdentifiers));

    // Assemble sources into a schema context
    final ListenableFuture<SchemaContext> cf = Futures.transform(sf, assembleSources);

    // Populate cache when successful
    Futures.addCallback(cf, new FutureCallback<SchemaContext>() {
        @Override
        public void onSuccess(final SchemaContext result) {
            cache.put(uniqueSourceIdentifiers, result);
        }

        @Override
        public void onFailure(final Throwable t) {
            LOG.debug("Failed to assemble sources", t);
        }
    });

    return Futures.makeChecked(cf, MAPPER);
}

From source file:org.opendaylight.controller.sal.connect.netconf.sal.tx.NetconfDeviceReadOnlyTx.java

@Override
public CheckedFuture<Boolean, ReadFailedException> exists(LogicalDatastoreType store,
        YangInstanceIdentifier path) {/*from  w ww. j a  va 2s  . co m*/
    CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> data = read(store, path);

    try {
        return Futures.immediateCheckedFuture(data.get().isPresent());
    } catch (InterruptedException | ExecutionException e) {
        return Futures.immediateFailedCheckedFuture(new ReadFailedException("Exists failed", e));
    }
}

From source file:org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext.java

@Override
public CheckedFuture<? extends YangTextSchemaSource, SchemaSourceException> getSource(
        final SourceIdentifier sourceIdentifier) {
    final YangModuleInfo yangModuleInfo = sourceIdentifierToModuleInfo.get(sourceIdentifier);

    if (yangModuleInfo == null) {
        LOG.debug("Unknown schema source requested: {}, available sources: {}", sourceIdentifier,
                sourceIdentifierToModuleInfo.keySet());
        return Futures.immediateFailedCheckedFuture(
                new SchemaSourceException("Unknown schema source: " + sourceIdentifier));
    }/*from   w w w.  j  av a  2 s  .  c  om*/

    return Futures.immediateCheckedFuture(
            YangTextSchemaSource.delegateForByteSource(sourceIdentifier, new ByteSource() {
                @Override
                public InputStream openStream() throws IOException {
                    return yangModuleInfo.getModuleSourceStream();
                }
            }));
}

From source file:org.opendaylight.openflowplugin.impl.statistics.StatisticsContextImpl.java

/**
 * Method checks a device state. It returns null for be able continue. Otherwise it returns immediateFuture
 * which has to be returned from caller too
 *
 * @return//from  ww  w .  j  a v  a2  s  .c om
 */
@VisibleForTesting
ListenableFuture<Boolean> deviceConnectionCheck() {
    if (!ConnectionContext.CONNECTION_STATE.WORKING
            .equals(deviceContext.getPrimaryConnectionContext().getConnectionState())) {
        ListenableFuture<Boolean> resultingFuture = SettableFuture.create();
        switch (deviceContext.getPrimaryConnectionContext().getConnectionState()) {
        case RIP:
            final String errMsg = String.format(
                    "Device connection doesn't exist anymore. Primary connection status : %s",
                    deviceContext.getPrimaryConnectionContext().getConnectionState());
            resultingFuture = Futures.immediateFailedFuture(new Throwable(errMsg));
            break;
        default:
            resultingFuture = Futures.immediateCheckedFuture(Boolean.TRUE);
            break;
        }
        return resultingFuture;
    }
    return null;
}

From source file:org.opendaylight.yangtools.yang.parser.repo.URLSchemaContextResolver.java

@Override
public synchronized CheckedFuture<YangTextSchemaSource, SchemaSourceException> getSource(
        final SourceIdentifier sourceIdentifier) {
    final Collection<YangTextSchemaSource> ret = texts.get(sourceIdentifier);

    LOG.debug("Lookup {} result {}", sourceIdentifier, ret);
    if (ret.isEmpty()) {
        return Futures.<YangTextSchemaSource, SchemaSourceException>immediateFailedCheckedFuture(
                new MissingSchemaSourceException("URL for " + sourceIdentifier + " not registered",
                        sourceIdentifier));
    }/*from   ww  w  .ja  va 2s  . co m*/

    return Futures.immediateCheckedFuture(ret.iterator().next());
}

From source file:org.apache.cassandra.db.index.SSTableAttachedSecondaryIndex.java

/**
 * parent class to eliminate the index rebuild
 *
 * @return a future that does and blocks on nothing
 *//*from  w w w  . j  av a  2s. c om*/
public Future<?> buildIndexAsync() {
    return Futures.immediateCheckedFuture(null);
}

From source file:org.opendaylight.netvirt.aclservice.utils.AclServiceTestUtils.java

public static void prepareElanTag(ReadOnlyTransaction mockReadTx, Long elanTag) {
    InstanceIdentifier<ElanInterface> elanInterfaceKey = AclServiceUtils
            .getElanInterfaceConfigurationDataPathId(null);
    ElanInterfaceBuilder elanInterfaceBuilder = new ElanInterfaceBuilder();
    when(mockReadTx.read(LogicalDatastoreType.CONFIGURATION, elanInterfaceKey))
            .thenReturn(Futures.immediateCheckedFuture(Optional.of(elanInterfaceBuilder.build())));

    InstanceIdentifier<ElanInstance> elanInstanceKey = AclServiceUtils
            .getElanInstanceConfigurationDataPath(null);
    ElanInstanceBuilder elanInstanceBuilder = new ElanInstanceBuilder();
    elanInstanceBuilder.setElanTag(elanTag);
    when(mockReadTx.read(LogicalDatastoreType.CONFIGURATION, elanInstanceKey))
            .thenReturn(Futures.immediateCheckedFuture(Optional.of(elanInstanceBuilder.build())));
}

From source file:org.opendaylight.openflowplugin.impl.device.TransactionChainManager.java

CheckedFuture<Void, TransactionCommitFailedException> shuttingDown() {
    LOG.debug("TxManager is going SUTTING_DOWN for node {}", nodeII);
    CheckedFuture<Void, TransactionCommitFailedException> future;
    synchronized (txLock) {
        this.transactionChainManagerStatus = TransactionChainManagerStatus.SHUTTING_DOWN;
        if (txChainFactory == null) {
            // stay with actual thread
            future = Futures.immediateCheckedFuture(null);
        } else {//from  w w  w  .  j  av a  2s .  co m
            // hijack md-sal thread
            if (wTx == null) {
                wTx = txChainFactory.newWriteOnlyTransaction();
            }
            final NodeBuilder nodeBuilder = new NodeBuilder().setId(deviceState.getNodeId());
            wTx.merge(LogicalDatastoreType.OPERATIONAL, nodeII, nodeBuilder.build());
            future = wTx.submit();
            wTx = null;
        }
    }
    return future;
}