This commit is contained in:
pro.boooooo
2023-01-16 00:28:42 +01:00
parent 3e172218a6
commit 5d7acefae2
15 changed files with 8712 additions and 178 deletions

View File

@@ -1,15 +1,13 @@
package JsonInspector.Storage;
package fr.sae.JSonInspector.Storage;
import java.util.ArrayList;
import java.util.List;
public class Node {
private final List<Value> values = new ArrayList<>();
private final String name;
private final Type type;
/**
*
* @param name le nom du noeud
@@ -24,13 +22,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) {
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)));
return;
}
@@ -46,11 +44,11 @@ public class Node {
}
}
/**
* Ajoute une valeur au noeud
*
* @param value la valeur à ajouter
* @param <T> le type de la valeur à ajouter
* @param <T> le type de la valeur à ajouter
*/
public <T> void add(T value) {
if (value != null) {
@@ -62,7 +60,6 @@ public class Node {
}
}
/**
*
* @return le type du noeud
@@ -71,7 +68,6 @@ public class Node {
return type;
}
/**
*
* @return le nom du noeud
@@ -80,9 +76,9 @@ public class Node {
return name;
}
/**
* Retourne la valeur contenue à l'index spécifié
*
* @param index l'index de la valeur
* @return la valeur trouvée
*/
@@ -90,36 +86,34 @@ public class Node {
return values.get(index);
}
/**
* retourne le nombre de valeurs du noeud
*
* @return
*/
public int getSize() {
return values.size();
}
public boolean isObject() {
return type == Type.OBJECT;
}
public boolean isArray() {
return type == Type.ARRAY;
}
public boolean isElement() {
return type == Type.ELEMENT;
}
public boolean isPair() {
return type == Type.PAIR;
}
/**
* Test si l'objet est du type 'ELEMENT' ou 'OBJECT'
*
* @return
*/
public boolean isArrayObjectElement() {
@@ -134,7 +128,6 @@ public class Node {
return false;
}
@Override
public String toString() {
String string = name + " : ";

View File

@@ -1,8 +1,8 @@
package JsonInspector.Storage;
package fr.sae.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).
* 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 {
String value;
@@ -11,7 +11,6 @@ public class Other {
this.value = value;
}
@Override
public String toString() {
return value;

View File

@@ -1,7 +1,7 @@
package JsonInspector.Storage;
package fr.sae.JSonInspector.Storage;
import JsonInspector.Exception.JsonSyntaxException;
import JsonInspector.Settings.Parameters;
import fr.sae.JSonInspector.Exception.JsonSyntaxException;
import fr.sae.JSonInspector.Settings.Parameters;
import java.util.ArrayList;
import java.util.List;
@@ -9,9 +9,9 @@ import java.util.List;
public class Tree {
private final Node firstNode;
/**
* Construit un objet de type 'Tree'
*
* @param file le fichier complet sur une ligne
* @throws JsonSyntaxException exception lever en cas d'erreur de syntaxe
*/
@@ -19,9 +19,9 @@ public class Tree {
firstNode = parseElement(file);
}
/**
* Détermine le type de l'élément passer en argument et le transforme en noeud
*
* @param element
* @return le noeud correspondant à "element"
* @throws JsonSyntaxException exception lever en cas d'erreur de syntaxe
@@ -48,7 +48,7 @@ public class Tree {
} else if (keyValue[0].equals("")) {
if (keyValue[0].charAt(0) == '{' && keyValue[0].charAt(keyValue[0].length()-1) == '}') {
if (keyValue[0].charAt(0) == '{' && keyValue[0].charAt(keyValue[0].length() - 1) == '}') {
return parseElement(keyValue[0]);
} else {
throw new JsonSyntaxException();
@@ -59,10 +59,10 @@ public class Tree {
}
}
/**
* Créer un noeud de type tableau
* @param name le nom du tableau
*
* @param name le nom du tableau
* @param rawValues l'ensemble des caractères contenu entre les crochets
* @return le noeud correspondant couple clé/valeur fournie
* @throws JsonSyntaxException exception lever en cas d'erreur de syntaxe
@@ -89,10 +89,10 @@ public class Tree {
return array;
}
/**
* Créer un noeud de type objet
* @param name nom de l'objet
*
* @param name nom de l'objet
* @param rawValues l'ensemble des éléments contenu entre les accolades
* @return le noeud correspondant couple clé/valeur fournie
* @throws JsonSyntaxException exception lever en cas d'erreur de syntaxe
@@ -108,10 +108,10 @@ public class Tree {
return object;
}
/**
* Créer un noeud de type pair
* @param name nom du couple
*
* @param name nom du couple
* @param value valeur
* @return le noeud correspondant couple clé/valeur fournie
*/
@@ -122,9 +122,9 @@ public class Tree {
return pair;
}
/**
* Créer un noeud de type element (meme chose que le type object mais sans nom)
*
* @param rawValues l'ensemble des éléments contenu entre les accolades
* @return le noeud correspondant couple clé/valeur fournie
* @throws JsonSyntaxException exception lever en cas d'erreur de syntaxe
@@ -140,22 +140,22 @@ public class Tree {
return element;
}
/**
* Enlève les caractères ouvrant et fermant
*
* @param strToClean chaîne de caractères à nettoyer
* @return chaîne de caractères nettoyée
*/
public static String cleanOpeningExpression(String strToClean) {
StringBuilder cleanedString = new StringBuilder(strToClean);
cleanedString.deleteCharAt(0);
cleanedString.deleteCharAt(cleanedString.length()-1);
cleanedString.deleteCharAt(cleanedString.length() - 1);
return cleanedString.toString();
}
/**
* Sépare l'ensemble des éléments contenu dans la chaîne de caractères
*
* @param listToSplit la liste à trier
* @return l'ensemble des éléments séparé
*/
@@ -183,9 +183,9 @@ public class Tree {
return elements;
}
/**
* Sépare la clé de sa valeur
*
* @param expressionToSplit l'expression à diviser
* @return le couple clé/valeur créé
*/
@@ -212,21 +212,21 @@ public class Tree {
}
value = buffer;
return new String[] {key, value};
return new String[] { key, value };
}
/**
* Affiche l'arbre de manière récursive
* @param node le noeud a afficher
*
* @param node le noeud a afficher
* @param depth la profondeur dans l'arbre
* @return le noeud convertit en chaîne de caractères
*/
public static String printTree(Node node, int depth) {
String line = "", indentation = "";
//créé l'indentation de la bonne taille en fonction de la
//profondeur dans l'arbre
// créé l'indentation de la bonne taille en fonction de la
// profondeur dans l'arbre
for (int i = 0; i < depth; i++) {
indentation += Parameters.CONSOLE_INDENTATION;
}
@@ -237,24 +237,23 @@ public class Tree {
line += indentation + node.getName();
}
if (node.isObject() || node.isElement()) {
line += printObjectElement(node, depth, indentation);
} else if (node.isPair()){
} else if (node.isPair()) {
line += printPair(node);
} else if (node.isArray()){
} else if (node.isArray()) {
line += printArray(node, depth, indentation);
}
return line;
}
/**
* Appel les fils suivants d'un noeud père
* @param node le noeud père
*
* @param node le noeud père
* @param depth la profondeur dans l'arbre
* @return l'ensemble des noeuds fils convertit en chaîne de caractères
*/
@@ -274,9 +273,9 @@ public class Tree {
return line;
}
/**
* Convertit en chaîne de caractères un noeud de type 'PAIR'
*
* @param node le noeud a afficher
* @return le noeud convertit en chaîne de caractères
*/
@@ -297,11 +296,11 @@ public class Tree {
return line;
}
/**
* Convertit en chaîne de caractères un noeud de type 'OBJECT' ou 'ELEMENT'
* @param node le noeud à afficher
* @param depth la profondeur dans l'arbre
*
* @param node le noeud à afficher
* @param depth la profondeur dans l'arbre
* @param indentation l'indentation du noeud père
* @return le noeud convertit en chaîne de caractères
*/
@@ -324,11 +323,11 @@ public class Tree {
return line;
}
/**
* Convertit en chaîne de caractères un noeud de type 'ARRAY'
* @param node le noeud à afficher
* @param depth la profondeur dans l'arbre
*
* @param node le noeud à afficher
* @param depth la profondeur dans l'arbre
* @param indentation l'indentation du noeud père
* @return le noeud convertit en chaîne de caractères
*/
@@ -348,11 +347,11 @@ public class Tree {
line += "\n" + printTree((Node) node.get(i).getValue(), depth + 1);
} else {
line += "\n" + indentation + Parameters.CONSOLE_INDENTATION;
if (node.get(i).isString()) {
line += "\"" + node.get(i).getValue() + "\"";
} else {
line += node.get(i).getValue();
}
if (node.get(i).isString()) {
line += "\"" + node.get(i).getValue() + "\"";
} else {
line += node.get(i).getValue();
}
}
// si la valeur n'est pas la dernière alors on lui ajoute une virgule
@@ -367,15 +366,14 @@ public class Tree {
return line;
}
@Override
public String toString() {
return printTree(firstNode, 0);
}
/**
* retourne le noeud d'entrer dans l'arbre
*
* @return le premier noeud de l'arbre
*/
public Node getFirstNode() {

View File

@@ -1,5 +1,4 @@
package JsonInspector.Storage;
package fr.sae.JSonInspector.Storage;
/**
* Un type énuméré contenant tous les types possibles de noeud

View File

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