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(); }
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(); }
/** * 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()); } } }