public interface StatementStreamSource extends Identifiable<SourceIdentifier>
Statement stream source is required to emit its statements using supplied
StatementWriter
.
Since YANG allows language extensions defined in sources (which defines how source is serialized), instances of extensions present anywhere and forward references, each source needs to be processed in three steps, where each step uses different set of supported statements.
Steps (in order of invocation) are:
writePreLinkage(StatementWriter, QNameToStatementDefinition)
-
Source MUST emit only statements related in pre-linkage, which are present in
supplied statement definition map. This step is used as preparatory cross-source
relationship resolution phase which collects available module names and namespaces.
It is necessary in order to correct resolution of unknown statements used by linkage
phase (e.g. semantic version of yang modules).
writeLinkage(StatementWriter, QNameToStatementDefinition, PrefixToModule)
-
Source MUST emit only statements related in linkage, which are present in
supplied statement definition map. This step is used to build cross-source
linkage and visibility relationship, and to determine XMl namespaces and
prefixes.writeLinkageAndStatementDefinitions(StatementWriter, QNameToStatementDefinition, PrefixToModule)
- Source MUST emit only statements related to linkage and language extensions
definitions, which are present in supplied statement definition map. This
step is used to build statement definitions in order to fully processed
source.writeFull(StatementWriter, QNameToStatementDefinition, PrefixToModule)
- Source MUST emit all statements present in source. This step is used to
build full declared statement model of source.Modifier and Type | Method and Description |
---|---|
void |
writeFull(StatementWriter writer,
QNameToStatementDefinition stmtDef,
PrefixToModule prefixes)
Emits every statements present in this statement source to supplied
writer . |
default void |
writeFull(StatementWriter writer,
QNameToStatementDefinition stmtDef,
PrefixToModule prefixes,
YangVersion yangVersion)
Emits every statements present in this statement source to supplied
writer based on specified yang version. |
void |
writeLinkage(StatementWriter writer,
QNameToStatementDefinition stmtDef,
PrefixToModule preLinkagePrefixes)
Emits only linkage-related statements to supplied
writer . |
default void |
writeLinkage(StatementWriter writer,
QNameToStatementDefinition stmtDef,
PrefixToModule preLinkagePrefixes,
YangVersion yangVersion)
Emits only linkage-related statements to supplied
writer based on specified YANG version. |
void |
writeLinkageAndStatementDefinitions(StatementWriter writer,
QNameToStatementDefinition stmtDef,
PrefixToModule prefixes)
Emits only linkage and language extension statements to supplied
writer . |
default void |
writeLinkageAndStatementDefinitions(StatementWriter writer,
QNameToStatementDefinition stmtDef,
PrefixToModule prefixes,
YangVersion yangVersion)
Emits only linkage and language extension statements to supplied
writer based on specified YANG version. |
void |
writePreLinkage(StatementWriter writer,
QNameToStatementDefinition stmtDef)
Emits only pre-linkage-related statements to supplied
writer . |
getIdentifier
void writePreLinkage(StatementWriter writer, QNameToStatementDefinition stmtDef)
writer
.writer
- StatementWriter
which should be used to emit
statements.stmtDef
- Map of available statement definitions. Only these statements
may be written to statement writer, source MUST ignore and MUST NOT
emit any other statements.SourceException
- If source was is not valid, or provided statement writer
failed to write statements.void writeLinkage(StatementWriter writer, QNameToStatementDefinition stmtDef, PrefixToModule preLinkagePrefixes)
writer
.writer
- StatementWriter
which should be used to emit
statements.stmtDef
- Map of available statement definitions. Only these statements
may be written to statement writer, source MUST ignore and MUST NOT
emit any other statements.preLinkagePrefixes
- Pre-linkage map of source-specific prefixes to namespacesSourceException
- If source was is not valid, or provided statement writer
failed to write statements.default void writeLinkage(StatementWriter writer, QNameToStatementDefinition stmtDef, PrefixToModule preLinkagePrefixes, YangVersion yangVersion)
writer
based on specified YANG version.
Default implementation does not make any differences between versions.writer
- StatementWriter
which should be used to emit
statements.stmtDef
- Map of available statement definitions. Only these statements
may be written to statement writer, source MUST ignore and
MUST NOT emit any other statements.preLinkagePrefixes
- Pre-linkage map of source-specific prefixes to namespacesyangVersion
- yang version.SourceException
- If source was is not valid, or provided statement writer
failed to write statements.void writeLinkageAndStatementDefinitions(StatementWriter writer, QNameToStatementDefinition stmtDef, PrefixToModule prefixes)
writer
.writer
- StatementWriter
which should be used to emit statements.stmtDef
- Map of available statement definitions. Only these statements
may be written to statement writer, source MUST ignore and MUST NOT
emit any other statements.prefixes
- Map of source-specific prefixes to namespacesSourceException
- If source was is not valid, or provided statement writer
failed to write statements.default void writeLinkageAndStatementDefinitions(StatementWriter writer, QNameToStatementDefinition stmtDef, PrefixToModule prefixes, YangVersion yangVersion)
writer
based on specified YANG version. Default implementation
does not make any differences between versions.writer
- StatementWriter
which should be used to emit
statements.stmtDef
- Map of available statement definitions. Only these statements
may be written to statement writer, source MUST ignore and
MUST NOT emit any other statements.prefixes
- Map of source-specific prefixes to namespacesyangVersion
- YANG version.SourceException
- If source was is not valid, or provided statement writer
failed to write statements.void writeFull(StatementWriter writer, QNameToStatementDefinition stmtDef, PrefixToModule prefixes)
writer
.writer
- StatementWriter
which should be used to emit
statements.stmtDef
- Map of available statement definitions.prefixes
- Map of source-specific prefixes to namespacesSourceException
- If source was is not valid, or provided statement writer
failed to write statements.default void writeFull(StatementWriter writer, QNameToStatementDefinition stmtDef, PrefixToModule prefixes, YangVersion yangVersion)
writer
based on specified yang version. Default implementation
does not make any differences between versions.writer
- StatementWriter
which should be used to emit
statements.stmtDef
- Map of available statement definitions.prefixes
- Map of source-specific prefixes to namespacesyangVersion
- yang version.SourceException
- If source was is not valid, or provided statement writer
failed to write statements.Copyright © 2019 OpenDaylight. All rights reserved.