Transférer les fichiers vers 'src/fr/sae/JSonInspector/Storage'

This commit is contained in:
Romain BESSON 2023-01-16 00:10:15 +01:00
parent 285c936322
commit 936e74f10b
5 changed files with 608 additions and 541 deletions

View File

@ -1,12 +1,20 @@
package fr.sae.JSonInspector.Storage; package JsonInspector.Storage;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
public class Node { public class Node {
private final ArrayList<Value> values = new ArrayList<>(); private final List<Value> values = new ArrayList<>();
private final String name; private final String name;
private final Type type; private final Type type;
/**
*
* @param name le nom du noeud
* @param type le type du noeud
*/
public Node(String name, Type type) { public Node(String name, Type type) {
this.type = type; this.type = type;
if (type == Type.ELEMENT) { if (type == Type.ELEMENT) {
@ -16,8 +24,13 @@ public class Node {
} }
} }
/**
* Détermine le type de la chaîne de caractère passé en argument
* @param value la valeur à classifier
*/
private void findType(String value) { private void findType(String value) {
if (value.charAt(0) == '"' && value.charAt(value.length() - 1) == '"') { if (value.charAt(0) == '"' && value.charAt(value.length()-1) == '"') {
values.add(new Value<String>(Tree.cleanOpeningExpression(value))); values.add(new Value<String>(Tree.cleanOpeningExpression(value)));
return; return;
} }
@ -33,6 +46,12 @@ public class Node {
} }
} }
/**
* Ajoute une valeur au noeud
* @param value la valeur à ajouter
* @param <T> le type de la valeur à ajouter
*/
public <T> void add(T value) { public <T> void add(T value) {
if (value != null) { if (value != null) {
if (value.getClass().equals(Node.class)) { if (value.getClass().equals(Node.class)) {
@ -43,38 +62,66 @@ public class Node {
} }
} }
/**
*
* @return le type du noeud
*/
public Type getType() { public Type getType() {
return type; return type;
} }
/**
*
* @return le nom du noeud
*/
public String getName() { public String getName() {
return name; return name;
} }
/**
* Retourne la valeur contenue à l'index spécifié
* @param index l'index de la valeur
* @return la valeur trouvée
*/
public Value get(int index) { public Value get(int index) {
return values.get(index); return values.get(index);
} }
/**
* retourne le nombre de valeurs du noeud
* @return
*/
public int getSize() { public int getSize() {
return values.size(); return values.size();
} }
public boolean isObject() { public boolean isObject() {
return type == Type.OBJECT; return type == Type.OBJECT;
} }
public boolean isArray() { public boolean isArray() {
return type == Type.ARRAY; return type == Type.ARRAY;
} }
public boolean isElement() { public boolean isElement() {
return type == Type.ELEMENT; return type == Type.ELEMENT;
} }
public boolean isPair() { public boolean isPair() {
return type == Type.PAIR; return type == Type.PAIR;
} }
/**
* Test si l'objet est du type 'ELEMENT' ou 'OBJECT'
* @return
*/
public boolean isArrayObjectElement() { public boolean isArrayObjectElement() {
boolean array = type == Type.ARRAY; boolean array = type == Type.ARRAY;
boolean object = type == Type.OBJECT; boolean object = type == Type.OBJECT;
@ -87,6 +134,7 @@ public class Node {
return false; return false;
} }
@Override @Override
public String toString() { public String toString() {
String string = name + " : "; String string = name + " : ";

View File

@ -1,5 +1,9 @@
package fr.sae.JSonInspector.Storage; package JsonInspector.Storage;
/**
* Un type créé pour les valeurs qui ne sont pas de type String, Double ou Integer (e type est un String dans les faits).
*/
public class Other { public class Other {
String value; String value;
@ -7,6 +11,7 @@ public class Other {
this.value = value; this.value = value;
} }
@Override @Override
public String toString() { public String toString() {
return value; return value;

View File

@ -1,7 +1,7 @@
package fr.sae.JSonInspector.Storage; package JsonInspector.Storage;
import fr.sae.JSonInspector.Exception.JsonSyntaxException; import JsonInspector.Exception.JsonSyntaxException;
import fr.sae.JSonInspector.Settings.Parameters; import JsonInspector.Settings.Parameters;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@ -1,5 +1,9 @@
package fr.sae.JSonInspector.Storage; package JsonInspector.Storage;
/**
* Un type énuméré contenant tous les types possibles de noeud
*/
public enum Type { public enum Type {
OBJECT, ELEMENT, ARRAY, PAIR, NULL OBJECT, ELEMENT, ARRAY, PAIR, NULL
} }

View File

@ -1,16 +1,23 @@
package fr.sae.JSonInspector.Storage; package JsonInspector.Storage;
public class Value<T> { /**
* Représente une valeur
* @param <T> le type de la valeur
*/
public class Value <T> {
private T value; private T value;
public Value(T value) { public Value(T value) {
this.value = value; this.value = value;
} }
public T getValue() { public T getValue() {
return value; return value;
} }
public boolean isObjectOrArray() { public boolean isObjectOrArray() {
if (value.getClass().equals(Node.class)) { if (value.getClass().equals(Node.class)) {
Node node = (Node) value; Node node = (Node) value;
@ -24,14 +31,17 @@ public class Value<T> {
} }
} }
public boolean isNode() { public boolean isNode() {
return value.getClass().equals(Node.class); return value.getClass().equals(Node.class);
} }
public boolean isString() {
public boolean isString () {
return value.getClass().equals(String.class); return value.getClass().equals(String.class);
} }
public boolean isNumber() { public boolean isNumber() {
return value.getClass().equals(Integer.class) || value.getClass().equals(Double.class); return value.getClass().equals(Integer.class) || value.getClass().equals(Double.class);
} }