Java 类javax.xml.xquery.XQPreparedExpression 实例源码

项目:bagri    文件:QueryManagement.java   
@ManagedOperation(description="Parse XQuery. Return array of parameter names, if any")
@ManagedOperationParameters({
    @ManagedOperationParameter(name = "query", description = "A query request provided in XQuery syntax"),
    @ManagedOperationParameter(name = "props", description = "Query processing properties")})
public String[] parseQuery(String query, Properties props) {
    XQPreparedExpression xqpExp = null;
    try {
        XQStaticContext ctx = xqConn.getStaticContext();
        props2Context(schemaManager.getEntity().getProperties(), ctx);
        props2Context(props, ctx);
        xqpExp = xqConn.prepareExpression(query, ctx);
        QName[] vars = xqpExp.getAllExternalVariables();
        String[] result = null;
        if (vars != null) {
            result = new String[vars.length];
            for (int i=0; i < vars.length; i++) {
                result[i] = vars[i].toString();
            }
        }
        xqpExp.close();
        return result;
    } catch (XQException ex) {
        logger.error("parseQuery.error", ex); 
        throw new RuntimeException(ex.getMessage());
    } 
}
项目:bagri    文件:ClientApp.java   
public boolean runPriceQuery(String symbol) throws XQException {

    String query = "declare namespace s=\"http://tpox-benchmark.com/security\";\n" +
        "declare variable $sym external;\n" + 
        "for $sec in fn:collection(\"CLN_Security\")/s:Security\n" +
        "where $sec/s:Symbol=$sym\n" + 
        "return\n" +   
        "\t<print>The open price of the security \"{$sec/s:Name/text()}\" is {$sec/s:Price/s:PriceToday/s:Open/text()} dollars</print>\n";

    XQPreparedExpression xqpe = xqc.prepareExpression(query);
    xqpe.bindString(new QName("sym"), symbol, null); //IBM; VFINX; PTTAX
    XQResultSequence xqs = xqpe.executeQuery();
    boolean found = false;
    while (xqs.next()) {
        System.out.println(xqs.getItemAsString(null));
        found = true;
    }
    return found;
}
项目:bagri    文件:ClientApp.java   
public boolean runSecQuery(String symbol) throws XQException {

    String query = "declare namespace s=\"http://tpox-benchmark.com/security\";\n" +
        "declare variable $sym external;\n" + 
        "for $sec in fn:collection(\"CLN_Security\")/s:Security\n" +
        "where $sec/s:Symbol=$sym\n" + 
        "return $sec\n";

    XQPreparedExpression xqpe = xqc.prepareExpression(query);
    xqpe.bindString(new QName("sym"), symbol, null);
    XQResultSequence xqs = xqpe.executeQuery();
    boolean found = false;
    while (xqs.next()) {
        System.out.println(xqs.getItemAsString(null));
        found = true;
    }
    return found;
}
项目:bagri    文件:XQJClientApp.java   
@Override
public String readDocument(String uri) throws XQException {

    String query = "declare namespace bgdb=\"http://bagridb.com/bdb\";\n" +
            "declare variable $uri external;\n" + 
            "let $doc := bgdb:get-document-content($uri)\n" +
            "return $doc\n";

    XQPreparedExpression xqpe = xqConn.prepareExpression(query);
    xqpe.bindString(new QName("uri"), uri, xqConn.createAtomicType(XQItemType.XQBASETYPE_ANYURI));
    XQResultSequence xqs = xqpe.executeQuery();
    String result = null;
    if (xqs.next()) {
        result = xqs.getItemAsString(null);
    }
    return result;
}
项目:bagri    文件:XQJClientApp.java   
@Override
public void deleteDocument(String uri) throws XQException {

    String query = "declare namespace bgdb=\"http://bagridb.com/bdb\";\n" +
            "declare variable $uri external;\n" + 
            "let $uri := bgdb:remove-document($uri)\n" + 
            "return $uri\n";

    XQPreparedExpression xqpe = xqConn.prepareExpression(query);
    xqpe.bindString(new QName("uri"), uri, xqConn.createAtomicType(XQItemType.XQBASETYPE_ANYURI));
    XQSequence xqs = xqpe.executeQuery();
    String result = null;
    try {
        if (xqs.next()) {
            result = xqs.getAtomicValue();
        }
        if (!uri.equals(result)) {
            throw new XQException("got no result from bgdb:remove-document function");
        }
    } finally {
        xqpe.close();
        xqs.close();
    }
}
项目:bagri    文件:EmbeddedApp.java   
public boolean runPriceQuery() throws XQException {

    String query = "declare namespace s=\"http://tpox-benchmark.com/security\";\n" +
        "declare variable $sym external;\n" + 
        "for $sec in fn:collection(\"/{http://tpox-benchmark.com/security}Security\")/s:Security\n" +
        "where $sec/s:Symbol=$sym\n" + //'IBM'\n" +
        "return\n" +   
        "\t<print>The open price of the security \"{$sec/s:Name/text()}\" is {$sec/s:Price/s:PriceToday/s:Open/text()} dollars</print>\n";

    XQPreparedExpression xqpe = xqc.prepareExpression(query);
    xqpe.bindString(new QName("sym"), "IBM", null); //IBM; VFINX; PTTAX
    XQResultSequence xqs = xqpe.executeQuery();
    boolean found = false;
    while (xqs.next()) {
        System.out.println(xqs.getItemAsString(null));
        found = true;
    }
    return found;
}
项目:bagri    文件:EmbeddedApp.java   
public boolean runSecQuery() throws XQException {

    String query = "declare namespace s=\"http://tpox-benchmark.com/security\";\n" +
        "declare variable $sym external;\n" + 
        "for $sec in fn:collection(\"/{http://tpox-benchmark.com/security}Security\")/s:Security\n" +
        "where $sec/s:Symbol=$sym\n" + //'IBM'\n" +
        "return $sec\n";

    XQPreparedExpression xqpe = xqc.prepareExpression(query);
    xqpe.bindString(new QName("sym"), "IBM", null);
    XQResultSequence xqs = xqpe.executeQuery();
    boolean found = false;
    while (xqs.next()) {
        System.out.println(xqs.getItemAsString(null));
        found = true;
    }
    return found;
}
项目:bagri    文件:BagriXQJPlugin.java   
@Override
protected int execQuery(String query, Map<String, Parameter> params) throws XQException {

    XQPreparedExpression xqpe = getConnection().prepareExpression(query);
    bindParams(params, xqpe);
    XQResultSequence xqs = xqpe.executeQuery();
    int cnt = 0;
    if (fetchSize > 0) {
        while (xqs.next() && cnt < fetchSize) {
            cnt++;
        }
    } else {
        while (xqs.next()) {
            cnt++;
        }
    }
    //xqs.close(); will be closed at next line
    xqpe.close();
    return cnt;
}
项目:bagri    文件:SaxonParserTest.java   
@Test
public void testBinding() throws XQException {
       SaxonXQDataSource xqds = new SaxonXQDataSource();
       XQConnection xqc = xqds.getConnection();
    XQPreparedExpression xqpe = xqc.prepareExpression("declare variable $v external; $v");
    xqpe.bindString(new QName("v"), "Hello world!", xqc.createAtomicType(XQItemType.XQBASETYPE_STRING));
    XQSequence xqs = xqpe.executeQuery();
    assertTrue(xqs.next());
    assertEquals("Hello world!", xqs.getAtomicValue());
    xqpe.close();

    xqpe = xqc.prepareExpression("declare variable $v external; $v");
    xqpe.bindString(new QName("v"), "Hello", xqc.createAtomicType(XQItemType.XQBASETYPE_NCNAME));
    xqs = xqpe.executeQuery();
    xqs.next();
    assertEquals("A-XQDC-1.7: Successful bindXXX.", XQItemType.XQITEMKIND_ATOMIC, xqs.getItemType().getItemKind());
    assertEquals("A-XQDC-1.7: Successful bindXXX.", XQItemType.XQBASETYPE_NCNAME, xqs.getItemType().getBaseType());
    assertEquals("A-XQDC-1.7: Successful bindXXX.", "Hello", xqs.getObject());
    xqpe.close(); 
}
项目:bagri    文件:BagriXQConnection.java   
@Override
public XQPreparedExpression prepareExpression(String xquery, XQStaticContext context) throws XQException {

    checkState(ex_connection_closed);
    if (context == null) {
        throw new XQException(ex_null_context);
    }
    if (xquery == null) {
        throw new XQException("Provided query is null");
    }

    BagriXQPreparedExpression exp = new BagriXQPreparedExpression(this, context);
    exp.setXQuery(xquery);
    prepareQuery(exp, context);
    return exp;
}
项目:bagri    文件:BagriXQItemAccessorTest.java   
@Test
public void testGetDouble() throws XQException {

    XQPreparedExpression xqpe = xqc.prepareExpression("declare variable $v external; $v");
    try {
        xqpe.bindDouble(new QName("v"), 1d, xqc.createAtomicType(XQItemType.XQBASETYPE_DOUBLE));
    } catch (XQException e) {
        fail("A-XQDC-1.7: bindDouble() failed with message: " + e.getMessage());
    }
    XQSequence xqs = xqpe.executeQuery();
    xqs.next();
    assertEquals("A-XQDC-1.7: Successful bindXXX.", XQItemType.XQITEMKIND_ATOMIC, xqs.getItemType().getItemKind());
    assertEquals("A-XQDC-1.7: Successful bindXXX.", XQItemType.XQBASETYPE_DOUBLE, xqs.getItemType().getBaseType());
    assertTrue("A-XQDC-1.7: Successful bindXXX.", 1d == xqs.getDouble());
    xqpe.close(); 
}
项目:bagri    文件:BagriXQItemAccessorTest.java   
@Test
public void testBinding() throws XQException {
    XQPreparedExpression xqpe = xqc.prepareExpression("declare variable $v external; $v");
    xqpe.bindString(new QName("v"), "Hello world!", xqc.createAtomicType(XQItemType.XQBASETYPE_STRING));
    XQSequence xqs = xqpe.executeQuery();
    assertTrue(xqs.next());
    assertEquals("Hello world!", xqs.getAtomicValue());
    xqpe.close();

    xqpe = xqc.prepareExpression("declare variable $v external; $v");
    xqpe.bindString(new QName("v"), "Hello", xqc.createAtomicType(XQItemType.XQBASETYPE_NCNAME));
    xqs = xqpe.executeQuery();
    xqs.next();
    assertEquals("A-XQDC-1.7: Successful bindXXX.", XQItemType.XQITEMKIND_ATOMIC, xqs.getItemType().getItemKind());
    assertEquals("A-XQDC-1.7: Successful bindXXX.", XQItemType.XQBASETYPE_NCNAME, xqs.getItemType().getBaseType());
    assertEquals("A-XQDC-1.7: Successful bindXXX.", "Hello", xqs.getObject());
    xqpe.close(); 
}
项目:bagri    文件:BagriXQDataSourceTest.java   
@Test
public void testStoreSecurity() throws XQException {

    String dName = "../etc/samples/tpox/";
    String xml;
    try {
        xml = readTextFile(dName + "security1500.xml");
    } catch (IOException ex) {
        throw new XQException(ex.getMessage());
    }

    String query = "declare namespace bgdb=\"http://bagridb.com/bdb\";\n" +
            "declare variable $url external;\n" + 
            "declare variable $xml external;\n" + 
            "let $id := bgdb:store-document($url, $xml)\n" +
            "return $id\n";
    XQConnection xqc = xqds.getConnection();
    XQPreparedExpression xqpe = xqc.prepareExpression(query);
    xqpe.bindString(new QName("url"), "security1500.xml", xqc.createAtomicType(XQItemType.XQBASETYPE_ANYURI));
    xqpe.bindString(new QName("xml"), xml, xqc.createAtomicType(XQItemType.XQBASETYPE_STRING));
    XQSequence xqs = xqpe.executeQuery();
    assertTrue(xqs.next());
    xqs.close();
    xqpe.close();
}
项目:XMLVersioningFramework    文件:XChroniclerHandler.java   
private static String runQuery(String query) throws XQException {
    System.out.println("runQuery: \n\t" + query);
    XQDataSource xqs = new ExistXQDataSource();
    String returnString = "";
    xqs.setProperty("serverName", "localhost");

    xqs.setProperty("port", "8080");

    XQConnection conn = xqs.getConnection();
    XQPreparedExpression xqpe = conn.prepareExpression(query);

    XQResultSequence rs = xqpe.executeQuery();

    while (rs.next()) {
        returnString += rs.getItemAsString(null).replace("xmlns=\"\"", "")
                + "\n";
    }

    System.out.println("Query result: \n\t" + returnString);

    return returnString;

}
项目:intellij-xquery    文件:ContextItemBinderTest.java   
@Before
public void setUp() throws Exception {
    config = mock(XQueryRunConfig.class);
    binderFactory = mock(TypeBinderFactory.class);
    connection = mock(XQConnection.class);
    expression = mock(XQPreparedExpression.class);
    binder = new ContextItemBinder(binderFactory, config) {
        @Override
        protected String readFile(String fileName) throws IOException {
            fileRead = true;
            return FILE_CONTENTS;
        }
    };
    typeBinder = mock(TypeBinder.class);
    given(binderFactory.getBinder(CONTEXT_ITEM_TYPE)).willReturn(typeBinder);
}
项目:further-open-core    文件:XQueryUtil.java   
/**
 * Helper method to execute a {@link XQPreparedExpression} and return an
 * {@link OutputStream} of results. This method does not support setting write
 * properties.
 * 
 * @param xqPreparedExpression
 *            the expression to execute
 * @return an output stream with the results
 */
public static ByteArrayOutputStream executePreparedExpression(
        final XQPreparedExpression xqPreparedExpression)
{
    try
    {
        final XQResultSequence xqResultSequence = xqPreparedExpression.executeQuery();
        final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        xqResultSequence.writeSequence(outputStream, null);
        return outputStream;
    }
    catch (final XQException e)
    {
        throw new ApplicationException("Unable to execute prepared expression", e);
    }
}
项目:caadapter    文件:TransformTest.java   
/**
     *
     * @throws XQException
     * @throws XQException
     * @throws JAXBException
     * @throws IOException
     */
    @Test
    public void testXQueryExpression() throws XQException
    {
        String sourceFile="synderTest.xml";
        String xqFile="synderQuery1.xq";
        Configuration saxonConfig = new Configuration();
        SaxonXQDataSource dataSource = new SaxonXQDataSource(saxonConfig);
        XQConnection conn = dataSource.getConnection();
        String xsString="for $Template in doc(\"synderTest.xml\")/TemplateContainer/Template/Tags "+
            " return $Template" ;


        XQPreparedExpression exp = conn.prepareExpression(xsString);

        URI sourcUri=new File(sourceFile).toURI();
//      exp.bindString(new QName("docName"), sourcUri.getPath(), conn
//              .createAtomicType(XQItemType.XQBASETYPE_STRING));
        XQResultSequence result = exp.executeQuery();
        String rawResult = result.getSequenceAsString(new Properties());

        System.out.println("TransformTest.testXQueryExpression()..:"+rawResult);
//      System.out.println(tester.transfer(sourceFile, xqFile));
    }
项目:XWorld    文件:XQSession.java   
@Override
public XQSequence executeQuerySequence(String query, Map bind_map)
        throws XQException {
    XQSequence sequence = null;
    XQConnection connection = this.getXqConnection();
    if (bind_map != null && !bind_map.isEmpty()) {
        // bind
        if (bind_map != null && !bind_map.isEmpty()) {
            XQPreparedExpression expression = connection
                    .prepareExpression(query);
            Set<Map.Entry> set = bind_map.entrySet();
            for (Iterator<Map.Entry> it = set.iterator(); it.hasNext();) {
                Map.Entry entry = (Map.Entry) it.next();
                String value = (String) entry.getValue();
                if(value!=null){

                    expression.bindString(new QName((String) entry.getKey()),
                            value, null);
                }
            }
            sequence = expression.executeQuery();
        } else {
            sequence = connection.createExpression().executeQuery(query);
        }
    } else {
        sequence = connection.createExpression().executeQuery(query);
    }
    return sequence;
}
项目:XWorld    文件:XQSession.java   
public XQSequence executeQuerySequence(String query, Map bind_map)
        throws XQException {
    XQSequence sequence = null;
    XQConnection connection = this.getXqConnection();
    if (bind_map != null && !bind_map.isEmpty()) {
        if(log.isDebugEnabled()){
            log.debug("查询参数:"+bind_map);
        }
        // bind
        if (bind_map != null && !bind_map.isEmpty()) {
            XQPreparedExpression expression = connection
                    .prepareExpression(query);
            Set<Map.Entry> set = bind_map.entrySet();
            for (Iterator<Map.Entry> it = set.iterator(); it.hasNext();) {
                Map.Entry entry = (Map.Entry) it.next();
                String value = (String) entry.getValue();
                if(value!=null){
                    expression.bindAtomicValue(new QName((String) entry.getKey()),
                            value, null);
                }
            }
            sequence = expression.executeQuery();
        } else {
            sequence = connection.createExpression().executeQuery(query);
        }
    } else {
        sequence = connection.createExpression().executeQuery(query);
    }
    return sequence;
}
项目:bagri    文件:ClientApp.java   
public void insertSecQuery() throws XQException {

    String query = "declare namespace s=\"http://tpox-benchmark.com/security\";\n" +
        "declare variable $sec external;\n" + 
        "declare variable $uri external;\n" + 
        "fn:put($sec, $uri)\n";

    XQPreparedExpression xqpe = xqc.prepareExpression(query);
    //xqpe.bindNode(new QName("sec"), "IBM", null);
    xqpe.bindString(new QName("uri"), "/library/20", null);

    xqpe.executeQuery();
    //System.out.println(xqs.getAtomicValue());
}
项目:bagri    文件:ClientApp.java   
private long storeXmlDocument(String fileName) throws XQException {

    String dName = "..\\..\\etc\\samples\\tpox\\";
    String xml;
    try {
        xml = readTextFile(dName + fileName);
    } catch (IOException ex) {
        throw new XQException(ex.getMessage());
    }

    String query = "declare namespace bgdb=\"http://bagridb.com/bdb\";\n" +
            "declare variable $uri external;\n" + 
            "declare variable $xml external;\n" + 
            "declare variable $props external;\n" + 
            "let $id := bgdb:store-document($uri, $xml, $props)\n" +
            "return $id\n";

    XQPreparedExpression xqpe = xqc.prepareExpression(query);
    xqpe.bindString(new QName("uri"), "65538.xml", xqc.createAtomicType(XQItemType.XQBASETYPE_ANYURI));
    xqpe.bindString(new QName("xml"), xml, xqc.createAtomicType(XQItemType.XQBASETYPE_STRING));
    List<String> props = new ArrayList<>(4);
    props.add(pn_document_data_format + "=xml");
    props.add(pn_document_collections + "=CLN_Custom, CLN_Security");
    xqpe.bindSequence(new QName("props"), xqc.createSequence(props.iterator()));
    XQSequence xqs = xqpe.executeQuery();
    if (xqs.next()) {
        long id = xqs.getLong();
        xqpe.close();
        xqs.close();
        return id;
    } else {
        xqpe.close();
        xqs.close();
        throw new XQException("no response from store-document function");
    }
}
项目:bagri    文件:XQJClientApp.java   
private String storeDocument(String uri, String content) throws XQException {

    String query = "declare namespace bgdb=\"http://bagridb.com/bdb\";\n" +
            "declare variable $uri external;\n" + 
            "declare variable $xml external;\n" + 
            "let $props := map {'" + pn_document_data_format + "': 'XML'}\n" +
            "let $uri := bgdb:store-document($uri, $xml, $props)\n" +
            "return $uri\n";

    XQPreparedExpression xqpe = xqConn.prepareExpression(query);
    xqpe.bindString(new QName("uri"), uri, xqConn.createAtomicType(XQItemType.XQBASETYPE_ANYURI));
    xqpe.bindString(new QName("xml"), content, xqConn.createAtomicType(XQItemType.XQBASETYPE_STRING));
    //List<String> prop = new ArrayList<>();
    //prop.add(pn_document_data_format);
    //prop.add("XML");
    //XQSequence sq = xqConn.createSequence(prop.iterator());
    //List props = new ArrayList();
    //props.add(sq);

    //xqpe.bindSequence(new QName("props"), xqConn.createSequence(props.iterator()));
    //xqpe.bindObject(new QName("props"), props, 
    //      xqConn.createSequenceType(
    //      xqConn.createSequenceType(xqConn.createAtomicType(XQItemType.XQBASETYPE_STRING), XQSequenceType.OCC_ONE_OR_MORE), 
    //      XQSequenceType.OCC_ZERO_OR_MORE));
    XQSequence xqs = xqpe.executeQuery();
    String result = null;
    try {
        if (xqs.next()) {
            result = xqs.getAtomicValue();
        }
    } finally {
        xqpe.close();
        xqs.close();
    }
    return result;
}
项目:bagri    文件:EmbeddedApp.java   
public boolean searchSecQueryParams() throws XQException {

    String query = "declare default element namespace \"http://tpox-benchmark.com/security\";\n" +
        "declare variable $sect external;\n" + 
        "declare variable $pemin external;\n" +
        "declare variable $pemax external;\n" + 
        "declare variable $yield external;\n" + 
        "for $sec in fn:collection(\"/{http://tpox-benchmark.com/security}Security\")/Security\n" +
        "where $sec[SecurityInformation/*/Sector = $sect and PE[. >= $pemin and . < $pemax] and Yield > $yield]\n" +
        //"where $sec[SecurityInformation/*/Sector = $sect and PE[. >= xs:decimal($pemin) and . < xs:decimal($pemax)] and Yield > xs:decimal($yield)]\n" +
        "return <Security>\n" + 
        "\t{$sec/Symbol}\n" +
        "\t{$sec/Name}\n" +
        "\t{$sec/SecurityType}\n" +
        "\t{$sec/SecurityInformation//Sector}\n" +
        "\t{$sec/PE}\n" +
        "\t{$sec/Yield}\n" +
        "</Security>";

    XQPreparedExpression xqpe = xqc.prepareExpression(query);
    xqpe.bindString(new QName("sect"), "Technology", null);
    //xqpe.bindFloat(new QName("pemin"), 25,  null);
    //xqpe.bindFloat(new QName("pemax"), 28,  null);
    //xqpe.bindFloat(new QName("yield"), 0,  null);
    xqpe.bindInt(new QName("pemin"), 25,  null);
    xqpe.bindInt(new QName("pemax"), 28,  null);
    xqpe.bindInt(new QName("yield"), 0,  null);
    XQResultSequence xqs = xqpe.executeQuery();

    int cnt = 0;
    while (xqs.next()) {
        cnt++;
    }
    System.out.println("Got " + cnt + " results");
    return cnt > 0;
}
项目:bagri    文件:EmbeddedApp.java   
public void insertSecQuery() throws XQException {

    String query = "declare namespace s=\"http://tpox-benchmark.com/security\";\n" +
        "declare variable $sec external;\n" + 
        "declare variable $uri external;\n" + 
        "fn:put($sec, $uri)\n";

    XQPreparedExpression xqpe = xqc.prepareExpression(query);
    //xqpe.bindNode(new QName("sec"), "IBM", null);
    xqpe.bindString(new QName("uri"), "/library/20", null);

    xqpe.executeQuery();
    //System.out.println(xqs.getAtomicValue());
}
项目:bagri    文件:EmbeddedApp.java   
private long storeXmlDocument(String fileName) throws XQException {

    String dName = "..\\..\\etc\\samples\\tpox\\";
    String xml;
    try {
        xml = readTextFile(dName + fileName);
    } catch (IOException ex) {
        throw new XQException(ex.getMessage());
    }

    String query = "declare namespace bgdb=\"http://bagridb.com/bdb\";\n" +
            "declare variable $sec external;\n\n" + 
            //"return bgdb:store-document($sec)\n";
            "for $id in bgdb:store-document($sec)\n" +
            "return $id\n";

    XQPreparedExpression xqpe = xqc.prepareExpression(query);
    xqpe.bindString(new QName("sec"), xml, xqc.createAtomicType(XQItemType.XQBASETYPE_STRING));
    XQSequence xqs = xqpe.executeQuery();
    if (xqs.next()) {
        long result = xqs.getLong();
        xqpe.close();
        return result;
    } else {
        xqpe.close();
        throw new XQException("no response from store-document function");
    }
}
项目:bagri    文件:BagriXQConnection.java   
@Override
public XQPreparedExpression prepareExpression(String xquery) throws XQException {

    checkState(ex_connection_closed);
    if (xquery == null) {
        throw new XQException("Provided query is null");
    }

    BagriXQPreparedExpression exp = new BagriXQPreparedExpression(this);
    exp.setXQuery(xquery);
    prepareQuery(exp);
    return exp;
}
项目:bagri    文件:BagriXQConnection.java   
@Override
public XQPreparedExpression prepareExpression(Reader xquery) throws XQException {

    String query = null;
    try {
        query = XMLUtils.textToString(xquery);
    } catch (IOException ex) {
        throw getXQException(ex);
    }
    return prepareExpression(query);
}
项目:bagri    文件:BagriXQConnection.java   
@Override
public XQPreparedExpression prepareExpression(InputStream xquery) throws XQException {

    String query = null;
    try {
        query = XMLUtils.textToString(xquery);
    } catch (IOException ex) {
        throw getXQException(ex);
    }
    return prepareExpression(query);
}
项目:bagri    文件:BagriXQConnection.java   
@Override
public XQPreparedExpression prepareExpression(Reader xquery, XQStaticContext context) throws XQException {

    String query = null;
    try {
        query = XMLUtils.textToString(xquery);
    } catch (IOException ex) {
        throw getXQException(ex);
    }
    return prepareExpression(query, context);
}
项目:bagri    文件:BagriXQConnection.java   
@Override
public XQPreparedExpression prepareExpression(InputStream xquery, XQStaticContext context) throws XQException {

    String query = null;
    try {
        query = XMLUtils.textToString(xquery);
    } catch (IOException ex) {
        throw getXQException(ex);
    }
    return prepareExpression(query, context);
}
项目:bagri    文件:BagriXQAxisTest.java   
@BeforeClass
public static void setUpBeforeClass() throws Exception {

    String dName = "../../etc/samples/test/";
    String xml;
    try {
        xml = readTextFile(dName + "axis.xml");
    } catch (IOException ex) {
        throw new XQException(ex.getMessage());
    }

    xqds = new BagriXQDataSource();
    xqds.setProperty(BagriXQDataSource.ADDRESS, "localhost:10500");
    xqds.setProperty(BagriXQDataSource.SCHEMA, "default");
    xqds.setProperty(BagriXQDataSource.USER, "guest");
    xqds.setProperty(BagriXQDataSource.PASSWORD, "password");
    xqds.setProperty(BagriXQDataSource.XQ_PROCESSOR, "com.bagri.xquery.saxon.XQProcessorClient");
    xqds.setProperty(BagriXQDataSource.XDM_REPOSITORY, "com.bagri.client.hazelcast.impl.SchemaRepositoryImpl");

    String query = "declare namespace bgdb=\"http://bagridb.com/bdb\";\n" +
            "declare variable $sec external;\n\n" + 
            "for $id in bgdb:store-document($sec)\n" +
            "return $id\n";

    XQConnection xqc = xqds.getConnection();
    try {
        XQPreparedExpression xqpe = xqc.prepareExpression(query);
        xqpe.bindString(new QName("sec"), xml, xqc.createAtomicType(XQItemType.XQBASETYPE_STRING));
        XQSequence xqs = xqpe.executeQuery();
        if (xqs.next()) {
            axisId = xqs.getLong();
            xqpe.close();
        } else {
            xqpe.close();
            throw new XQException("no response from store-document function");
        }
    } finally {
        xqc.close();
    }
}
项目:bagri    文件:BagriXQSequenceTest.java   
@Test
public void testCreateSequence() throws XQException {

    XQPreparedExpression xqpe = xqc.prepareExpression("'Hello world!'");

    XQSequence xqsresult = null;
    XQSequence xqs = xqpe.executeQuery();
    try {
        xqsresult = xqc.createSequence(xqs);
    } catch (XQException e) {
        fail("A-XQDF-1.5: createSequence() failed with message: " + e.getMessage());
    }
    String result = xqsresult.getSequenceAsString(null);
    assertTrue("A-XQDF-1.5: Expects serialized result contains 'Hello world!', but it is '" + result + "'", result.indexOf("Hello world!") != -1);
}
项目:intellij-xquery    文件:ContextItemBinder.java   
public void bindContextItem(XQConnection connection, XQPreparedExpression preparedExpression) throws Exception {
    if (config.isContextItemEnabled()) {
        String contextItemValue = config.isContextItemFromEditorEnabled() ? config.getContextItemText() :
                readFile(config.getContextItemFile());
        binderFactory.getBinder(config.getContextItemType()).bind(preparedExpression, connection,
                XQConstants.CONTEXT_ITEM, contextItemValue,
                config.getContextItemType());
    }
}
项目:intellij-xquery    文件:VariablesBinder.java   
public void bindVariables(XQConnection connection, XQPreparedExpression preparedExpression)
        throws Exception {
    for (XQueryRunnerVariable variable : config.getVariables()) {
        if (variable.ACTIVE) {
            TypeBinder binder = binderFactory.getBinder(variable.TYPE);
            QName name = nameExtractor.getName(variable.NAME, variable.NAMESPACE);
            binder.bind(preparedExpression, connection, name, variable.VALUE, variable.TYPE);
        }
    }
}
项目:intellij-xquery    文件:XQJRunnerApp.java   
public void runApp() throws Exception {
    XQDataSource xqs = dataSourceFactory.getDataSource();
    XQConnection connection = null;
    try {
        connection = connectionFactory.getConnection(xqs);
        XQPreparedExpression preparedExpression = expressionFactory.getExpression(connection);
        XQResultSequence rs = preparedExpression.executeQuery();
        rs.writeSequence(output, outputMethodFactory.getOutputMethodProperties());
    } finally {
        if (connection != null) {
            connection.close();
        }
    }
}
项目:intellij-xquery    文件:ExpressionFactory.java   
public XQPreparedExpression getExpression(XQConnection connection) throws Exception {
    XQPreparedExpression preparedExpression = connection
            .prepareExpression(contentFactory.getXQueryContentAsStream());
    contextItemBinder.bindContextItem(connection, preparedExpression);
    variablesBinder.bindVariables(connection, preparedExpression);
    return preparedExpression;
}
项目:intellij-xquery    文件:AttributeBinderTest.java   
@Before
public void setUp() throws Exception {
    expression = mock(XQPreparedExpression.class);
    connection = mock(XQConnection.class);
    binder = new AttributeBinder();
    xqItemType = mock(XQItemType.class);
    given(connection.createAttributeType(null, XQItemType.XQBASETYPE_ANYSIMPLETYPE)).willReturn(xqItemType);
}
项目:intellij-xquery    文件:AtomicValueBinderTest.java   
@Before
public void setUp() throws XQException {
    expression = mock(XQPreparedExpression.class);
    connection = mock(XQConnection.class);
    binder = new AtomicValueBinder();
    xqItemType = mock(XQItemType.class);
    given(connection.createAtomicType(anyInt())).willReturn(xqItemType);
}
项目:intellij-xquery    文件:TextBinderTest.java   
@Before
public void setUp() throws XQException {
    expression = mock(XQPreparedExpression.class);
    connection = mock(XQConnection.class);
    binder = new TextBinder();
    xqItemType = mock(XQItemType.class);
    given(connection.createTextType()).willReturn(xqItemType);
}
项目:intellij-xquery    文件:ExpressionFactoryTest.java   
@Before
public void setUp() throws XQException {
    config = mock(XQueryRunConfig.class);
    variablesBinder = mock(VariablesBinder.class);
    contextItemBinder = mock(ContextItemBinder.class);
    contentFactory = mock(XQueryContentFactory.class);
    connection = mock(XQConnection.class);
    expression = mock(XQPreparedExpression.class);
    given(connection.prepareExpression(any(InputStream.class))).willReturn(expression);
    factory = new ExpressionFactory(config, contentFactory, variablesBinder, contextItemBinder);
}