All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class prolog.PrologDot

java.lang.Object
   |
   +----prolog.PrologTerm
           |
           +----prolog.PrologDot

public class PrologDot
extends PrologTerm
implements Serializable
Représente un terme Prolog de type paire pointée.

Cette paire pointée est stockée sous la forme d'un vecteur de termes et sa taille est également conservée.

Dans le cas où cette paire pointée est une liste, le vecteur contiendra tous les éléments de la liste plus l'élément nil.

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

Constructor Index

 o PrologDot()
 o PrologDot(PrologDot)
Construit une nouvelle paire pointée par recopie d'une autre paire pointée.
 o PrologDot(PrologTerm, PrologTerm)
Construit une nouvelle paire pointée (ou liste) à partir de son car et de son cdr.
 o PrologDot(Vector)
Construit une liste (ou paire pointée) avec le vecteur donné.

Method Index

 o addElement(PrologTerm)
Rajoute un élément à la fin de la paire pointée.
 o clone()
Retourne l'objet représentant la paire pointée.
 o contains(PrologTerm)
Teste si le terme spécifié fait partie de la paire pointée.
 o getCar()
Retourne le premier élément de la paire pointée (ou liste).
 o getCdr()
Retourne le cdr de la paire pointée.
 o getElementAt(int)
Retourne l'élément de la liste à la position voulue.
 o getSize()
Retourne la taille de la liste (ou de la paire pointée).
 o getVector()
Retourne le vecteur représentant la paire pointée.
 o insertElementAt(PrologTerm, int)
Insère un nouvel élément à la position voulue.
 o isDot()
Teste si le terme est une paire pointée qui n'est pas une liste.
 o isEmpty()
Teste si la paire pointée est vide ou pas.
 o isList()
Teste si cette paire pointée est une liste.
 o isNil()
Teste si ce terme est l'atome nil.
 o readIn(DataInputStream)
Lit dans le flot d'entrée le code représentant la paire pointée et répercute cette lecture sur les termes la composant.
 o readJavaIn(DataInputStream)
Lit dans le flot d'entrée le code représentant la paire pointée et répercute cette lecture sur les termes la composant.
 o removeElement(PrologTerm)
Détruit la première occurrence de l'élément voulu.
 o removeElementAt(int)
Détruit l'élément à la position voulue.
 o setCar(PrologTerm)
Modifie le premier terme (car) de la paire pointée (ou liste).
 o setCdr(PrologTerm)
Remplace le second élément (cdr) d'une paire pointée par un autre élément.
 o setDot(PrologDot)
Remplace la présente paire pointée (ou liste) par une autre paire pointée (ou liste).
 o setDot(Vector)
Remplace la présente paire pointée (ou liste) par une autre paire pointée (ou liste) représentée par son vecteur.
 o setElementAt(PrologTerm, int)
Remplace l'élément à la position voulue.
 o toString()
Retourne la représentation d'une paire pointée sous forme de chaîne.
 o whatIs()
Retourne le caractère représentant le type paire pointée.
 o writeIn(DataOutputStream)
Ecrit dans le flot de sortie le code représentant la paire pointée et répercute cette écriture sur les termes la composant.
 o writeJavaIn(DataOutputStream)
Ecrit dans le flot de sortie le code représentant la paire pointée et répercute cette écriture sur les termes la composant.

Constructors

 o PrologDot
 public PrologDot()
 o PrologDot
 public PrologDot(Vector theTerms) throws PrologException
Construit une liste (ou paire pointée) avec le vecteur donné.

Parameters:
theTerms - le vecteur représentant la liste
Throws: PrologException
si la taille du vecteur est strictement inférieure à 2
 o PrologDot
 public PrologDot(PrologTerm car,
                  PrologTerm cdr)
Construit une nouvelle paire pointée (ou liste) à partir de son car et de son cdr.

Exemples :

Parameters:
car - le car de la paire pointée
cdr - le cdr de la paire pointée
 o PrologDot
 public PrologDot(PrologDot theDot)
Construit une nouvelle paire pointée par recopie d'une autre paire pointée.

Parameters:
theDot - la paire pointée à recopier

Methods

 o getVector
 public Vector getVector()
Retourne le vecteur représentant la paire pointée.

Returns:
le vecteur représentant la liste (ou paire pointée)
 o getSize
 public int getSize()
Retourne la taille de la liste (ou de la paire pointée).
Attention, l'atome nil fait partie du vecteur donc il est compté dans la taille de la liste comme tout autre élément. Par exemple, la liste [1,2] sera de taille 3 et non pas 2 comme en Prolog.

Returns:
la taille de la liste
 o getCar
 public PrologTerm getCar() throws ArrayIndexOutOfBoundsException
Retourne le premier élément de la paire pointée (ou liste).

Returns:
le premier élément de la paire pointée (ou liste)
Throws: ArrayIndexOutOfBoundsException
si le car n'existe pas
 o getCdr
 public PrologTerm getCdr() throws ArrayIndexOutOfBoundsException, PrologException
Retourne le cdr de la paire pointée.

Returns:
le cdr de la paire pointée
Throws: ArrayIndexOutOfBoundsException
si le cdr n'existe pas alors que la taille du vecteur vaut 2
Throws: PrologException
si la taille du vecteur est strictement inférieure à 2
 o getElementAt
 public PrologTerm getElementAt(int position) throws ArrayIndexOutOfBoundsException
Retourne l'élément de la liste à la position voulue.

Parameters:
position - la position de l'élément dans la liste
Returns:
l'élément de la liste à la position voulue
Throws: ArrayIndexOutOfBoundsException
s'il n'existe aucun élément à la position spécifiée
 o setElementAt
 public void setElementAt(PrologTerm theTerms,
                          int position) throws ArrayIndexOutOfBoundsException
Remplace l'élément à la position voulue.

Parameters:
theTerms - le nouvel élément
position - position de l'élément qui doit être remplacé
Throws: ArrayIndexOutOfBoundsException
s'il n'existe aucun élément à la position spécifiée
 o setCar
 public void setCar(PrologTerm theCar) throws ArrayIndexOutOfBoundsException
Modifie le premier terme (car) de la paire pointée (ou liste).

Parameters:
theCar - le nouveau premier terme
Throws: ArrayIndexOutOfBoundsException
s'il n'existe aucun élément dans la paire pointée
 o setCdr
 public void setCdr(PrologTerm theTerm) throws ArrayIndexOutOfBoundsException
Remplace le second élément (cdr) d'une paire pointée par un autre élément.

Parameters:
theTerm - le nouveau cdr
Throws: ArrayIndexOutOfBoundsException
s'il n'existe pas d'élément dans la paire pointée
 o setDot
 public void setDot(Vector theTerms) throws PrologException
Remplace la présente paire pointée (ou liste) par une autre paire pointée (ou liste) représentée par son vecteur.

Parameters:
theTerms - le vecteur représentant la nouvelle paire pointée (ou liste)
Throws: PrologException
si la taille du vecteur est strictement inférieure à 2
 o setDot
 public void setDot(PrologDot theDot)
Remplace la présente paire pointée (ou liste) par une autre paire pointée (ou liste).

Parameters:
theDot - la nouvelle paire pointée (ou liste)
 o removeElementAt
 public PrologTerm removeElementAt(int position) throws PrologException, ArrayIndexOutOfBoundsException
Détruit l'élément à la position voulue.

Le résultat de cette fonction dépend du terme de départ :

Parameters:
position - la position de l'élément à détruire
Returns:
le terme une fois l'élément effacé
Throws: PrologException
si la taille de la paire pointée vaut 1
Throws: ArrayIndexOutOfBoundsException
s'il n'existe aucun élément à la position demandée
 o removeElement
 public PrologTerm removeElement(PrologTerm theTerms) throws PrologException
Détruit la première occurrence de l'élément voulu.

Le résultat de cette fonction dépend du terme de départ :

Parameters:
theTerms - l'élément que l'on veut détruire
Returns:
le terme une fois l'élément effacé
Throws: PrologException
si la taille de la paire pointée vaut 1
 o insertElementAt
 public void insertElementAt(PrologTerm theTerms,
                             int position) throws ArrayIndexOutOfBoundsException
Insère un nouvel élément à la position voulue.

Exemple :
Soit la liste [1,2,3,4]. Si on veut insérer le terme PrologString de valeur "abc" à la position 2 dans la liste, on aura alors comme résultat la liste suivante :
[1,2,"abc",3,4].

Parameters:
theTerms - le nouvel élément
position - la position du nouvel élément
Throws: ArrayIndexOutOfBoundsException
s'il n'existe aucun élément à la position demandée
 o addElement
 public void addElement(PrologTerm elt)
Rajoute un élément à la fin de la paire pointée. Dans le cas d'une liste, l'élément est rajouté juste avant l'atome nil.

Parameters:
elt - l'élément à rajouter dans la liste
 o contains
 public boolean contains(PrologTerm theTerms)
Teste si le terme spécifié fait partie de la paire pointée.

Parameters:
theTerms - l'élément à rechercher
Returns:
vrai si l'élément est contenu au moins une fois dans la liste ou la paire pointée et faux sinon.
 o isEmpty
 public boolean isEmpty()
Teste si la paire pointée est vide ou pas.

Returns:
vrai si la paire pointée (ou liste) est vide et faux sinon.
Logiquement, une paire pointée ne devrait jamais être vide.
 o isList
 public boolean isList() throws NoSuchElementException
Teste si cette paire pointée est une liste.

Returns:
vrai si la paire pointée est une liste et faux sinon
Throws: NoSuchElementException
si la paire pointée est vide
Overrides:
isList in class PrologTerm
 o isNil
 public boolean isNil()
Teste si ce terme est l'atome nil.

Returns:
vrai si le terme PrologDot actuel n'est plus une paire pointée mais seulement l'élément nil et faux sinon
 o isDot
 public boolean isDot()
Teste si le terme est une paire pointée qui n'est pas une liste.

Returns:
vrai si le terme PrologDot actuel est une paire pointée mais pas une liste et faux sinon
 o whatIs
 public byte whatIs()
Retourne le caractère représentant le type paire pointée.

Returns:
le caractère représentant le type paire pointée: 'd'
Overrides:
whatIs in class PrologTerm
 o clone
 public Object clone()
Retourne l'objet représentant la paire pointée.

Returns:
l'objet représentant la paire pointée
Overrides:
clone in class PrologTerm
 o toString
 public String toString()
Retourne la représentation d'une paire pointée sous forme de chaîne.

Exemple :
[2 | abc] est la représentation d'une paire pointée dont le car est l'entier 2 et le cdr est la chaîne de caractères "abc".

Remarque :
Les listes sont representées différemment. Par exemple, la liste [1 | [2 | []]] sera representée comme ceci : [1, 2]

Returns:
la représentation du terme PrologDot sous forme de chaîne
Overrides:
toString in class PrologTerm
 o writeIn
 public void writeIn(DataOutputStream out) throws IOException
Ecrit dans le flot de sortie le code représentant la paire pointée et répercute cette écriture sur les termes la composant.

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.

Une paire pointée est codée de la manière suivante :

Exemple de codage d'une liste.

Soit la liste Prolog suivante :

	[ 1 , [ 1/4 | `f8.2` ] ]

Cette liste sera codée ainsi :

Pour plus d'informations sur la façon de coder les autres termes Prolog, voir les fonctions writeIn suivantes :

Parameters:
out - le flot dans lequel on veut écrire
Throws: IOException
si on a une erreur d'écriture
Overrides:
writeIn in class PrologTerm
See Also:
readIn, readJavaIn, writeJavaIn
 o writeJavaIn
 public void writeJavaIn(DataOutputStream out) throws IOException
Ecrit dans le flot de sortie le code représentant la paire pointée et répercute cette écriture sur les termes la composant.

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: IOException
si on a une erreur d'écriture
Overrides:
writeJavaIn in class PrologTerm
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 la paire pointée et répercute cette lecture sur les termes la composant.

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.

Une paire pointée est codée de la manière suivante :

Exemple de codage d'une liste.

Soit la liste Prolog suivante :

	[ 1 , [ 1/4 | `f8.2` ] ]

Cette liste sera codée ainsi :

Pour plus d'informations sur la façon de coder les autres termes Prolog, voir les fonctions readIn suivantes :

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 la paire pointée et répercute cette lecture sur les termes la composant.

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