import javax.annotation.Nullable;
public enum ModelProcessingPhase {
-
+ INIT(null),
+ /**
+ *
+ * Preliminary cross-source relationship resolution phase which collects
+ * available module names and module namespaces. It is necessary in order to
+ * correct resolution of unknown statements used in linkage phase (e.g.
+ * semantic version of yang modules).
+ */
+ SOURCE_PRE_LINKAGE(INIT),
/**
*
* Cross-source relationship resolution phase.
* <p>
- * In this phase of processing only statements which affects
- * cross-source relationship (e.g. imports / includes)
- * are processed.
+ * In this phase of processing only statements which affects cross-source
+ * relationship (e.g. imports / includes) are processed.
* <p>
- * At end of this phase all source related contexts should
- * be bind to their imports and includes to allow
- * visibility of custom defined statements in following
- * phases.
+ * At end of this phase all source related contexts should be bind to their
+ * imports and includes to allow visibility of custom defined statements in
+ * following phases.
*/
- SourceLinkage(null),
- StatementDefinition(SourceLinkage),
- FullDeclaration(StatementDefinition),
- EffectiveModel(FullDeclaration);
-
+ SOURCE_LINKAGE(SOURCE_PRE_LINKAGE),
+ STATEMENT_DEFINITION(SOURCE_LINKAGE),
+ FULL_DECLARATION(STATEMENT_DEFINITION),
+ EFFECTIVE_MODEL(FULL_DECLARATION);
private final ModelProcessingPhase previousPhase;
- private ModelProcessingPhase(@Nullable ModelProcessingPhase previous) {
+ ModelProcessingPhase(@Nullable ModelProcessingPhase previous) {
this.previousPhase = previous;
}
public ModelProcessingPhase getPreviousPhase() {
return previousPhase;
}
-
}