import org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException;
import org.opendaylight.yangtools.yang.parser.spi.meta.ModelActionBuilder;
import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase.ExecutionOrder;
import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour.Registry;
import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
*/
abstract @NonNull ReactorStmtCtx<A, D, E> unmodifiedEffectiveSource();
+ @Override
+ public final ModelProcessingPhase getCompletedPhase() {
+ return ModelProcessingPhase.ofExecutionOrder(executionOrder());
+ }
+
+ abstract byte executionOrder();
+
/**
* Try to execute current {@link ModelProcessingPhase} of source parsing. If the phase has already been executed,
- * this method does nothing.
+ * this method does nothing. This must not be called with {@link ExecutionOrder#NULL}.
*
* @param phase to be executed (completed)
* @return true if phase was successfully completed
* @throws SourceException when an error occurred in source parsing
*/
- final boolean tryToCompletePhase(final ModelProcessingPhase phase) {
- return phase.isCompletedBy(getCompletedPhase()) || doTryToCompletePhase(phase);
+ final boolean tryToCompletePhase(final byte executionOrder) {
+ return executionOrder() >= executionOrder || doTryToCompletePhase(executionOrder);
}
- abstract boolean doTryToCompletePhase(ModelProcessingPhase phase);
+ abstract boolean doTryToCompletePhase(byte targetOrder);
//
//