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
-
PrologDot()
-
-
PrologDot(PrologDot)
- Construit une nouvelle paire pointée par recopie d'une autre paire
pointée.
-
PrologDot(PrologTerm, PrologTerm)
- Construit une nouvelle paire pointée (ou liste) à partir de son
car et de son cdr.
-
PrologDot(Vector)
- Construit une liste (ou paire pointée) avec le vecteur donné.
-
addElement(PrologTerm)
- Rajoute un élément à la fin de la paire pointée.
-
clone()
- Retourne l'objet représentant la paire pointée.
-
contains(PrologTerm)
- Teste si le terme spécifié fait partie de la paire pointée.
-
getCar()
- Retourne le premier élément de la paire pointée (ou liste).
-
getCdr()
- Retourne le cdr de la paire pointée.
-
getElementAt(int)
- Retourne l'élément de la liste à la position voulue.
-
getSize()
- Retourne la taille de la liste (ou de la paire pointée).
-
getVector()
- Retourne le vecteur représentant la paire pointée.
-
insertElementAt(PrologTerm, int)
- Insère un nouvel élément à la position voulue.
-
isDot()
- Teste si le terme est une paire pointée qui n'est pas une liste.
-
isEmpty()
- Teste si la paire pointée est vide ou pas.
-
isList()
- Teste si cette paire pointée est une liste.
-
isNil()
- Teste si ce terme est l'atome nil.
-
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.
-
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.
-
removeElement(PrologTerm)
- Détruit la première occurrence de l'élément voulu.
-
removeElementAt(int)
- Détruit l'élément à la position voulue.
-
setCar(PrologTerm)
- Modifie le premier terme (car) de la paire pointée (ou liste).
-
setCdr(PrologTerm)
- Remplace le second élément (cdr) d'une paire pointée
par un autre élément.
-
setDot(PrologDot)
- Remplace la présente paire pointée (ou liste) par une autre paire
pointée (ou liste).
-
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.
-
setElementAt(PrologTerm, int)
- Remplace l'élément à la position voulue.
-
toString()
- Retourne la représentation d'une paire pointée sous forme de
chaîne.
-
whatIs()
- Retourne le caractère représentant le type paire
pointée.
-
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.
-
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.
PrologDot
public PrologDot()
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
PrologDot
public PrologDot(PrologTerm car,
PrologTerm cdr)
- Construit une nouvelle paire pointée (ou liste) à partir de son
car et de son cdr.
Exemples :
- Si
car = 3
et cdr = ["ab",4,1/2]
alors
comme le cdr est une liste, le terme PrologDot
construit sera lui aussi une liste et son vecteur sera le suivant :
terms = [3, "ab", 4, 1/2]
.
- Si
car = 3
et cdr = ["ab"|[4|1/2]]
alors
comme le cdr n'est pas une liste, le terme PrologDot
construit ne sera pas une liste non plus et son vecteur sera le suivant :
terms = [3 | ["ab" | [4 | 1/2]]]
.
- Parameters:
- car - le car de la paire pointée
- cdr - le cdr de la paire pointée
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
getVector
public Vector getVector()
- Retourne le vecteur représentant la paire pointée.
- Returns:
- le vecteur représentant la liste (ou paire pointée)
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
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
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
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
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
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
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
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
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)
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 :
- si le terme de départ est une paire pointée ou bien une liste
de taille 2, le résultat est un terme quelconque (le car ou
le cdr).
- Exemple :
- Si on a la paire pointée
[2 | 3]
et que l'on
applique cette fonction à la position zéro, on aura
en retour un terme PrologInt
de valeur 3
.
- si le terme de départ est une liste de taille strictement
supérieure à 2, le résultat est à son tour une
liste.
- Exemple :
- Si on a la liste
[1,2,3,4]
et que l'on applique
cette fonction à la position deux, on aura en retour la liste
[1,2,4]
.
- 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
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 :
- si le terme de départ est une paire pointée ou bien une
liste de taille 2, le résultat est un terme
quelconque (le car ou le cdr).
- Exemple :
- Voir
removeElementAt(int position)
- si le terme de départ est une liste de taille strictement
supérieure à 2, le résultat est à son tour une
liste.
- Exemple :
- Voir
removeElementAt(int position)
- 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
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
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
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.
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.
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
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
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
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
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
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
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 :
- Fonction writeIn
dans la classe PrologFloat
- Fonction writeIn
dans la classe PrologFunctor
- Fonction writeIn
dans la classe PrologIdent
- Fonction writeIn
dans la classe PrologInt
- Fonction writeIn
dans la classe PrologNil
- Fonction writeIn
dans la classe PrologRat
- Fonction writeIn
dans la classe PrologString
- Fonction writeIn
dans la classe PrologVar
- 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
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
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 :
- Fonction readIn
dans la classe PrologFloat
- Fonction readIn
dans la classe PrologFunctor
- Fonction readIn
dans la classe PrologIdent
- Fonction readIn
dans la classe PrologInt
- Fonction readIn
dans la classe PrologNil
- Fonction readIn
dans la classe PrologRat
- Fonction readIn
dans la classe PrologString
- Fonction readIn
dans la classe PrologVar
- 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
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