package org.basex.api.xqj; import static org.basex.api.xqj.BXQText.*; import java.io.InputStream; import java.io.Reader; import javax.xml.xquery.XQConnection; import javax.xml.xquery.XQException; import javax.xml.xquery.XQExpression; import javax.xml.xquery.XQMetaData; import javax.xml.xquery.XQPreparedExpression; import javax.xml.xquery.XQStaticContext; import org.basex.util.Token; /** * Java XQuery API - Connection. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ final class BXQConnection extends BXQDataFactory implements XQConnection { /** Database meta data. */ private final BXQMetaData meta = new BXQMetaData(this); /** * Default constructor. * @param name user name * @param pw password * @throws XQException if authentication fails */ BXQConnection(final String name, final String pw) throws XQException { super(name, pw); } @Override public void commit() throws XQException { opened(); throw new BXQException(TRANS); } @Override public XQExpression createExpression() throws XQException { return createExpression(context); } @Override public XQExpression createExpression(final XQStaticContext sc) throws XQException { opened(); valid(sc, XQStaticContext.class); return new BXQExpression((BXQStaticContext) sc, this); } @Override public boolean getAutoCommit() { return true; } @Override public XQMetaData getMetaData() throws XQException { opened(); return meta; } @Override public XQStaticContext getStaticContext() throws XQException { opened(); return context; } @Override public XQPreparedExpression prepareExpression(final InputStream is, final XQStaticContext sc) throws XQException { return prepareExpression(Token.string(content(is)), sc); } @Override public XQPreparedExpression prepareExpression(final InputStream is) throws XQException { return prepareExpression(is, context); } @Override public XQPreparedExpression prepareExpression(final Reader r, final XQStaticContext sc) throws XQException { return prepareExpression(Token.string(content(r)), sc); } @Override public XQPreparedExpression prepareExpression(final Reader r) throws XQException { return prepareExpression(r, context); } @Override public XQPreparedExpression prepareExpression(final String query, final XQStaticContext sc) throws XQException { opened(); valid(sc, XQStaticContext.class); valid(query, String.class); return new BXQPreparedExpression(query, (BXQStaticContext) sc, this); } @Override public XQPreparedExpression prepareExpression(final String query) throws XQException { return prepareExpression(query, context); } @Override public void rollback() throws XQException { opened(); throw new BXQException(TRANS); } @Override public void setAutoCommit(final boolean ac) throws XQException { opened(); if(!ac) throw new BXQException(TRANS); } @Override public void setStaticContext(final XQStaticContext sc) throws XQException { opened(); valid(sc, XQStaticContext.class); context = (BXQStaticContext) sc; } }