|
@@ -10,59 +10,25 @@ import migl.lisp.LispBoolean;
|
|
|
*
|
|
|
* @author Arthur Brandao
|
|
|
*/
|
|
|
-public class LispElement {
|
|
|
+public class LispElement<E> {
|
|
|
|
|
|
/**
|
|
|
- * Le conteneur de la valeur de l'element
|
|
|
+ * La valeur de l'element
|
|
|
*/
|
|
|
- private final LispElementValue value;
|
|
|
-
|
|
|
- /* --- Constructeurs privés des differents elements --- */
|
|
|
-
|
|
|
- /**
|
|
|
- * Creation d'un element de type BigInt
|
|
|
- * @param val
|
|
|
- */
|
|
|
- private LispElement(BigInteger val) {
|
|
|
- this.value = new LispElementValue<>(val);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Creation d'un element de type double
|
|
|
- * @param val
|
|
|
- */
|
|
|
- private LispElement(double val) {
|
|
|
- this.value = new LispElementValue<>(val);
|
|
|
- }
|
|
|
+ public final E value;
|
|
|
|
|
|
/**
|
|
|
- * Creation d'un element de type LispBoolean
|
|
|
+ * Constructeur privée pour construire un element à partir de valueOf
|
|
|
* @param val
|
|
|
*/
|
|
|
- private LispElement(LispBoolean val) {
|
|
|
- this.value = new LispElementValue<>(val);
|
|
|
+ private LispElement(E val) {
|
|
|
+ this.value = val;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * Creation d'un element de type String
|
|
|
- * @param val
|
|
|
- */
|
|
|
- private LispElement(String val) {
|
|
|
- this.value = new LispElementValue<>(val);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Retourne le conteneur de l'element
|
|
|
- * @return
|
|
|
- */
|
|
|
- public LispElementValue get() {
|
|
|
- return this.value;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* Parse un element
|
|
|
- * @param elt
|
|
|
- * @return
|
|
|
+ * @param elt L'element à parser
|
|
|
+ * @return Un LispElement contenant la valeur extraite
|
|
|
*/
|
|
|
public static LispElement valueOf(String elt) {
|
|
|
try {
|
|
@@ -83,20 +49,4 @@ public class LispElement {
|
|
|
return new LispElement(elt);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * Conteneur de la valeur d'un element
|
|
|
- * @author Arthur Brandao
|
|
|
- *
|
|
|
- * @param <E> Le type de l'element
|
|
|
- */
|
|
|
- public static class LispElementValue<E> {
|
|
|
-
|
|
|
- public final E value;
|
|
|
-
|
|
|
- public LispElementValue(E val){
|
|
|
- this.value = val;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
}
|