private static Optional<ContainerSchemaNode> getAnyXmlSchema( final StmtContext<QName, AnyxmlStatement, AnyxmlEffectiveStatement> ctx, final SchemaNodeIdentifier contentSchemaPath) { return ChildSchemaNodeNamespace.findNode(ctx.getRoot(), contentSchemaPath) .map(StmtContext::buildEffective) .filter(ContainerSchemaNode.class::isInstance).map(ContainerSchemaNode.class::cast); } }
private static Optional<ContainerSchemaNode> getAnyXmlSchema( final StmtContext<QName, AnyxmlStatement, AnyxmlEffectiveStatement> ctx, final SchemaNodeIdentifier contentSchemaPath) { return ChildSchemaNodeNamespace.findNode(ctx.getRoot(), contentSchemaPath) .map(StmtContext::buildEffective) .filter(ContainerSchemaNode.class::isInstance).map(ContainerSchemaNode.class::cast); } }
public static QNameModule getModuleQNameByPrefix(final StmtContext<?, ?, ?> ctx, final String prefix) { final StmtContext<?, ?, ?> importedModule = ctx.getRoot().getFromNamespace(ImportPrefixToModuleCtx.class, prefix); final QNameModule qnameModule = ctx.getFromNamespace(ModuleCtxToModuleQName.class, importedModule); if (qnameModule != null) { return qnameModule; } if (producesDeclared(ctx.getRoot(), SubmoduleStatement.class)) { final String moduleName = ctx.getRoot().getFromNamespace(BelongsToPrefixToModuleName.class, prefix); return ctx.getFromNamespace(ModuleNameToModuleQName.class, moduleName); } return null; }
throw new InvalidSubstatementException(ctx.getStatementSourceReference(), "%s is not valid for %s. Error in module %s (%s)", key, currentStatement, ctx.getRoot().getStatementArgument(), ctx.getFromNamespace(ModuleCtxToModuleQName.class, ctx.getRoot())); throw new InvalidSubstatementException(ctx.getStatementSourceReference(), "Minimal count of %s for %s is %s, detected %s. Error in module %s (%s)", key, currentStatement, cardinality.getMin(), value, ctx.getRoot().getStatementArgument(), ctx.getFromNamespace(ModuleCtxToModuleQName.class, ctx.getRoot())); throw new InvalidSubstatementException(ctx.getStatementSourceReference(), "Maximal count of %s for %s is %s, detected %s. Error in module %s (%s)", key, currentStatement, cardinality.getMax(), value, ctx.getRoot().getStatementArgument(), ctx.getFromNamespace(ModuleCtxToModuleQName.class, ctx.getRoot())); final StmtContext<?, ?, ?> root = ctx.getRoot();
public static SourceException createNameCollisionSourceException(final StmtContext<?, ?, ?> ctx, final EffectiveStatement<?, ?> effectiveStatement) { return new SourceException(ctx.getStatementSourceReference(), "Error in module '%s': cannot add '%s'. Node name collision: '%s' already declared.", ctx.getRoot().getStatementArgument(), effectiveStatement.argument(), effectiveStatement.argument()); }
public static QNameModule getRootModuleQName(final StmtContext<?, ?, ?> ctx) { if (ctx == null) { return null; } final StmtContext<?, ?, ?> rootCtx = ctx.getRoot(); final QNameModule qnameModule; if (producesDeclared(rootCtx, ModuleStatement.class)) { qnameModule = rootCtx.getFromNamespace(ModuleCtxToModuleQName.class, rootCtx); } else if (producesDeclared(rootCtx, SubmoduleStatement.class)) { final String belongsToModuleName = firstAttributeOf(rootCtx.declaredSubstatements(), BelongsToStatement.class); qnameModule = rootCtx.getFromNamespace(ModuleNameToModuleQName.class, belongsToModuleName); } else { qnameModule = null; } checkArgument(qnameModule != null, "Failed to look up root QNameModule for %s", ctx); return qnameModule; }
@SuppressWarnings("unchecked") @Override public void addTo(final NamespaceStorageNode storage, final QName key, final StmtContext<?, D, E> value) { final StmtContext<?, D, E> prev = globalOrStatementSpecific(storage).putToLocalStorageIfAbsent( ChildSchemaNodeNamespace.class, key, value); if (prev != null) { throw new SourceException(value.getStatementSourceReference(), "Error in module '%s': cannot add '%s'. Node name collision: '%s' already declared at %s", value.getRoot().getStatementArgument(), key, prev.getStatementArgument(), prev.getStatementSourceReference()); } }