@Override public YangParser createParser(final StatementParserMode parserMode) { return new YangParserImpl(reactor.newBuild(parserMode)); } }
@Override public CrossSourceStatementReactor build() { return new CrossSourceStatementReactor(bundles, validationBundles); } }
@Override public @NonNull CrossSourceStatementReactor build() { final StatementSupportBundle initBundle = reactorSupportBundles.get(ModelProcessingPhase.INIT).build(); final StatementSupportBundle preLinkageBundle = reactorSupportBundles .get(ModelProcessingPhase.SOURCE_PRE_LINKAGE).setParent(initBundle).build(); final StatementSupportBundle linkageBundle = reactorSupportBundles.get(ModelProcessingPhase.SOURCE_LINKAGE) .setParent(preLinkageBundle).build(); final StatementSupportBundle stmtDefBundle = reactorSupportBundles .get(ModelProcessingPhase.STATEMENT_DEFINITION).setParent(linkageBundle).build(); final StatementSupportBundle fullDeclBundle = reactorSupportBundles.get(ModelProcessingPhase.FULL_DECLARATION) .setParent(stmtDefBundle).build(); final StatementSupportBundle effectiveBundle = reactorSupportBundles.get(ModelProcessingPhase.EFFECTIVE_MODEL) .setParent(fullDeclBundle).build(); final CrossSourceStatementReactor.Builder reactorBuilder = CrossSourceStatementReactor.builder() .setBundle(ModelProcessingPhase.INIT, initBundle) .setBundle(ModelProcessingPhase.SOURCE_PRE_LINKAGE, preLinkageBundle) .setBundle(ModelProcessingPhase.SOURCE_LINKAGE, linkageBundle) .setBundle(ModelProcessingPhase.STATEMENT_DEFINITION, stmtDefBundle) .setBundle(ModelProcessingPhase.FULL_DECLARATION, fullDeclBundle) .setBundle(ModelProcessingPhase.EFFECTIVE_MODEL, effectiveBundle); for (final Entry<ValidationBundleType, Collection<StatementDefinition>> entry : reactorValidationBundles .entrySet()) { reactorBuilder.setValidationBundle(entry.getKey(), entry.getValue()); } return reactorBuilder.build(); } }
/** * Start a new reactor build using the default statement parser mode with all features and deviations enabled. * * @return A new {@link BuildAction}. */ public @NonNull BuildAction newBuild() { return newBuild(StatementParserMode.DEFAULT_MODE); }
@Override public YangParser createParser(final StatementParserMode parserMode) { return new YangParserImpl(reactor.newBuild(parserMode)); } }
/** * Returns the schema context of the YANG files present in a directory. * * @param di directory path * @return YANG schema context * @throws SvcLogicException when YANG file reading fails */ static SchemaContext getSchemaCtxFromDir(String di) throws SvcLogicException { Path d = Paths.get(di); File dir = d.toFile(); List<File> yangFiles = new LinkedList<>(); getYangFiles(dir, yangFiles); final Collection<YangStatementStreamSource> sources = new ArrayList<>(yangFiles.size()); for (File file : yangFiles) { try { sources.add(create(forFile(file))); } catch (IOException | YangSyntaxErrorException e) { throw new SvcLogicException(YANG_FILE_ERR + e.getMessage(), e); } } final CrossSourceStatementReactor.BuildAction reactor = defaultReactor() .newBuild(DEFAULT_MODE).addSources(sources); try { return reactor.buildEffective(); } catch (ReactorException e) { throw new SvcLogicException(YANG_FILE_ERR + e.getMessage(), e); } }
final BuildAction reactor = DefaultReactors.defaultReactor().newBuild(statementParserMode); config.getSupportedFeatures().ifPresent(reactor::setSupportedFeatures); config.getModulesDeviatedByModules().ifPresent(reactor::setModulesWithSupportedDeviations);
final BuildAction reactor = DefaultReactors.defaultReactor().newBuild(statementParserMode); config.getSupportedFeatures().ifPresent(reactor::setSupportedFeatures); config.getModulesDeviatedByModules().ifPresent(reactor::setModulesWithSupportedDeviations);