public Object visit(ASTQName node, Object data) throws VisitorException { return node.childrenAccept(this, data); }
@Override public Object visit(ASTQName qnameNode, Object data) throws VisitorException { String qname = qnameNode.getValue(); int colonIdx = qname.indexOf(':'); assert colonIdx >= 0 : "colonIdx should be >= 0: " + colonIdx; String prefix = qname.substring(0, colonIdx); String localName = qname.substring(colonIdx + 1); String namespace = prefixMap.get(prefix); if (namespace == null) { throw new VisitorException("QName '" + qname + "' uses an undefined prefix"); } localName = processEscapes(localName); // Replace the qname node with a new IRI node in the parent node ASTIRI iriNode = new ASTIRI(SyntaxTreeBuilderTreeConstants.JJTIRI); iriNode.setValue(namespace + localName); qnameNode.jjtReplaceWith(iriNode); return null; }
final public void PrefixedName() throws ParseException { /*@bgen(jjtree) QName */ ASTQName jjtn000 = new ASTQName(JJTQNAME); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000);Token t; try { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PNAME_LN: t = jj_consume_token(PNAME_LN); break; case PNAME_NS: t = jj_consume_token(PNAME_NS); break; default: jj_la1[149] = jj_gen; jj_consume_token(-1); throw new ParseException(); } jjtree.closeNodeScope(jjtn000, true); jjtc000 = false; jjtn000.setValue(t.image); } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } }
@Override public Object visit(final ASTQName qnameNode, final Object data) throws VisitorException { final String qname = qnameNode.getValue(); final int colonIdx = qname.indexOf(':'); assert colonIdx >= 0 : "colonIdx should be >= 0: " + colonIdx; final String prefix = qname.substring(0, colonIdx); String localName = qname.substring(colonIdx + 1); String namespace = this.namespacesOut.get(prefix); if (namespace == null) { // [FC] added lookup of default namespace namespace = this.namespacesIn.get(prefix); } if (namespace == null) { throw new VisitorException("QName '" + qname + "' uses an undefined prefix"); } localName = processEscapesAndHex(localName); final ASTIRI iriNode = new ASTIRI(SyntaxTreeBuilderTreeConstants.JJTIRI); iriNode.setValue(namespace + localName); qnameNode.jjtReplaceWith(iriNode); return null; }
@Override public Object visit(final ASTQName qnameNode, final Object data) throws VisitorException { final String qname = qnameNode.getValue(); final int colonIdx = qname.indexOf(':'); assert colonIdx >= 0 : "colonIdx should be >= 0: " + colonIdx; final String prefix = qname.substring(0, colonIdx); String localName = qname.substring(colonIdx + 1); String namespace = this.prefixMap.get(prefix); if (namespace == null) { // [FC] added lookup of default namespace namespace = Data.getNamespaceMap().get(prefix); } if (namespace == null) { throw new VisitorException("QName '" + qname + "' uses an undefined prefix"); } localName = processEscapesAndHex(localName); final ASTIRI iriNode = new ASTIRI(SyntaxTreeBuilderTreeConstants.JJTIRI); iriNode.setValue(namespace + localName); qnameNode.jjtReplaceWith(iriNode); return null; }