1 package org.opendaylight.yangtools.yang.model.util.repo;
3 import java.io.InputStream;
4 import java.io.StringBufferInputStream;
6 import org.opendaylight.yangtools.concepts.Delegator;
8 import com.google.common.base.Optional;
10 public class SchemaSourceProviders {
12 @SuppressWarnings("rawtypes")
13 private static final SchemaSourceProvider NOOP_PROVIDER = new SchemaSourceProvider() {
16 public Optional getSchemaSource(String moduleName, Optional revision) {
17 return Optional.absent();
21 public Optional getSchemaSource(SourceIdentifier sourceIdentifier) {
22 return Optional.absent();
27 @SuppressWarnings("unchecked")
28 public static <T> SchemaSourceProvider<T> noopProvider() {
29 return (SchemaSourceProvider<T>) NOOP_PROVIDER;
32 public static SchemaSourceProvider<InputStream> inputStreamProviderfromStringProvider(
33 SchemaSourceProvider<String> delegate) {
34 return new StringToInputStreamSchemaSourceProvider(delegate);
37 private final static class StringToInputStreamSchemaSourceProvider implements //
38 SchemaSourceProvider<InputStream>, Delegator<SchemaSourceProvider<String>> {
40 private SchemaSourceProvider<String> delegate;
42 public StringToInputStreamSchemaSourceProvider(SchemaSourceProvider<String> delegate) {
43 this.delegate = delegate;
47 public SchemaSourceProvider<String> getDelegate() {
52 public Optional<InputStream> getSchemaSource(SourceIdentifier sourceIdentifier) {
53 Optional<String> potential = getDelegate().getSchemaSource(sourceIdentifier);
54 if (potential.isPresent()) {
55 String stringStream = potential.get();
56 return Optional.<InputStream> of(new StringBufferInputStream(stringStream));
58 return Optional.absent();
62 public Optional<InputStream> getSchemaSource(String moduleName, Optional<String> revision) {
63 return getSchemaSource(SourceIdentifier.create(moduleName, revision));