aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2011-06-03 18:33:58 -0700
committerShawn O. Pearce <sop@google.com>2011-06-03 18:33:58 -0700
commit2cf8219bc6759bacd70c672493c8b7219e9d2a3e (patch)
tree582a687b62f1f9f1e44ce454f40bda9cfa66a017
parente15adf99afc831f4a81bb2083ab85051ff80a5ea (diff)
downloadprolog-cafe-2cf8219bc6759bacd70c672493c8b7219e9d2a3e.tar.gz
Allow construction of package-private predicates
-rw-r--r--src/lang/PrologClassLoader.java6
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);