/* Example of wrapper for a Java class as a Prolog class. This is actually a wrapper for Java's own Object class. By inheriting from it, a Prolog class used as a wrapper for a Java class can access the (essential) services offered by the class Object in Java. */ java_object:- new_java_class('java.lang.Object',C), new_java_object(C,void,O), object<=O. equals(Other):- object=>O, Other:(object=>OtherO), invoke_java_method(O,equals(OtherO),TF), invoke_java_method(TF,toString,true). toString(S):- object=>O, invoke_java_method(O,toString,S). /* ?- new(java_object,J),J:equals(J),J:toString(S),println(S). */