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

项目: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(); 
}
项目:XMLVersioningFramework    文件:XChroniclerHandler.java   
@Override
public RepositoryRevision getRepositoryHEAD() {
    String[] files = getFilesFromExist(COLLECTION_PATH);
    RepositoryRevision repo = new RepositoryRevision();
    for (String file : files) {
        RepositoryFile repositoryFile = null;
        try {
            repositoryFile = new RepositoryFile(file,
                    getHeadFile(COLLECTION_PATH + file));
        } catch (XQException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        repo.addRepositoryFile(repositoryFile);
    }
    return repo;

}
项目:bagri    文件:XQUtils.java   
public static Map<String, Object> mapFromSequence(XQSequence cs) throws XQException {
    Map<String, Object> result;
    synchronized (cs) {
        if (cs.isScrollable()) {
            cs.beforeFirst();
            result = new HashMap<>(cs.count());
        } else {
            result = new HashMap<>();
        }

        while (cs.next()) {
            XQSequence pair = (XQSequence) cs.getObject();
            pair.beforeFirst();
            pair.next();
            String key = pair.getAtomicValue();
            pair.next();
            Object value = pair.getObject();
            result.put(key, value);
        }
    }
        return result;
}
项目:bagri    文件:SaxonParserTest.java   
@Test
public void testGetBoolean() throws XQException {

       SaxonXQDataSource xqds = new SaxonXQDataSource();
       XQConnection xqc = xqds.getConnection();
    XQExpression xqe = xqc.createExpression();
    xqe.bindObject(new QName("v"), Boolean.valueOf(true), null);
    XQSequence xqs = xqe.executeQuery("declare variable $v external; $v instance of xs:boolean");
    xqs.next();
    assertTrue("expected true but got false", xqs.getBoolean());

    xqe.bindObject(new QName("v"), new Byte((byte) 1), null);
    xqs = xqe.executeQuery("declare variable $v external; $v instance of xs:byte");
    xqs.next();
    assertTrue("expected true (byte) but got false", xqs.getBoolean());

    xqs.close();
}
项目:bagri    文件:IterableXQSequence.java   
@Override
public boolean next() throws XQException {

    checkState(ex_sequence_closed);
    //try {
        if (iter.hasNext()) {
            XQItemAccessor current = iter.next();
            //if (current instanceof BagriXQItemAccessor) {
                setCurrent(((BagriXQItemAccessor) current).type, ((BagriXQItemAccessor) current).value);
            //} else if (current instanceof XQItem) {
            //  setCurrent(((XQItem) current).getItemType(), ((XQItem) current).getObject());
            //} else {
            //  setCurrent(getTypeForObject(xqFactory, current), current);
            //}
            accessed = false;
            return true;
        }
        positioned = false;
        return false;
    //} catch (BagriException ex) {
    //  throw getXQException(ex);
    //}
}
项目:bagri    文件:XQProcessorClient.java   
private String getDocumentUri(Map<String, Object> params) throws XQException {
    XQItem uri = (XQItem) params.remove("uri");
    if (uri == null) {
        throw new XQException("No document uri passed");
    }
    return uri.getAtomicValue();
}
项目: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    文件:ScrollableXQSequence.java   
@Override
public boolean absolute(int itempos) throws XQException {

    checkState(ex_sequence_closed);
    if (sequence.size() > 0) {
        if (itempos >= 0) {
            position = itempos;
        } else {
            position = sequence.size() + itempos + 1;
        }
        if (position < 0) {
            position = 0;
        } else if (position > sequence.size() + 1) {
            position = sequence.size() + 1;
        }
        setCurrent();
        return position > 0 && position <= sequence.size();
    }
    return false;
}
项目:bagri    文件:XQSequenceSerializer.java   
@Override
public void write(ObjectDataOutput out, XQSequence sequence) throws IOException {
    try {
        List<XQItemAccessor> items;
        synchronized (sequence) {
            if (sequence.isScrollable()) {
                sequence.beforeFirst();
                items = new ArrayList<>(sequence.count());
            } else {
                items = new ArrayList<>();
            }
            while (sequence.next()) {
                Object value = sequence.getObject();
                if (value instanceof XQItemAccessor) {
                    items.add((XQItemAccessor) value);
                } else {
                    items.add(sequence.getItem());
                }
            }
        }
        logger.trace("write; writing items: {}", items);
        out.writeObject(items);
    } catch (XQException ex) {
        throw new IOException(ex);
    }
}
项目: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    文件:BagriXQPreparedExpression.java   
@Override
public XQSequenceType getStaticVariableType(QName name) throws XQException {

    checkState(ex_expression_closed);
    if (name == null) {
        throw new XQException("name is null");
    }
    if (getVarNames().contains(name)) {
        // where can I get var type??
        XQItemType type;
        XQItemAccessor acc = (XQItemAccessor) getBindings().get(name);
        if (acc != null) {
            type = acc.getItemType();
        } else {
            type = connection.createItemType();
        }
        return new BagriXQSequenceType(type, OCC_ZERO_OR_MORE);
    }
    throw new XQException("Static variable [" + name + "] does not exist");
}
项目:bagri    文件:BagriConnectionPool.java   
@Override
public XQConnection getConnection() throws XQException {
    // get pooled connection from pool
    // if no spare connections - grow pool..?
    PooledXQConnection xqConn;
    synchronized (pool) {
        if (pool.size() > 0) {
            xqConn = pool.pop();
        } else {
            xqConn = poolSource.getPooledConnection(); 
        }
    }
    xqConn.addConnectionEventListener(this);
    XQConnection conn = xqConn.getConnection();
    logger.debug("getConnection; pool size: {}; returning: {}", pool.size(), conn);
    return conn;
}
项目:bagri    文件:SaxonQueryTest.java   
@Test
public void testPersonQuery() throws XPathException, XQException {

       Configuration config = Configuration.newConfiguration();
       StaticQueryContext sqc = config.newStaticQueryContext();
        DynamicQueryContext dqc = new DynamicQueryContext(config);
       dqc.setApplyFunctionConversionRulesToExternalVariables(false);

    String query = "declare base-uri \"../../etc/samples/xmark/\";\n" +
            "let $auction := fn:doc(\"auction.xml\") return\n" +
            "for $b in $auction/site/people/person[@id = 'person0'] return $b/name/text()";

    //dqc.setParameter(new StructuredQName("", "", "v"), objectToItem(Boolean.TRUE, config));
        XQueryExpression xqExp = sqc.compileQuery(query);
       SequenceIterator itr = xqExp.iterator(dqc);
       Item item = itr.next();
        assertNotNull(item);
        String val = item.getStringValue();
    assertEquals("Huei Demke", val);
    assertNull(itr.next());
}
项目:bagri    文件:XQProcessorServer.java   
@Override
public boolean isQueryReadOnly(final String query, Properties props) throws XQException {
    boolean result = super.isQueryReadOnly(query);
    if (result) {
        int qKey = getQueryManagement().getQueryKey(query);
        XQueryExpression xqExp;
        try {
            xqExp = getXQuery(qKey, query, props);
        } catch (XPathException xpe) {
            logger.error("isQueryReadOnly.error: ", xpe);
            throw convertXPathException(xpe);
        }
        result = !isUpdatingExpression(xqExp.getExpression());
        }
        return result;
}
项目:bagri    文件:BagriXQDataFactory.java   
@Override
public XQItem createItemFromNode(Node value, XQItemType type) throws XQException {

    checkState(ex_connection_closed);
    if (value == null) {
        throw new XQException("Node value is null");
    }
    if (type == null) {
        return new BagriXQItem(xqProcessor, createNodeType(), value); 
    } else { 
        if (!((BagriXQItemType) type).isNodeCompatible(value)) {
            throw new XQException("Node type and value are not compatible");
        } 
        return new BagriXQItem(xqProcessor, type, value); 
    }
}
项目:bagri    文件:BagriXQConnection.java   
@Override
public void commit() throws XQException {

    checkState(ex_connection_closed);
    if (autoCommit) {
        throw new XQException("The connection is in AutoCommit state, nothing to commit explicitly.", String.valueOf(ecTransWrongState));
    }

    if (transactional) {
        try {
            getTxManager().commitTransaction(txId);
        } catch (BagriException ex) {
            throw getXQException(ex);
        }
        txId = TX_NO;
    }
}
项目:bagri    文件:BagriXQSequence.java   
@Override
public XMLStreamReader getSequenceAsStream() throws XQException {

    checkState(ex_sequence_closed);
    try {
        return XMLUtils.stringToStream(getSequenceAsString(null));
    } catch (IOException ex) {
        throw new XQException(ex.getMessage());
    }
}
项目:bagri    文件:BagriXQItemAccessorTest.java   
@Test
public void testNamespace() throws XQException {
    XQStaticContext xqsc = xqc.getStaticContext(); 
    xqsc.declareNamespace("foo", "http://www.foo.com");
    XQExpression  xqe = xqc.createExpression(xqsc);
    XQSequence xqs = xqe.executeQuery("<foo:e/>");
    xqe.close();
}
项目:bagri    文件:BagriXQItemAccessorTest.java   
@Test
public void testItemType() throws XQException {
    XQItemType xqtype = xqc.createDocumentType() ;
    assertFalse("A-XQIT-8.1: isAnonymousType() reports if the type is anonymous.", xqtype.isAnonymousType());
    assertFalse("A-XQIT-9.1: isElementNillable() reports if the element is nillable.", xqtype.isElementNillable());
    //xqtype.getPIName();
}
项目:bagri    文件:BagriXQExpression.java   
private void closeResults() throws XQException {
    for (XQResultSequence sq: results) {
        if (!sq.isClosed()) {
            sq.close();
        }
    }
    results.clear();
}
项目: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    文件:BagriXQDataSourceTest.java   
@Test
@Ignore
public void getConnectionWithCredentialsTest() throws XQException {
    String username = "test";
    String password = "test";
    XQConnection conn = xqds.getConnection(username, password);
    assertNull(conn);
    //assertFalse(conn.isClosed());
    //conn.close();
}
项目:bagri    文件:IterableXQSequence.java   
@Override
public void writeItemToResult(Result result) throws XQException {

    checkAccess(true);
    super.writeItemToResult(result);
    accessed = true;
}
项目:bagri    文件:IterableXQSequence.java   
@Override
public Object getObject() throws XQException {

    checkAccess(true);
    Object result = super.getObject();
    accessed = true;
    return result;
}
项目:bagri    文件:IterableXQSequence.java   
@Override
public boolean getBoolean() throws XQException {

    checkAccess(true);
    boolean result = super.getBoolean();
    accessed = true;
    return result;
}
项目: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    文件:XQUtils.java   
public static XQSequence mapToSequence(XQDataFactory factory, Map<String, Object> map) throws XQException {

        List<XQSequence> pairs = new ArrayList<>(); 
        for (Map.Entry<String, Object> e: map.entrySet()) {
            List<XQItemAccessor> pair = new ArrayList<>(2);
            pair.add(factory.createItemFromString(e.getKey(), factory.createAtomicType(XQBASETYPE_STRING)));
            pair.add(factory.createItemFromObject(e.getValue(), factory.createAtomicType(getBaseTypeForObject(e.getValue()))));
            pairs.add(factory.createSequence(pair.iterator()));
        }
        return factory.createSequence(pairs.iterator());
    }
项目: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    文件:BagriXQDynamicContext.java   
BagriXQDynamicContext(BagriXQConnection connection) {
    this();
    this.connection = connection;
    try {
        this.context = connection.getStaticContext();
    } catch (XQException ex) {
        connection = null;
    }
}
项目:bagri    文件:IterableXQSequence.java   
@Override
public void writeItem(Writer ow, Properties props) throws XQException {

    checkAccess(true);
    super.writeItem(ow, props);
    accessed = true;
}
项目:XWorld    文件:XSpringAop.java   
private void rollback() throws XQException {
    IXQSession ixqSession=DptXMLDBSessionFactory.getXQSession();
    if(ixqSession!=null&&!ixqSession.isClosed()){
        ixqSession.rollBack();
    }

}
项目:bagri    文件:QueryManagement.java   
@ManagedOperation(description="Cancel currently running query started from the same JMX connection")
public void cancelQuery() {
    try {
        // are we in exec state now?
        XQProcessor xqp = ((BagriXQConnection) xqConn).getProcessor();
        xqp.cancelExecution();
    } catch (XQException ex) {
        logger.error("cancelQuery.error", ex); 
        throw new RuntimeException(ex.getMessage());
    } 
}
项目:XMLVersioningFramework    文件:XChroniclerHandler.java   
/**
 * Checkout the repository on a specific revision
 * 
 * TODO: Implement the search of all files in the repository
 * 
 * @param revision
 */
@Override
public RepositoryRevision checkout(String revision) {
    String fileUrl = "a.xml";
    String fileContent = "";
    try {
        fileContent = checkout(revision, fileUrl);
    } catch (XQException e) {
        e.printStackTrace();
    }

    RepositoryRevision rr = new RepositoryRevision();
    rr.addRepositoryFile(new RepositoryFile(fileUrl, fileContent));
    return rr;
}
项目:bagri    文件:BagriXQItemAccessor.java   
@Override
public String getItemAsString(Properties props) throws XQException {

    if (closed) {
        throw new XQException(ex_item_closed);
    }
    if (value == null) {
        throw new XQException("Value is not accessible");
    }
    props = checkOutputProperties(props);
    return xqProcessor.convertToString(value, props);
}
项目:bagri    文件:BagriXQStaticContext.java   
@Override
public void setHoldability(int holdability) throws XQException {

    if (holdability != HOLDTYPE_HOLD_CURSORS_OVER_COMMIT && holdability != HOLDTYPE_CLOSE_CURSORS_AT_COMMIT) {
        throw new XQException("Wrong holdability value: " + holdability);
    }  
    this.holdability = holdability;
}
项目:bagri    文件:BagriXQItemAccessor.java   
@Override
public XMLStreamReader getItemAsStream() throws XQException {

    if (closed) {
        throw new XQException(ex_item_closed);
    }
    try {
        return XMLUtils.stringToStream(getItemAsString(null));
    } catch (IOException ex) {
        throw new XQException(ex.getMessage());
    }
}
项目:bagri    文件:IterableXQSequence.java   
@Override
public float getFloat() throws XQException {

    checkAccess(true);
    float result = super.getFloat();
    accessed = true;
    return result;
}
项目:bagri    文件:BagriXQSequence.java   
@Override
public String getSequenceAsString(Properties props) throws XQException {

    checkState(ex_sequence_closed);
       props = checkOutputProperties(props);
    return getXQProcessor().convertToString(this, props);
}
项目: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    文件:ScrollableXQSequence.java   
@Override
public boolean previous() throws XQException {

    checkState(ex_sequence_closed);
    position--;
    if (position > 0 && sequence.size() > 0) {
        setCurrent();
        return true;
    }
    return false;
}