@Override public final void onFullDefinitionDeclared( final Mutable<String, TypeStatement, EffectiveStatement<String, TypeStatement>> stmt) { super.onFullDefinitionDeclared(stmt); // if it is yang built-in type, no prerequisite is needed, so simply return if (BUILT_IN_TYPES.containsKey(stmt.getStatementArgument())) { return; } final QName typeQName = StmtContextUtils.parseNodeIdentifier(stmt, stmt.getStatementArgument()); final ModelActionBuilder typeAction = stmt.newInferenceAction(ModelProcessingPhase.EFFECTIVE_MODEL); final Prerequisite<StmtContext<?, ?, ?>> typePrereq = typeAction.requiresCtx(stmt, TypeNamespace.class, typeQName, ModelProcessingPhase.EFFECTIVE_MODEL); typeAction.mutatesEffectiveCtx(stmt.getParentContext()); /* * If the type does not exist, throw new InferenceException. * Otherwise perform no operation. */ typeAction.apply(new InferenceAction() { @Override public void apply(final InferenceContext ctx) { // Intentional NOOP } @Override public void prerequisiteFailed(final Collection<? extends Prerequisite<?>> failed) { InferenceException.throwIf(failed.contains(typePrereq), stmt.getStatementSourceReference(), "Type [%s] was not found.", typeQName); } }); }
RevisionDateStatement.class); final ModelActionBuilder includeAction = stmt.newInferenceAction(SOURCE_LINKAGE); final Prerequisite<StmtContext<?, ?, ?>> requiresCtxPrerequisite; if (revision == null) {
static void onLinkageDeclared( final Mutable<String, ImportStatement, EffectiveStatement<String, ImportStatement>> stmt) { final ModelActionBuilder importAction = stmt.newInferenceAction(SOURCE_LINKAGE); final Prerequisite<StmtContext<?, ?, ?>> imported; final String moduleName = stmt.coerceStatementArgument();
final ModelActionBuilder augmentAction = augmentNode.newInferenceAction( ModelProcessingPhase.EFFECTIVE_MODEL); final Prerequisite<StmtContext<SchemaNodeIdentifier, AugmentStatement,
final ModelActionBuilder deviateAction = deviateStmtCtx.newInferenceAction( ModelProcessingPhase.EFFECTIVE_MODEL);
static void onLinkageDeclared( final Mutable<String, ImportStatement, EffectiveStatement<String, ImportStatement>> stmt) { final ModelActionBuilder importAction = stmt.newInferenceAction(SOURCE_LINKAGE); final String moduleName = stmt.coerceStatementArgument(); final SemVer semanticVersion = stmt.getFromNamespace(SemanticVersionNamespace.class, stmt);
final ModelActionBuilder usesAction = usesNode.newInferenceAction(ModelProcessingPhase.EFFECTIVE_MODEL); final QName groupingName = usesNode.getStatementArgument();
final ModelActionBuilder importAction = stmt.newInferenceAction(SOURCE_PRE_LINKAGE); final Prerequisite<StmtContext<?, ?, ?>> imported = importAction.requiresCtx(stmt, PreLinkageModuleNamespace.class, moduleName, SOURCE_PRE_LINKAGE);
final ModelActionBuilder baseIdentityAction = baseStmtCtx.newInferenceAction( ModelProcessingPhase.STATEMENT_DEFINITION); final Prerequisite<StmtContext<?, ?, ?>> requiresPrereq = baseIdentityAction.requiresCtx(baseStmtCtx,
@Override public void onLinkageDeclared(final Mutable<String, BelongsToStatement, EffectiveStatement<String, BelongsToStatement>> belongsToCtx) { ModelActionBuilder belongsToAction = belongsToCtx.newInferenceAction(ModelProcessingPhase.SOURCE_LINKAGE); final SourceIdentifier belongsToSourceIdentifier = getSourceIdentifier(belongsToCtx); final Prerequisite<StmtContext<?, ?, ?>> belongsToPrereq = belongsToAction.requiresCtx(belongsToCtx, ModuleNamespaceForBelongsTo.class, belongsToCtx.coerceStatementArgument(), ModelProcessingPhase.SOURCE_LINKAGE); belongsToAction.apply(new InferenceAction() { @Override public void apply(final InferenceContext ctx) { StmtContext<?, ?, ?> belongsToModuleCtx = belongsToPrereq.resolve(ctx); belongsToCtx.addToNs(BelongsToModuleContext.class, belongsToSourceIdentifier, belongsToModuleCtx); belongsToCtx.addToNs(BelongsToPrefixToModuleCtx.class, findFirstDeclaredSubstatement(belongsToCtx, PrefixStatement.class).coerceStatementArgument(), belongsToModuleCtx); } @Override public void prerequisiteFailed(final Collection<? extends Prerequisite<?>> failed) { if (failed.contains(belongsToPrereq)) { throw new InferenceException(belongsToCtx.getStatementSourceReference(), "Module '%s' from belongs-to was not found", belongsToCtx.getStatementArgument()); } } }); }