Package org.jpl7

Class JPL


  • public class JPL
    extends java.lang.Object
    The jpl.JPL class contains static methods which allow (i) inspection and alteration of the "default" initialisation arguments (ii) explicit initialisation (iii) discovery of whether the Prolog engine is already initialised, and if so, with what arguments. The Prolog engine must be initialized before any queries are made, but this will happen automatically (upon the first call to a Prolog FLI routine) if it has not already been done explicitly.
    Copyright (C) 2004 Paul Singleton

    Copyright (C) 1998 Fred Dushin

    Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

    1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


    • Constructor Summary

      Constructors 
      Constructor Description
      JPL()  
    • Method Summary

      All Methods Static Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      static java.lang.String[] getActualInitArgs()
      Returns, in an array of String, the sequence of command-line arguments that were actually used when the Prolog engine was formerly initialised.
      static java.lang.String[] getDefaultInitArgs()
      Returns, in an array of String, the sequence of command-line arguments that would be used if the Prolog engine were to be initialised now.
      static java.lang.String getSyntax()  
      static void halt()
      Deprecated. 
      static boolean init()
      Initialises the Prolog engine using the current default initialisation parameters, and returns 'true' (or 'false' if already initialised).
      static boolean init​(java.lang.String[] args)
      Initializes the Prolog engine, using the String argument parameters passed.
      static java.lang.String jarPath()  
      static void loadNativeLibrary()  
      static void main​(java.lang.String[] args)  
      static Term newJRef​(java.lang.Object object)  
      static void setDefaultInitArgs​(java.lang.String[] args)
      Specifies, in an array of String, the sequence of command-line arguments that should be used if the Prolog engine is subsequently initialised.
      static void setDTMMode​(boolean dtm)
      Sets the global "dont-tell-me" mode (default value: true).
      static java.lang.String setNativeLibraryDir​(java.lang.String newDir)  
      static java.lang.String setNativeLibraryName​(java.lang.String newName)  
      static java.lang.String setNativeLibraryPath​(java.lang.String newPath)  
      static void setTraditional()  
      static void setTraditionalAnyway()  
      static org.jpl7.Version version()
      Returns (as a Version) an identification of this version of JPL.
      static java.lang.String version_string()
      Returns a String (eg "3.0.0-alpha") identifying this version of JPL.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • JFALSE

        public static final Term JFALSE
      • JTRUE

        public static final Term JTRUE
      • JNULL

        public static final Term JNULL
      • JVOID

        public static final Term JVOID
      • LIST_NIL

        public static Atom LIST_NIL
      • LIST_PAIR

        public static java.lang.String LIST_PAIR
    • Constructor Detail

      • JPL

        public JPL()
    • Method Detail

      • setNativeLibraryName

        public static java.lang.String setNativeLibraryName​(java.lang.String newName)
      • setNativeLibraryDir

        public static java.lang.String setNativeLibraryDir​(java.lang.String newDir)
      • setNativeLibraryPath

        public static java.lang.String setNativeLibraryPath​(java.lang.String newPath)
      • loadNativeLibrary

        public static void loadNativeLibrary()
      • jarPath

        public static java.lang.String jarPath()
      • setDTMMode

        public static void setDTMMode​(boolean dtm)
        Sets the global "dont-tell-me" mode (default value: true). When 'true', bindings will *not* be returned for any variable (in a Query's goal) whose name begins with an underscore character (except for "anonymous" variables, i.e. those whose name comprises just the underscore character, whose bindings are never returned). When 'false', bindings are returned for *all* variables except anonymous ones; this mode may be useful when traditional top-level interpreter behaviour is wanted, e.g. in a Java-based Prolog IDE or debugger.

        This method should be regarded as experimental, and may subsequently be deprecated in favour of some more general mechanism for setting options, perhaps per-Query and per-call as well as globally.

        Parameters:
        dtm - new "dont-tell-me" mode value
      • setTraditional

        public static void setTraditional()
      • setTraditionalAnyway

        public static void setTraditionalAnyway()
      • getSyntax

        public static java.lang.String getSyntax()
      • getDefaultInitArgs

        public static java.lang.String[] getDefaultInitArgs()
        Returns, in an array of String, the sequence of command-line arguments that would be used if the Prolog engine were to be initialised now. Returns null if the Prolog VM has already been initialised (in which case the default init args are irrelevant and the actual init args are of interest)

        Returns:
        current default initialisation arguments, or null if already initialised
        See Also:
        getActualInitArgs()
      • setDefaultInitArgs

        public static void setDefaultInitArgs​(java.lang.String[] args)
        Specifies, in an array of String, the sequence of command-line arguments that should be used if the Prolog engine is subsequently initialised.

        Parameters:
        args - new default initialization arguments
      • getActualInitArgs

        public static java.lang.String[] getActualInitArgs()
        Returns, in an array of String, the sequence of command-line arguments that were actually used when the Prolog engine was formerly initialised. This method returns null if the Prolog engine has not yet been initialised, and thus may be used to test this condition.
        Returns:
        actual initialization arguments
      • init

        public static boolean init​(java.lang.String[] args)
        Initializes the Prolog engine, using the String argument parameters passed. This method need be called only if you want to both (i) initialise the Prolog engine with parameters other than the default ones and (ii) force initialisation to occur (rather than allow it to occur automatically at the first query). For parameter options, consult your local Prolog documentation. The parameter values are passed directly to initialization routines for the Prolog environment.

        This method must be called before making any queries.

        Parameters:
        args - Initialization parameter list
      • init

        public static boolean init()
        Initialises the Prolog engine using the current default initialisation parameters, and returns 'true' (or 'false' if already initialised).
      • newJRef

        public static Term newJRef​(java.lang.Object object)
        Parameters:
        object -
        Returns:
        a new Term instance which canonically represents the given object reference (concrete or null)
      • halt

        public static void halt()
        Deprecated.
        Terminates the Prolog session.

        Note. This method calls the FLI halt() method with a status of 0, but the halt method currently is a no-op in SWI.

      • version

        public static org.jpl7.Version version()
        Returns (as a Version) an identification of this version of JPL.
        Returns:
        the running version of JPL.
      • version_string

        public static java.lang.String version_string()
        Returns a String (eg "3.0.0-alpha") identifying this version of JPL.
        Returns:
        a String (eg "3.0.0-alpha") identifying this version of JPL.
      • main

        public static void main​(java.lang.String[] args)