diff options
author | Shawn O. Pearce <sop@google.com> | 2011-06-03 18:33:58 -0700 |
---|---|---|
committer | Shawn O. Pearce <sop@google.com> | 2011-06-03 18:33:58 -0700 |
commit | 2cf8219bc6759bacd70c672493c8b7219e9d2a3e (patch) | |
tree | 582a687b62f1f9f1e44ce454f40bda9cfa66a017 | |
parent | e15adf99afc831f4a81bb2083ab85051ff80a5ea (diff) | |
download | prolog-cafe-2cf8219bc6759bacd70c672493c8b7219e9d2a3e.tar.gz |
Allow construction of package-private predicates
-rw-r--r-- | src/lang/PrologClassLoader.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lang/PrologClassLoader.java b/src/lang/PrologClassLoader.java index 2205793..f0b1db6 100644 --- a/src/lang/PrologClassLoader.java +++ b/src/lang/PrologClassLoader.java @@ -1,5 +1,6 @@ package com.googlecode.prolog_cafe.lang; import java.io.Serializable; +import java.lang.reflect.Constructor; /** * Prolog class loader. * @@ -91,7 +92,10 @@ public class PrologClassLoader extends ClassLoader implements Serializable { for (int i = 0; i < arity; i++) a[i] = args[i]; a[arity] = cont; - return (Predicate) clazz.getDeclaredConstructor(params).newInstance(a); + + Constructor<Predicate> cons = clazz.getDeclaredConstructor(params); + cons.setAccessible(true); + return cons.newInstance(a); } catch (Exception err) { SymbolTerm colon2 = SymbolTerm.makeSymbol(":", 2); SymbolTerm slash2 = SymbolTerm.makeSymbol("/", 2); |