Package clojure.lang

Examples of clojure.lang.Var.invoke()


    @JRubyMethod
    public IRubyObject join(ThreadContext context) {
        try {
            Var var = DiametricService.getFn("clojure.string", "join");
            return context.getRuntime().newString((String)var.invoke(vector_or_seq));
        } catch (Throwable t) {
            throw context.getRuntime().newRuntimeError(t.getMessage());
        }
    }
View Full Code Here


            return join(context);
        } else if (arg instanceof RubyString) {
            try {
                String separator = (String)arg.toJava(String.class);
                Var var = DiametricService.getFn("clojure.string", "join");
                return context.getRuntime().newString((String)var.invoke(separator, vector_or_seq));
            } catch (Throwable t) {
                throw context.getRuntime().newRuntimeError(t.getMessage());
            }
        }
        return context.getRuntime().getNil();   
View Full Code Here

    @JRubyMethod
    public IRubyObject last(ThreadContext context) {
        try {
            Var var = DiametricService.getFn("clojure.core", "last");
            return DiametricUtils.convertJavaToRuby(context, var.invoke(vector_or_seq));
        } catch (Throwable t) {
            throw context.getRuntime().newRuntimeError(t.getMessage());
        }
    }
View Full Code Here

        }
        if (vector_or_seq.isEmpty()) return context.getRuntime().newEmptyArray();
        Long n = (Long)arg.toJava(Long.class);
        try {
            Var var = DiametricService.getFn("clojure.core", "take-last");
            return DiametricUtils.convertJavaToRuby(context, var.invoke(n, vector_or_seq));
        } catch (Throwable t) {
            throw context.getRuntime().newRuntimeError(t.getMessage());
        }
    }
View Full Code Here

    }

    private int getCount() {
        if (count == null) {
            Var var = DiametricService.getFn("clojure.core", "count");
            count = (Integer)var.invoke(vector_or_seq);
        }
        return count;
    }

    @JRubyMethod(name={"length", "size"})
View Full Code Here

            throw context.getRuntime().newArgumentError("This method needs at least :lang, :params, and :code keys with values");
        }
        try {
            Var hash_map_fn = DiametricService.getFn("clojure.core", "hash-map");
            clojure.lang.PersistentArrayMap clj_map =
                    (PersistentArrayMap) hash_map_fn.invoke();
            Var assoc_fn = DiametricService.getFn("clojure.core", "assoc");
            String[] keys = new String[] { "lang", "params", "code", "requires", "imports" };
            Class[] valueTypes =
                    new Class[] { RubySymbol.class, RubyArray.class, RubyString.class, RubyArray.class, RubyArray.class };
            for (int i = 0; i < keys.length; i++) {
View Full Code Here

                    new Class[] { RubySymbol.class, RubyArray.class, RubyString.class, RubyArray.class, RubyArray.class };
            for (int i = 0; i < keys.length; i++) {
                RubySymbol ruby_key = context.getRuntime().newSymbol(keys[i]);
                IRubyObject ruby_value = params.op_aref(context, ruby_key);
                if (ruby_value.isNil()) continue;
                clj_map = (PersistentArrayMap) assoc_fn.invoke(
                            clj_map,
                            DiametricService.keywords.get(ruby_key.toString()),
                            convertRubyValueToJava(context, ruby_value, valueTypes[i]));
            }
            RubyClass clazz = (RubyClass) context.getRuntime().getClassFromPath("Diametric::Persistence::Function");
View Full Code Here

                            convertRubyValueToJava(context, ruby_value, valueTypes[i]));
            }
            RubyClass clazz = (RubyClass) context.getRuntime().getClassFromPath("Diametric::Persistence::Function");
            DiametricFunction ruby_function = (DiametricFunction) clazz.allocate();
            Var function_fn = DiametricService.getFn("datomic.api", "function");
            ruby_function.init((datomic.function.Function) function_fn.invoke(clj_map));
            return ruby_function;
        } catch (Throwable t) {
            throw context.getRuntime().newRuntimeError(t.getMessage());
        }
    }
View Full Code Here

        List list = new ArrayList<clojure.lang.Symbol>();
        Var symbol_fn = DiametricService.getFn("clojure.core", "symbol");
        for (int i=0; i<ruby_array.size(); i++) {
            IRubyObject element = ruby_array.at(context.getRuntime().newFixnum(i));
            if (element instanceof RubySymbol) { // params
                list.add(symbol_fn.invoke(((RubySymbol)element).toString()));
            } else if (element instanceof RubyString) { // requires and imports
                list.add(((RubyString)element).asJavaString());
            }
        }
        return list;
View Full Code Here

            Var count_value_fn = null;
            if (DiametricService.fnMap.containsKey("count-value")) {
                count_value_fn = DiametricService.fnMap.get("count-value");
            } else {
                Var var = DiametricService.getFn("clojure.core", "load-string");
                count_value_fn = (Var)var.invoke("(defn count-value [v array] (count (filterv (partial = v) array)))");
                DiametricService.fnMap.put("count-value", count_value_fn);
            }
            Object value = DiametricUtils.convertRubyToJava(context, arg);
            return context.getRuntime().newFixnum((Integer)count_value_fn.invoke(value, target));
        } catch (Throwable t) {
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.