All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class prolog.PrologGoal

java.lang.Object
   |
   +----prolog.PrologGoal

public class PrologGoal
extends Object
implements Serializable
Représente un but (ou prédicat) Prolog avec toutes les fonctions permettant de récupérer et de modifier les termes qui appartiennent à ce but.
Attention, lors de l'appel d'une fonction Java depuis Prolog, il ne faut jamais modifier l'arité du prédicat reçu. Le prédicat renvoyé à Prolog doit avoir la même arité que le prédicat qui avait été envoyé par Prolog.

Version:
1.0 -- Last update : 22/09/97
Author:
Stéphane CABAGNO -- Copyright © 1997 PrologIA
See Also:
PrologTerm, PrologDot, PrologFloat, PrologFunctor, PrologIdent, PrologInt, PrologNil, PrologRat, PrologString, PrologVar, PrologGoalException, PrologException

Constructor Index

 o PrologGoal()
Construit un nouveau but Prolog.
 o PrologGoal(PrologGoal)
Construit un nouveau but Prolog à partir d'un autre but Prolog.
 o PrologGoal(String)
Construit un nouveau but Prolog de nom donné.

Method Index

 o clone()
Retourne l'objet représentant le but Prolog.
 o getAllTerms()
Retourne le vecteur contenant les termes du but.
 o getArite()
Retourne l'arité du but Prolog.
 o getError()
Retourne le numéro d'erreur du but (0 indique qu'il n'y a pas d'erreur).
 o getName()
Retourne le nom du but.
 o getTerm(int)
Renvoie le terme se trouvant à la position voulue.
 o getType()
Retourne le type du but.
 o initialise()
Cette méthode permet d'initialiser le but Prolog à exécuter depuis JAVA.
 o nextSolution()
Demande à Prolog la prochaine solution du prédicat.
 o prologConnection(String, int, int, int)
Ouvre une socket entre le programme et le serveur Java dans le but de lancer un prédicat Prolog depuis Java.
 o prologDeconnection()
Déconnecte Prolog et le programme Java du serveur Java.
 o putTerm(int, PrologTerm)
Insère un terme à la position voulue dans le but.
 o putTerm(PrologTerm)
Insère un terme à la dernière position dans le but.
 o readIn(DataInputStream)
Lit dans le flot d'entrée le code représentant le but Prolog.
 o readJavaIn(DataInputStream)
Lit dans le flot d'entrée le code représentant le but Prolog.
 o setAllTerms(Vector)
Remplace la totalité des termes du but par les termes donnés.
 o setArite(int)
Modifie l'arité du prédicat.
 o setError(int)
Met à jour le numéro d'erreur du prédicat.
 o setName(String)
Modifie le nom du but.
 o setTerm(int, PrologTerm)
Remplace le terme à la position voulue dans le but.
 o setType(byte)
Modifie le type du but.
 o stopGoal()
Cette méthode permet de stopper l'exécution du but avant qu'il n'y ait plus de solutions.
 o toString()
Retourne la représentation du but Prolog sous forme de chaîne.
 o writeIn(DataOutputStream)
Ecrit dans le flot de sortie le code représentant le but Prolog.
 o writeJavaIn(DataOutputStream)
Ecrit dans le flot de sortie le code représentant le but Prolog.

Constructors

 o PrologGoal
 public PrologGoal()
Construit un nouveau but Prolog.

 o PrologGoal
 public PrologGoal(PrologGoal theGoal)
Construit un nouveau but Prolog à partir d'un autre but Prolog.

Parameters:
theGoal - le but à recopier
 o PrologGoal
 public PrologGoal(String theName)
Construit un nouveau but Prolog de nom donné.

Il est préférable d'utilisé ce constructeur uniquement dans le cas de l'appel d'un but Prolog depuis JAVA.

Parameters:
theName - le nom du but

Methods

 o getTerm
 public PrologTerm getTerm(int position)
Renvoie le terme se trouvant à la position voulue.

Parameters:
position - position du terme dans le but
Returns:
le terme à la position demandée
 o getAllTerms
 public Vector getAllTerms()
Retourne le vecteur contenant les termes du but.

Returns:
le vecteur contenant les termes du but
 o getName
 public String getName()
Retourne le nom du but.

Returns:
le nom (ou étiquette) du but
 o getType
 public byte getType()
Retourne le type du but.
Les différents types possibles sont les suivants :

Returns:
le type du but
 o getArite
 public int getArite()
Retourne l'arité du but Prolog.

Returns:
l'arité du but Prolog
 o getError
 public int getError()
Retourne le numéro d'erreur du but (0 indique qu'il n'y a pas d'erreur).
Attention, il est important de choisir des numéros d'erreur supérieurs à 1000.

Returns:
le numéro d'erreur du prédicat
 o setType
 public void setType(byte theType)
Modifie le type du but.

Parameters:
theType - le nouveau type du but
 o setName
 public void setName(String theName)
Modifie le nom du but.

Parameters:
theName - le nouveau nom du but
 o setArite
 public void setArite(int theArite)
Modifie l'arité du prédicat.

Parameters:
theArite - la nouvelle arité du prédicat
 o setTerm
 public void setTerm(int position,
                     PrologTerm theTerm)
Remplace le terme à la position voulue dans le but.

Parameters:
position - position du terme qui doit être remplacé
theTerm - le nouveau terme Prolog
 o setAllTerms
 public void setAllTerms(Vector theTerms)
Remplace la totalité des termes du but par les termes donnés.

Parameters:
theTerms - le vecteur contenant tous les nouveaux termes
 o setError
 public void setError(int theErrno)
Met à jour le numéro d'erreur du prédicat.
Attention, il est important de choisir des numéros d'erreur supérieurs à 1000.

Parameters:
theErrno - le numéro d'erreur du prédicat
 o putTerm
 public void putTerm(int position,
                     PrologTerm theTerm)
Insère un terme à la position voulue dans le but.

Parameters:
position - position à laquelle le terme doit être placé
theTerm - le terme Prolog que l'on veut rajouter dans le but
See Also:
putTerm
 o putTerm
 public void putTerm(PrologTerm theTerm)
Insère un terme à la dernière position dans le but.

Parameters:
theTerm - le terme Prolog que l'on veut rajouter dans le but
See Also:
putTerm
 o clone
 public Object clone()
Retourne l'objet représentant le but Prolog.

Returns:
l'objet représentant le but Prolog
Overrides:
clone in class Object
 o toString
 public String toString()
Retourne la représentation du but Prolog sous forme de chaîne.

Returns:
la représentation du but Prolog sous forme de chaîne
Overrides:
toString in class Object
 o prologConnection
 public static int prologConnection(String serverAddress,
                                    int order,
                                    int secondaryPort,
                                    int serverTimeOut) throws UnknownHostException, SocketException, EOFException, IOException
Ouvre une socket entre le programme et le serveur Java dans le but de lancer un prédicat Prolog depuis Java. Deux cas peuvent se présenter :
 o initialise
 public int initialise() throws EOFException, IOException
Cette méthode permet d'initialiser le but Prolog à exécuter depuis JAVA.
Cette méthode ne récupère pas les solutions. Pour cela, il faut utiliser la méthode nextSolution.

Returns:
0 si l'initialisation du but s'est déroulée correctement,
1 si la connexion n'a pas été effectuée auparavant (méthode prologConnection),
2 si Prolog a renvoyé une erreur lors de l'initialisation du but,
3 si un but est déjà actif (et qu'il n'a pas été stoppé).
Throws: EOFException
si on veut lire dans le flux d'entrée alors qu'on est à la fin de celui-ci
Throws: IOException
si on a une erreur de lecture ou d'écriture
See Also:
nextSolution, stopGoal, prologDeconnection
 o nextSolution
 public PrologDot nextSolution() throws PrologException, IOException
Demande à Prolog la prochaine solution du prédicat.
Le but Prolog doit d'abord avoir été initialisé avec la méthode initialise.
Lorsqu'il n'y a plus de solutions, cette méthode stoppe le but et renvoie la valeur null (il est donc inutile d'utiliser la méthode stopGoal s'il n'y a plus de solutions).

Returns:
la liste des résultats du prédicat.
Cette liste comporte un nombre d'arguments égal au nombre de variables du prédicat de départ.
Si la valeur rendue est null, c'est qu'il n'y a plus de solutions.
Throws: PrologException
si une erreur s'est produite en cherchant la prochaine solution
Throws: IOException
si on a une erreur de lecture ou d'écriture
 o stopGoal
 public int stopGoal() throws IOException
Cette méthode permet de stopper l'exécution du but avant qu'il n'y ait plus de solutions.

Returns:
0 si l'arrêt du but s'est bien passé,
1 si la connexion n'a pas été effectuée auparavant,
2 si Prolog a renvoyé une erreur en voulant stopper le but,
3 si le but a déjà été stoppé.
Throws: IOException
si on a une erreur de lecture ou d'écriture
 o prologDeconnection
 public static int prologDeconnection() throws IOException
Déconnecte Prolog et le programme Java du serveur Java.

Returns:
0 si la déconnexion a été effectuée avec succès,
1 si le programme était déjà déconnecté,
2 si Prolog a renvoyé une erreur lors de la déconnexion.
Throws: IOException
si on a une erreur de lecture ou d'écriture
 o writeIn
 public void writeIn(DataOutputStream out) throws EOFException, IOException
Ecrit dans le flot de sortie le code représentant le but Prolog.

Remarque :
Les méthodes writeIn et readIn sont utilisées pour transférer des données entre le serveur Java et Prolog alors que les méthodes writeJavaIn et readJavaIn sont utilisées pour transférer des données entre le serveur Java et un autre programme Java.

En fait, seuls les termes du but Prolog sont transcrits (l'arité et l'étiquette du but étant déjà connues). Contrairement à la lecture d'un but, son écriture ne transmet aucun en-tête à Prolog. L'en-tête est en effet envoyé à Prolog au niveau supérieur (dans la classe Connect.java).

Parameters:
out - le flot dans lequel on veut écrire
Throws: EOFException
si on veut écrire alors qu'on est à la fin du flux de sortie
Throws: IOException
si on a une erreur d'écriture
See Also:
readIn, readJavaIn, writeJavaIn
 o writeJavaIn
 public void writeJavaIn(DataOutputStream out) throws EOFException, IOException
Ecrit dans le flot de sortie le code représentant le but Prolog.

Remarque :
Les méthodes writeIn et readIn sont utilisées pour transférer des données entre le serveur Java et Prolog alors que les méthodes writeJavaIn et readJavaIn sont utilisées pour transférer des données entre le serveur Java et un autre programme Java.

Parameters:
out - le flot dans lequel on veut écrire
Throws: EOFException
si on veut écrire alors qu'on est à la fin du flux de sortie
Throws: IOException
si on a une erreur d'écriture
See Also:
readIn, readJavaIn, writeIn
 o readIn
 public void readIn(DataInputStream in) throws EOFException, IOException
Lit dans le flot d'entrée le code représentant le but Prolog.

Remarque :
Les méthodes writeIn et readIn sont utilisées pour transférer des données entre le serveur Java et Prolog alors que les méthodes writeJavaIn et readJavaIn sont utilisées pour transférer des données entre le serveur Java et un autre programme Java.

Contrairement à l'écriture d'un but, la lecture d'un but donne lieu à la lecture d'un en-tête de la forme suivante :
CPXnom_du_predicat#arite
X représente le type du but Prolog dont voici les différentes valeurs possibles :
#
Appel de Java depuis Prolog
M
Modification d'une base de données
S
Sélection dans une base de données
P
Appel d'un but Prolog II+ depuis Java

Parameters:
in - le flot dans lequel on veut lire
Throws: EOFException
si on veut lire alors qu'on est à la fin du flux d'entrée
Throws: IOException
si on a une erreur de lecture
See Also:
writeIn, writeJavaIn, readJavaIn
 o readJavaIn
 public void readJavaIn(DataInputStream in) throws EOFException, IOException
Lit dans le flot d'entrée le code représentant le but Prolog.

Remarque :
Les méthodes writeIn et readIn sont utilisées pour transférer des données entre le serveur Java et Prolog alors que les méthodes writeJavaIn et readJavaIn sont utilisées pour transférer des données entre le serveur Java et un autre programme Java.

Parameters:
in - le flot dans lequel on veut lire
Throws: EOFException
si on veut lire alors qu'on est à la fin du flux d'entrée
Throws: IOException
si on a une erreur de lecture
See Also:
writeIn, writeJavaIn, readIn

All Packages  Class Hierarchy  This Package  Previous  Next  Index