public ASTQuery getQuery() { return super.jjtGetChild(ASTQuery.class); }
throws MalformedQueryException List<ASTPrefixDecl> prefixDeclList = qc.getPrefixDeclList(); if (qc.getOperation() instanceof ASTInsertData) { ASTInsertData insertData = (ASTInsertData)qc.getOperation(); dataBlock = insertData.jjtGetChild(ASTUnparsedQuadDataBlock.class); else if (qc.getOperation() instanceof ASTDeleteData) { ASTDeleteData deleteData = (ASTDeleteData)qc.getOperation(); dataBlock = deleteData.jjtGetChild(ASTUnparsedQuadDataBlock.class); QNameProcessor visitor = new QNameProcessor(prefixMap); try { qc.jjtAccept(visitor, null);
private static Map<String, String> parseHelper(final ASTOperationContainer qc) throws MalformedQueryException { final List<ASTPrefixDecl> prefixDeclList = qc.getPrefixDeclList(); final Map<String, String> prefixMap = new LinkedHashMap<String, String>(); for (final ASTPrefixDecl prefixDecl : prefixDeclList) { final String prefix = prefixDecl.getPrefix(); final String iri = prefixDecl.getIRI().getValue(); if (prefixMap.containsKey(prefix)) { throw new MalformedQueryException("Multiple prefix declarations for prefix '" + prefix + "'"); } prefixMap.put(prefix, iri); } final QNameProcessor visitor = new QNameProcessor(prefixMap); try { qc.jjtAccept(visitor, null); } catch (final VisitorException e) { throw new MalformedQueryException(e); } return prefixMap; }
ASTBaseDecl baseDecl = qc.getBaseDecl(); if (baseDecl != null) { parsedBaseURI = new ParsedURI(baseDecl.getIRI()); if (qc.getOperation() instanceof ASTInsertData) { ASTInsertData insertData = (ASTInsertData)qc.getOperation(); dataBlock = insertData.jjtGetChild(ASTUnparsedQuadDataBlock.class); else if (qc.getOperation() instanceof ASTDeleteData) { ASTDeleteData deleteData = (ASTDeleteData)qc.getOperation(); dataBlock = deleteData.jjtGetChild(ASTUnparsedQuadDataBlock.class); RelativeIRIResolver visitor = new RelativeIRIResolver(parsedBaseURI); try { qc.jjtAccept(visitor, null);
/** * Processes escape sequences in ASTString objects. * * @param qc * The query that needs to be processed. * @throws MalformedQueryException * If an invalid escape sequence was found. */ public static void process(ASTOperationContainer qc) throws MalformedQueryException { StringProcessor visitor = new StringProcessor(); try { qc.jjtAccept(visitor, null); } catch (VisitorException e) { throw new MalformedQueryException(e); } }
/** * @return Returns the patternString. */ public String getPatternString() { if (patternString == null) { ASTOperationContainer parentContainer = (ASTOperationContainer)getParentContainer(this); String sourceString = parentContainer.getSourceString(); // snip away line until begin token line position String substring = sourceString; for (int i = 1; i < getBeginTokenLinePos(); i++) { substring = substring.substring(substring.indexOf("\n") + 1); } // snip away until begin token column pos substring = substring.substring(getBeginTokenColumnPos() - 1); // determine part of the query behind the service pattern closing bracket. String toTrimSuffix = sourceString; for (int i = 1; i < getEndTokenLinePos(); i++) { toTrimSuffix = toTrimSuffix.substring(toTrimSuffix.indexOf("\n") + 1); } toTrimSuffix = toTrimSuffix.substring(getEndTokenColumnPos() - 1); // trim off the end patternString = substring.substring(0, substring.lastIndexOf(toTrimSuffix) + 1); } return patternString; }
ASTOperation op = qc.getOperation(); if (op != null) {
public static Set<String> process(ASTOperationContainer qc) throws MalformedQueryException { try { BlankNodeToVarConverter converter = new BlankNodeToVarConverter(); qc.jjtAccept(converter, null); return converter.getUsedBNodeIDs(); } catch (VisitorException e) { throw new MalformedQueryException(e); } }