예제 #1
0
파일: TextView.java 프로젝트: dirkk/basex
 /**
  * Sets the output text.
  *
  * @param out cached output
  */
 public void setText(final ArrayOutput out) {
   final byte[] buf = out.buffer();
   final int size = (int) out.size();
   final byte[] chop = token(DOTS);
   if (out.finished() && size >= chop.length) {
     System.arraycopy(chop, 0, buf, size - chop.length, chop.length);
   }
   text.setText(buf, size);
   header.setText((out.finished() ? CHOPPED : "") + RESULT);
   home.setEnabled(gui.context.data() != null);
 }
예제 #2
0
  /**
   * Runs a request with the specified arguments and server arguments.
   *
   * @param args command-line arguments
   * @param sargs server arguments
   * @return result
   * @throws IOException I/O exception
   */
  private static String run(final String[] args, final String[] sargs) throws IOException {
    final BaseXServer server = createServer(sargs);
    final ArrayOutput ao = new ArrayOutput();
    System.setOut(new PrintStream(ao));
    System.setErr(NULL);

    final StringList sl = new StringList();
    sl.add("-p9999").add("-U" + Text.S_ADMIN).add("-P" + Text.S_ADMIN).add(args);
    try {
      new BaseXClient(sl.finish());
      return ao.toString();
    } finally {
      System.setErr(ERR);
      stopServer(server);
    }
  }
예제 #3
0
파일: TextView.java 프로젝트: dirkk/basex
 /**
  * Serializes the specified nodes.
  *
  * @param n nodes to display
  */
 private void setText(final DBNodes n) {
   if (visible()) {
     try {
       final ArrayOutput ao = new ArrayOutput();
       ao.setLimit(gui.gopts.get(GUIOptions.MAXTEXT));
       if (n != null) n.serialize(Serializer.get(ao));
       setText(ao);
       cmd = null;
       ns = ao.finished() ? n : null;
     } catch (final IOException ex) {
       Util.debug(ex);
     }
   } else {
     home.setEnabled(gui.context.data() != null);
   }
 }
예제 #4
0
파일: TextView.java 프로젝트: dirkk/basex
  /**
   * Caches the output.
   *
   * @param out cached output
   * @param c command
   * @param r result
   * @throws QueryException query exception
   */
  public void cacheText(final ArrayOutput out, final Command c, final Result r)
      throws QueryException {

    // cache command or node set
    cmd = null;
    ns = null;

    final int mh = gui.context.options.get(MainOptions.MAXHITS);
    boolean parse = false;
    if (mh >= 0 && r != null && r.size() >= mh) {
      parse = true;
    } else if (out.finished()) {
      if (r instanceof DBNodes) ns = (DBNodes) r;
      else parse = true;
    }
    // create new command instance
    if (parse) cmd = new CommandParser(c.toString(), gui.context).parseSingle();
  }
예제 #5
0
 /**
  * Queries binary content (works only if output stream is specified).
  *
  * @throws IOException I/O exception
  */
 @Test
 public void queryBinary() throws IOException {
   if (out == null) return;
   session.execute("create db " + NAME);
   final byte[] tmp = {0, 1, 2, 127, 0, -1, -2, -128};
   session.store("X", new ArrayInput(tmp));
   final String retr = _DB_RETRIEVE.args(NAME, "X");
   // check command
   session.execute("xquery " + RAW + retr + ',' + retr);
   assertTrue(eq(out.toArray(), concat(tmp, tmp)));
   out.reset();
   // check query execution
   session.query(RAW + retr + ',' + retr).execute();
   assertTrue(eq(out.toArray(), concat(tmp, tmp)));
   out.reset();
   // check iterator
   final Query q = session.query(RAW + retr + ',' + retr);
   q.next();
   assertTrue(eq(out.toArray(), tmp));
   out.reset();
   q.next();
   assertTrue(eq(out.toArray(), tmp));
   assertNull(q.next());
 }
예제 #6
0
 /**
  * Returns the output as byte array.
  *
  * @return byte array
  */
 public final byte[] toArray() {
   return ao.toArray();
 }
예제 #7
0
파일: RESTCmd.java 프로젝트: LukasK/basex
 /**
  * Runs the specified command.
  *
  * @param c command
  * @return string result
  * @throws HTTPException HTTP exception
  */
 final String run(final Command c) throws HTTPException {
   final ArrayOutput ao = new ArrayOutput();
   run(c, ao);
   return ao.toString();
 }
예제 #8
0
파일: Command.java 프로젝트: plutext/basex
 /**
  * Executes the command and returns the result as string. If an exception occurs, a {@link
  * BaseXException} is thrown.
  *
  * @param ctx database context
  * @return string result
  * @throws BaseXException command exception
  */
 public final String execute(final Context ctx) throws BaseXException {
   final ArrayOutput ao = new ArrayOutput();
   execute(ctx, ao);
   return ao.toString();
 }
예제 #9
0
 /**
  * Checks if the most recent output equals the specified string.
  *
  * @param exp expected string
  * @param ret string returned from the client API
  */
 private void assertEqual(final Object exp, final Object ret) {
   final String result = (out != null ? out : ret).toString();
   if (out != null) out.reset();
   assertEquals(exp.toString(), result.replaceAll("\\r|\\n", ""));
 }