public CustomCrossSourceStatementReactorBuilder addNamespaceSupport(final ModelProcessingPhase phase, final NamespaceBehaviour<?, ?, ?> namespaceSupport) { reactorSupportBundles.get(phase).addSupport(namespaceSupport); return this; }
public Builder addVersionSpecificSupport(final YangVersion version, final StatementSupport<?, ?, ?> definition) { checkArgument(supportedVersions.contains(requireNonNull(version))); final QName identifier = definition.getStatementName(); checkState(!commonStatements.containsKey(identifier), "Statement %s already defined in common statement bundle.", identifier); checkState(!versionSpecificStatements.contains(version, identifier), "Statement %s already defined for version %s.", identifier, version); checkNoParentDefinition(identifier); checkState(parent.getVersionSpecificStatementDefinition(version, identifier) == null, "Statement %s already defined for version %s in parent's statement bundle.", identifier, version); versionSpecificStatements.put(version, identifier, definition); return this; }
public CustomCrossSourceStatementReactorBuilder overrideStatementSupport(final ModelProcessingPhase phase, final StatementSupport<?, ?, ?> stmtSupport) { reactorSupportBundles.get(phase).overrideSupport(stmtSupport); return this; }
@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(); } }
public static Builder builder(final Set<YangVersion> supportedVersions) { return new Builder(supportedVersions, EMPTY); }
public static Builder derivedFrom(final StatementSupportBundle parent) { return new Builder(parent.getSupportedVersions(), parent); }
public Builder addSupport(final StatementSupport<?, ?, ?> support) { final QName identifier = support.getStatementName(); checkNoParentDefinition(identifier); checkState(!commonStatements.containsKey(identifier), "Statement %s already defined in common statement bundle.", identifier); commonStatements.put(identifier, support); return this; }
public CustomCrossSourceStatementReactorBuilder addStatementSupport(final ModelProcessingPhase phase, final StatementSupport<?, ?, ?> stmtSupport) { reactorSupportBundles.get(phase).addSupport(stmtSupport); return this; }
public CustomCrossSourceStatementReactorBuilder addAllCommonStatementSupports(final ModelProcessingPhase phase, final Collection<StatementSupport<?, ?, ?>> statementSupports) { final StatementSupportBundle.Builder stmtBundleBuilder = reactorSupportBundles.get(phase); for (final StatementSupport<?, ?, ?> statementSupport : statementSupports) { stmtBundleBuilder.addSupport(statementSupport); } return this; }
public CustomCrossSourceStatementReactorBuilder addAllNamespaceSupports(final ModelProcessingPhase phase, final Collection<NamespaceBehaviour<?, ?, ?>> namespaceSupports) { final StatementSupportBundle.Builder stmtBundleBuilder = reactorSupportBundles.get(phase); for (final NamespaceBehaviour<?, ?, ?> namespaceSupport : namespaceSupports) { stmtBundleBuilder.addSupport(namespaceSupport); } return this; }
public CustomCrossSourceStatementReactorBuilder addAllVersionSpecificSupports(final ModelProcessingPhase phase, final Table<YangVersion, QName, StatementSupport<?, ?, ?>> versionSpecificSupports) { final StatementSupportBundle.Builder stmtBundleBuilder = reactorSupportBundles.get(phase); for (final Cell<YangVersion, QName, StatementSupport<?, ?, ?>> cell : versionSpecificSupports.cellSet()) { stmtBundleBuilder.addVersionSpecificSupport(cell.getRowKey(), cell.getValue()); } return this; }
public Builder overrideSupport(final StatementSupport<?, ?, ?> support) { final QName identifier = support.getStatementName(); checkNoParentDefinition(identifier); final StatementSupport<?, ?, ?> previousSupport = commonStatements.replace(identifier, support); checkState(previousSupport != null, "Statement %s was not previously defined", identifier); LOG.debug("Changed statement {} support from {} to {}", identifier, previousSupport, support); return this; }