Ejemplo n.º 1
0
 public static void main(final String[] args) throws IOException {
   final YAMLConfig cfg = YAML.config();
   final Serializer s =
       new SerializerImpl(new EmitterImpl(System.out, cfg), new ResolverImpl(), cfg);
   s.open();
   final Representer r = new RepresenterImpl(s, cfg);
   final Map test1 = new HashMap();
   final List test1Val = new LinkedList();
   test1Val.add("hello");
   test1Val.add(Boolean.TRUE);
   test1Val.add(new Integer(31337));
   test1.put("val1", test1Val);
   final List test2Val = new ArrayList();
   test2Val.add("hello");
   test2Val.add(Boolean.FALSE);
   test2Val.add(new Integer(31337));
   test1.put("val2", test2Val);
   test1.put("afsdf", "hmm");
   TestJavaBean bean1 = new TestJavaBean();
   bean1.setName("Ola");
   bean1.setSurName("Bini");
   bean1.setAge(24);
   test1.put(new Integer(25), bean1);
   r.represent(test1);
   s.close();
 }
Ejemplo n.º 2
0
 public String toRDF() {
   Serializer sb = new Serializer();
   sb.open("kg:Index");
   sb.appendPNL("kg:index ", index);
   int total = 0;
   for (Node pred : getSortedProperties()) {
     int i = get(pred).size();
     if (i > 0) {
       total += i;
       sb.append("kg:item [ ");
       sb.appendP("rdf:predicate ", pred);
       sb.append("rdf:value ", i);
       sb.appendNL("] ;");
     }
   }
   sb.appendNL("kg:total ", total);
   sb.close();
   return sb.toString();
 }
Ejemplo n.º 3
0
  /**
   * Evaluates the specified function and creates a response.
   *
   * @throws Exception exception (including unexpected ones)
   */
  void create() throws Exception {
    // bind variables
    final StaticFunc sf = function.function;
    final Expr[] args = new Expr[sf.args.length];
    function.bind(http, args, error);

    // wrap function with a function call
    final MainModule mm = new MainModule(sf, args);

    // assign main module and http context and register process
    query.mainModule(mm);
    query.http(http);
    query.context.register(query);

    String redirect = null, forward = null;
    RestXqRespBuilder resp = null;
    try {
      // compile and evaluate query
      query.compile();
      final Iter iter = query.iter();
      Item item = iter.next();

      // handle response element
      if (item != null && item instanceof ANode) {
        final ANode node = (ANode) item;
        // send redirect to browser
        if (REST_REDIRECT.eq(node)) {
          final ANode ch = node.children().next();
          if (ch == null || ch.type != NodeType.TXT) throw function.error(NO_VALUE, node.name());
          redirect = string(ch.string()).trim();
          return;
        }
        // server-side forwarding
        if (REST_FORWARD.eq(node)) {
          final ANode ch = node.children().next();
          if (ch == null || ch.type != NodeType.TXT) throw function.error(NO_VALUE, node.name());
          forward = string(ch.string()).trim();
          return;
        }
        if (REST_RESPONSE.eq(node)) {
          resp = new RestXqRespBuilder();
          resp.build(node, function, iter, http);
          return;
        }
      }

      // HEAD method must return a single response element
      if (function.methods.size() == 1 && function.methods.contains(HTTPMethod.HEAD.name()))
        throw function.error(HEAD_METHOD);

      // serialize result
      final SerializerOptions sp = function.output;
      http.sopts(sp);
      http.initResponse();
      final Serializer ser = Serializer.get(http.res.getOutputStream(), sp);
      for (; item != null; item = iter.next()) ser.serialize(item);
      ser.close();

    } finally {
      query.close();
      query.context.unregister(query);

      if (redirect != null) {
        http.res.sendRedirect(redirect);
      } else if (forward != null) {
        http.req.getRequestDispatcher(forward).forward(http.req, http.res);
      } else if (resp != null) {
        if (resp.status != 0) http.status(resp.status, resp.message, resp.error);
        http.res.getOutputStream().write(resp.cache.toArray());
      }
    }
  }