int numberOfVariables = lhs.getNumberOfVariables(); if (rhs.getNumberOfVariables() != numberOfVariables) { return false; if (!lhs.getVariables()[i].equals(rhs.getVariables()[i])) { return false; return (lhs.getRowCardinality() == Cursor.ZERO) == (rhs.getRowCardinality() == Cursor.ZERO); lhs = (Answer) lhs.clone(); rhs = (Answer) rhs.clone(); try { lhs.beforeFirst(); rhs.beforeFirst(); for (;;) { boolean lhsFinished = !lhs.next(); boolean rhsFinished = !rhs.next(); if (lhs.getObject(i) != null && rhs.getObject(i) != null) { if (lhs.getObject(i) == null) { return false; if (rhs.getObject(i) == null) { return false; if (!lhs.getObject(i).equals(rhs.getObject(i))) {
public long getRowCount() throws TuplesException { return answer.getRowCount(); }
public long getRowUpperBound() throws TuplesException { return answer.getRowUpperBound(); }
variables = answer.getVariables(); assert variables != null:"variables array is null"; rowCount = 0; answer.beforeFirst(); while (answer.next()) { rowCount++; for (int i = 0; i < variables.length; i++) { Object object = answer.getObject(i); Answer subanswer = (Answer) object; object = new ArrayAnswer(subanswer); subanswer.close();
/** * Wrap an {@link Answer} instance. * * @param globalAnswer the global answer to wrap * @throws IllegalArgumentException if <var>globalAnswer</var> is * <code>null</code> */ public LocalizedTuples(ResolverSession session, Answer globalAnswer, boolean persist) { if (session == null) { throw new IllegalArgumentException("Null \"session\" parameter"); } if (globalAnswer == null) { throw new IllegalArgumentException("Null \"globalAnswer\" parameter"); } this.session = session; answer = (Answer) globalAnswer.clone(); setVariables(answer.getVariables()); this.persist = persist; }
variables = answer.getVariables(); logger.debug("Adding "+answer.getRowCount()+" rows"); answer.beforeFirst(); logger.debug("Reset source / Iterating Answer"); while (answer.next()) { logger.debug("Creating a row"); Object[] columnValues = new Object[answer.getNumberOfVariables()]; logger.debug("Populating a row"); try { for (int i = 0; i < columnValues.length; i++) { columnValues[i] = answer.getObject(i); if (columnValues[i] instanceof Answer && !(columnValues[i] instanceof Serializable)) { Answer ans = (Answer)columnValues[i]; columnValues[i] = new AnswerImpl(ans); try { ans.close(); } catch (TuplesException et) { logger.error("TuplesException thrown in AnswerImpl.close()", et);
public void execute(OperationContext operationContext, SystemResolver systemResolver, DatabaseMetadata metadata) throws Exception { Statements statements; if (tripleSet != null) { assert query == null; statements = new TripleSetWrapperStatements( tripleSet, systemResolver, TripleSetWrapperStatements.PERSIST ); } else { assert query != null; Answer answer = operationContext.doQuery(query); try { Variable[] vars = answer.getVariables(); assert vars.length == 3; statements = new TuplesWrapperStatements( new LocalizedTuples(systemResolver, answer, insert), vars[0], vars[1], vars[2]); } finally { answer.close(); } } assert statements != null; try { doModify(operationContext, systemResolver, modelURI, statements, insert); } finally { statements.close(); } }
/** * Construct a new query equivalent to substituing 'where' for the * where-clause in the original query. */ public Query(Query query, ConstraintExpression where) { this.mutableVariableList = query.mutableVariableList; this.variableList = query.variableList; this.modelExpression = query.modelExpression; this.constraintExpression = where; this.havingConstraint = query.havingConstraint; this.orderList = query.orderList; this.limit = query.limit; this.offset = query.offset; this.answer = (Answer)query.answer.clone(); /* this(query.getVariableList(), query.getModelExpression(), where, query.getHavingExpression(), query.getOrderList(), query.getLimit(), query.getOffset(), (Answer)query.getGiven().clone()); */ }
/** * Serializes the current object to a stream. * @param out The stream to write to. * @throws IOException If an I/O error occurs while writing. */ private void writeObject(ObjectOutputStream out) throws IOException { // convert answer to be serializable if needed if (!(answer instanceof Serializable)) { // TODO: use a remote answer object if the given is too large try { Answer tmpAnswer = answer; answer = new ArrayAnswer(answer); tmpAnswer.close(); } catch (TuplesException e) { throw new IOException("Unable to serialize GIVEN clause"); } } out.defaultWriteObject(); }
public void execute() throws TuplesException { answer.beforeFirst(); } });
public void execute() throws TuplesException { returnObject(answer.getObject(column)); } }).getObject();
public boolean next() throws TuplesException { return answer.next(); }
public void execute() { returnObject(answer.getVariables()); } }).getObject());
public void execute() throws TuplesException { returnInt(answer.getRowCardinality()); } }).getInt();
public void execute() { returnInt(answer.getNumberOfVariables()); } }).getInt();
public Object clone() { LocalizedTuples copy = (LocalizedTuples)super.clone(); copy.answer = (Answer)answer.clone(); return copy; }
public void execute() throws TuplesException { answer.close(); try { transaction.dereference(); } catch (MulgaraTransactionException em) { throw new TuplesException("Error dereferencing transaction", em); } } });
public void beforeFirst() throws TuplesException { answer.beforeFirst(); }
public void execute() throws TuplesException { returnObject(answer.getObject(columnName)); } });
public void execute() throws TuplesException { returnBoolean(answer.next()); } }).getBoolean();