Interface SchemaSourceProvider<T extends SchemaSourceRepresentation>
- Type Parameters:
T
- Schema source representation type provided by this implementation
- All Known Implementing Classes:
AbstractSchemaSourceCache
,FilesystemSchemaSourceCache
,GuavaSchemaSourceCache
,SchemaSourceTransformer
,SoftSchemaSourceCache
,TextToIRTransformer
,YangTextSchemaContextResolver
,YinTextToDomTransformer
Schema source provider implementations take care of resolving a
SourceIdentifier
into a particular representation of the schema source. Examples of resolution include
fetching the source from an external source, opening a classpath resource, or similar.-
Method Summary
Modifier and TypeMethodDescription@NonNull ListenableFuture<? extends T>
getSource
(@NonNull SourceIdentifier sourceIdentifier) Returns a representation a for supplied YANG source identifier.
-
Method Details
-
getSource
Returns a representation a for supplied YANG source identifier. The resolution criteria are as follows:- If the source identifier specifies a revision, this method returns either
a representation of that particular revision or throw
MissingSchemaSourceException
. - If the source identifier does not specify a revision, this method returns
the newest available revision, or throws
MissingSchemaSourceException
.
In either case the returned representation is required to report a non-null revision in the
SourceIdentifier
returned fromSchemaSourceRepresentation.getIdentifier()
.Implementations are not required to provide constant behavior in time, notably this different invocation of this method may produce different results.
- Parameters:
sourceIdentifier
- source identifier- Returns:
- future source representation, if supplied YANG module is available
- Throws:
NullPointerException
- ifsourceIdentifier
is null
- If the source identifier specifies a revision, this method returns either
a representation of that particular revision or throw
-