import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
import com.google.common.util.concurrent.AsyncFunction;
-import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
}
@Override
- public CheckedFuture<SchemaContext, SchemaResolutionException> createSchemaContext(
- final Collection<SourceIdentifier> requiredSources, final StatementParserMode statementParserMode,
- final Set<QName> supportedFeatures) {
+ public ListenableFuture<SchemaContext> createSchemaContext(final Collection<SourceIdentifier> requiredSources,
+ final StatementParserMode statementParserMode, final Set<QName> supportedFeatures) {
return createSchemaContext(requiredSources,
statementParserMode == StatementParserMode.SEMVER_MODE ? this.semVerCache : this.cache,
new AssembleSources(Optional.ofNullable(supportedFeatures), statementParserMode));
}
- private CheckedFuture<SchemaContext, SchemaResolutionException> createSchemaContext(
- final Collection<SourceIdentifier> requiredSources,
+ private ListenableFuture<SchemaContext> createSchemaContext(final Collection<SourceIdentifier> requiredSources,
final Cache<Collection<SourceIdentifier>, SchemaContext> cache,
final AsyncFunction<List<ASTSchemaSource>, SchemaContext> assembleSources) {
// Make sources unique
final SchemaContext existing = cache.getIfPresent(uniqueSourceIdentifiers);
if (existing != null) {
LOG.debug("Returning cached context {}", existing);
- return Futures.immediateCheckedFuture(existing);
+ return Futures.immediateFuture(existing);
}
// Request all sources be loaded
}
}, MoreExecutors.directExecutor());
- return Futures.makeChecked(cf, MAPPER);
+ return cf;
}
private ListenableFuture<ASTSchemaSource> requestSource(final SourceIdentifier identifier) {
}
final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(
- statementParserMode, supportedFeatures);
+ statementParserMode);
+ if (supportedFeatures.isPresent()) {
+ reactor.setSupportedFeatures(supportedFeatures.get());
+ }
for (final Entry<SourceIdentifier, ASTSchemaSource> e : srcs.entrySet()) {
final ASTSchemaSource ast = e.getValue();
throw new SchemaResolutionException("Failed to resolve required models", ex.getSourceIdentifier(), ex);
}
- return Futures.immediateCheckedFuture(schemaContext);
+ return Futures.immediateFuture(schemaContext);
}
}
}