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

@ -3,7 +3,7 @@ JAVA = java
JAVAC = javac JAVAC = javac
JAVADOC = javadoc JAVADOC = javadoc
OPTIONSDOCS = -d docs -noqualifier all OPTIONSDOCS = -d docs -noqualifier all
OPTIONS = -d build/fr/sae/JSonInspector -Xlint:unchecked -Xlint:deprecation JAVAC_OPTIONS = -d build -cp build:$$CLASSPATH -implicit:none
EXT = .java EXT = .java
# CHEMINS # CHEMINS
@ -19,7 +19,11 @@ SETTINGS = ${SRCFULLPATH}/Settings
STORAGE = ${SRCFULLPATH}/Storage STORAGE = ${SRCFULLPATH}/Storage
MAIN = ${SRCFULLPATH}/Main.java MAIN = ${SRCFULLPATH}/Main.java
.PHONY: clean docs .PHONY: clean docs run
run:
mkdir build
mkdir -p $(src)/
clean: clean:
rm -rf ${BUILD} && rm -rf ${DOCS} rm -rf ${BUILD} && rm -rf ${DOCS}
@ -29,6 +33,6 @@ docs:
${JAVADOC} ${OPTIONSDOCS} ${ALL} ${JAVADOC} ${OPTIONSDOCS} ${ALL}
# COMPILATION # COMPILATION
${build}/Exception/JsonSyntaxException.class : ${EXCEPTION}/JsonSyntaxException.java
${JAVAC} ${JAVAC_OPTIONS} ${EXCEPTION}/JsonSyntaxException.java
${build}/Exception/JsonSyntaxException.class : ${EXCEPTION}/JsonSyntaxException.java
${JAVAC} ${JAVAC_OPTIONS} ${EXCEPTION}/JsonSyntaxException.java

View File

@ -1,4 +1,4 @@
package JsonInspector.Exception; package fr.sae.JSonInspector.Exception;
/** /**
* Exception lever lorsqu'une erreur de syntaxe est rencontrée * Exception lever lorsqu'une erreur de syntaxe est rencontrée

View File

@ -1,4 +1,4 @@
package JsonInspector.Graphics; package fr.sae.JSonInspector.Graphics;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseListener; import java.awt.event.MouseListener;
@ -7,10 +7,9 @@ public class ArrayObjectListener implements MouseListener {
private final Line line; private final Line line;
private final Frame frame; private final Frame frame;
/** /**
* *
* @param line La ligne écoutée * @param line La ligne écoutée
* @param frame la frame contenant la ligne écoutée * @param frame la frame contenant la ligne écoutée
*/ */
public ArrayObjectListener(Line line, Frame frame) { public ArrayObjectListener(Line line, Frame frame) {
@ -20,6 +19,7 @@ public class ArrayObjectListener implements MouseListener {
/** /**
* Change le statut d'affichage de la ligne * Change le statut d'affichage de la ligne
*
* @param e the event to be processed * @param e the event to be processed
*/ */
@Override @Override
@ -33,14 +33,18 @@ public class ArrayObjectListener implements MouseListener {
} }
@Override @Override
public void mousePressed(MouseEvent e) {} public void mousePressed(MouseEvent e) {
}
@Override @Override
public void mouseReleased(MouseEvent e) {} public void mouseReleased(MouseEvent e) {
}
@Override @Override
public void mouseEntered(MouseEvent e) {} public void mouseEntered(MouseEvent e) {
}
@Override @Override
public void mouseExited(MouseEvent e) {} public void mouseExited(MouseEvent e) {
}
} }

View File

@ -1,9 +1,9 @@
package JsonInspector.Graphics; package fr.sae.JSonInspector.Graphics;
import JsonInspector.Exception.JsonSyntaxException; import fr.sae.JSonInspector.Exception.JsonSyntaxException;
import JsonInspector.Main; import fr.sae.JSonInspector.Main;
import JsonInspector.Settings.Parameters; import fr.sae.JSonInspector.Settings.Parameters;
import JsonInspector.Storage.Tree; import fr.sae.JSonInspector.Storage.Tree;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
@ -20,27 +20,25 @@ public class Frame extends JFrame {
private GraphicFile file; private GraphicFile file;
private Tree tree; private Tree tree;
public Frame() { public Frame() {
super("Inspecteur JSON"); super("Inspecteur JSON");
init(); init();
this.setVisible(true); this.setVisible(true);
} }
private void init() { private void init() {
this.setSize(DEFAULT_FRAME_SIZE); this.setSize(DEFAULT_FRAME_SIZE);
this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setMinimumSize(MINIMUM_FRAME_SIZE); this.setMinimumSize(MINIMUM_FRAME_SIZE);
this.setLayout(cards); this.setLayout(cards);
this.add(firstCard()); this.add(firstCard());
//this.add(secondCard()); // this.add(secondCard());
cards.first(this.getContentPane()); cards.first(this.getContentPane());
} }
/** /**
* Créer le premier panel l'on entre l'URL du fichier * Créer le premier panel l'on entre l'URL du fichier
*
* @return le panel créé * @return le panel créé
*/ */
private JPanel firstCard() { private JPanel firstCard() {
@ -53,8 +51,8 @@ public class Frame extends JFrame {
panel.setLayout(layout); panel.setLayout(layout);
gbc.insets = new Insets(10, 10, 10, 10); gbc.insets = new Insets(10, 10, 10, 10);
gbc.gridx = 0; gbc.gridx = 0;
gbc.gridy = 0; gbc.gridy = 0;
JLabel label = new JLabel("URL :"); JLabel label = new JLabel("URL :");
label.setForeground(Parameters.DEFAULT_TEXT_COLOR); label.setForeground(Parameters.DEFAULT_TEXT_COLOR);
panel.add(label, gbc); panel.add(label, gbc);
@ -62,8 +60,8 @@ public class Frame extends JFrame {
gbc.gridx = 1; gbc.gridx = 1;
panel.add(textField, gbc); panel.add(textField, gbc);
gbc.gridx = 0; gbc.gridx = 0;
gbc.gridy = 1; gbc.gridy = 1;
gbc.gridwidth = 2; gbc.gridwidth = 2;
panel.add(button, gbc); panel.add(button, gbc);
@ -71,9 +69,9 @@ public class Frame extends JFrame {
return panel; return panel;
} }
/** /**
* Créer le deuxième panel l'on voit le fichier * Créer le deuxième panel l'on voit le fichier
*
* @return le panel créé * @return le panel créé
*/ */
private JPanel secondCard() { private JPanel secondCard() {
@ -81,9 +79,9 @@ public class Frame extends JFrame {
return initSecondCard(file); return initSecondCard(file);
} }
/** /**
* Créer le deuxième panel l'on voit le fichier * Créer le deuxième panel l'on voit le fichier
*
* @return le panel créé * @return le panel créé
*/ */
private JPanel secondCard(GraphicFile file) { private JPanel secondCard(GraphicFile file) {
@ -91,7 +89,6 @@ public class Frame extends JFrame {
return initSecondCard(file); return initSecondCard(file);
} }
private JPanel initSecondCard(GraphicFile file) { private JPanel initSecondCard(GraphicFile file) {
JButton unfoldButton = new JButton("Tout déplier"); JButton unfoldButton = new JButton("Tout déplier");
JButton retreatButton = new JButton("Tout replier"); JButton retreatButton = new JButton("Tout replier");
@ -125,7 +122,6 @@ public class Frame extends JFrame {
return mainPanel; return mainPanel;
} }
/** /**
* Passe de la version PHP du fichier à la version JSON et vice-versa * Passe de la version PHP du fichier à la version JSON et vice-versa
*/ */
@ -139,7 +135,6 @@ public class Frame extends JFrame {
repaintFile(); repaintFile();
} }
/** /**
* Déplit l'élément cliqué * Déplit l'élément cliqué
*/ */
@ -148,7 +143,6 @@ public class Frame extends JFrame {
repaintFile(); repaintFile();
} }
/** /**
* Replit l'élément cliqué * Replit l'élément cliqué
*/ */
@ -157,7 +151,6 @@ public class Frame extends JFrame {
repaintFile(); repaintFile();
} }
/** /**
* Met à jour le fichier * Met à jour le fichier
*/ */
@ -169,9 +162,9 @@ public class Frame extends JFrame {
cards.last(this.getContentPane()); cards.last(this.getContentPane());
} }
/** /**
* Passe du premier panel au second * Passe du premier panel au second
*
* @param field le champ contenant l'URL * @param field le champ contenant l'URL
*/ */
private void validationAction(JTextField field) { private void validationAction(JTextField field) {
@ -199,10 +192,10 @@ public class Frame extends JFrame {
} }
} }
/** /**
* Passe du second panel au premier * Passe du second panel au premier
* @param panel *
* @param panel
*/ */
private void backAction(JPanel panel) { private void backAction(JPanel panel) {
this.remove(panel); this.remove(panel);

View File

@ -1,10 +1,10 @@
package JsonInspector.Graphics; package fr.sae.JSonInspector.Graphics;
import JsonInspector.Settings.Parameters; import fr.sae.JSonInspector.Settings.Parameters;
import JsonInspector.Storage.Node; import fr.sae.JSonInspector.Storage.Node;
import JsonInspector.Storage.Tree; import fr.sae.JSonInspector.Storage.Tree;
import JsonInspector.Storage.Type; import fr.sae.JSonInspector.Storage.Type;
import JsonInspector.Storage.Value; import fr.sae.JSonInspector.Storage.Value;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
@ -18,7 +18,6 @@ public class GraphicFile extends JPanel {
private boolean php = false; private boolean php = false;
private Node firstNode; private Node firstNode;
public GraphicFile(Frame frame, Tree tree, boolean php) { public GraphicFile(Frame frame, Tree tree, boolean php) {
super(); super();
this.php = php; this.php = php;
@ -30,13 +29,12 @@ public class GraphicFile extends JPanel {
displayLines(); displayLines();
} }
public GraphicFile(Frame frame, ArrayList<Line> lines) { public GraphicFile(Frame frame, ArrayList<Line> lines) {
super(); super();
init(); init();
this.frame = frame; this.frame = frame;
this.lines = lines; this.lines = lines;
//displayAllLines(); // displayAllLines();
displayLines(); displayLines();
} }
@ -52,11 +50,11 @@ public class GraphicFile extends JPanel {
this.add(alignementPanel); this.add(alignementPanel);
} }
/** /**
* parcours de manière récursive l'arbre pour créer les lignes * parcours de manière récursive l'arbre pour créer les lignes
* @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 virgule détermine si une virgule doit être affichée à la fin * @param virgule détermine si une virgule doit être affichée à la fin
*/ */
private void createFileRecursive(Node node, int depth, boolean virgule) { private void createFileRecursive(Node node, int depth, boolean virgule) {
@ -77,13 +75,13 @@ public class GraphicFile extends JPanel {
} }
} }
/** /**
* Créé une ligne de type 'PAIR' * Créé une ligne de type 'PAIR'
* @param node le noeud a afficher *
* @param depth la profondeur dans l'arbre * @param node le noeud a afficher
* @param depth la profondeur dans l'arbre
* @param indentation l'indentation du père * @param indentation l'indentation du père
* @param virgule détermine si une virgule doit être affichée à la fin * @param virgule détermine si une virgule doit être affichée à la fin
*/ */
private void createPair(Node node, int depth, String indentation, boolean virgule) { private void createPair(Node node, int depth, String indentation, boolean virgule) {
Line line = new Line(node, depth); Line line = new Line(node, depth);
@ -95,11 +93,10 @@ public class GraphicFile extends JPanel {
line.add(" => "); line.add(" => ");
} }
if (node.getSize() != 0) { if (node.getSize() != 0) {
createValue(line, node.get(0)); createValue(line, node.get(0));
} else { } else {
line.add("null" , Parameters.OTHER_COLOR); line.add("null", Parameters.OTHER_COLOR);
} }
if (virgule) { if (virgule) {
@ -109,13 +106,13 @@ public class GraphicFile extends JPanel {
lines.add(line); lines.add(line);
} }
/** /**
* Créé une ligne de type 'OBJECT' ou 'ELEMENT' * Créé une ligne de type 'OBJECT' ou 'ELEMENT'
* @param node le noeud a afficher *
* @param depth la profondeur dans l'arbre * @param node le noeud a afficher
* @param depth la profondeur dans l'arbre
* @param indentation l'indentation du père * @param indentation l'indentation du père
* @param virgule détermine si une virgule doit être affichée à la fin * @param virgule détermine si une virgule doit être affichée à la fin
*/ */
private void createObjectElement(Node node, int depth, String indentation, boolean virgule) { private void createObjectElement(Node node, int depth, String indentation, boolean virgule) {
Line line = new Line(node, depth); Line line = new Line(node, depth);
@ -182,13 +179,13 @@ public class GraphicFile extends JPanel {
} }
} }
/** /**
* Créé une ligne de type 'ARRAY' * Créé une ligne de type 'ARRAY'
* @param node le noeud a afficher *
* @param depth la profondeur dans l'arbre * @param node le noeud a afficher
* @param depth la profondeur dans l'arbre
* @param indentation l'indentation du père * @param indentation l'indentation du père
* @param virgule détermine si une virgule doit être affichée à la fin * @param virgule détermine si une virgule doit être affichée à la fin
*/ */
private void createArray(Node node, int depth, String indentation, boolean virgule) { private void createArray(Node node, int depth, String indentation, boolean virgule) {
Line line = new Line(node, depth); Line line = new Line(node, depth);
@ -205,7 +202,6 @@ public class GraphicFile extends JPanel {
line.add(" => ("); line.add(" => (");
} }
if (node.getSize() == 0) { if (node.getSize() == 0) {
if (virgule) { if (virgule) {
if (!php) { if (!php) {
@ -260,10 +256,10 @@ public class GraphicFile extends JPanel {
} }
} }
/** /**
* Affiche la valeur d'un noeud * Affiche la valeur d'un noeud
* @param line la ligne sur laquelle afficher la valeur *
* @param line la ligne sur laquelle afficher la valeur
* @param value la valeur à afficher * @param value la valeur à afficher
*/ */
private void createValue(Line line, Value value) { private void createValue(Line line, Value value) {
@ -276,10 +272,10 @@ public class GraphicFile extends JPanel {
} }
} }
/** /**
* Appelle les fils d'un noeud père * Appelle les fils d'un noeud père
* @param node le noeud père *
* @param node le noeud père
* @param depth la profondeur dans l'arbre * @param depth la profondeur dans l'arbre
*/ */
private void callNextNodes(Node node, int depth) { private void callNextNodes(Node node, int depth) {
@ -296,9 +292,9 @@ public class GraphicFile extends JPanel {
} }
} }
/** /**
* Affiche les lignes dans l'ordre en prenant compte de leur statut de visibilité * Affiche les lignes dans l'ordre en prenant compte de leur statut de
* visibilité
*/ */
private void displayLines() { private void displayLines() {
boolean inArrayObject = false, array, object; boolean inArrayObject = false, array, object;
@ -310,7 +306,8 @@ public class GraphicFile extends JPanel {
array = lines.get(i).getNode().isArray(); array = lines.get(i).getNode().isArray();
object = lines.get(i).getNode().isObject(); object = lines.get(i).getNode().isObject();
// Vérifie si le noeud est du type ARRAY ou du type OBJECT et s'il doit être affiché // Vérifie si le noeud est du type ARRAY ou du type OBJECT et s'il doit être
// affiché
if ((array || object) && !lines.get(i).isShow()) { if ((array || object) && !lines.get(i).isShow()) {
inArrayObject = true; inArrayObject = true;
openedArrayObject = lines.get(i).getNode(); openedArrayObject = lines.get(i).getNode();
@ -321,7 +318,7 @@ public class GraphicFile extends JPanel {
displayOneHidedLine(i, Parameters.OBJECT_ELEMENT_CLOSING); displayOneHidedLine(i, Parameters.OBJECT_ELEMENT_CLOSING);
} }
//Sinon affiche la ligne normalement // Sinon affiche la ligne normalement
} else { } else {
displayOneLine(i); displayOneLine(i);
} }
@ -332,9 +329,9 @@ public class GraphicFile extends JPanel {
} }
} }
/** /**
* Affiche une ligne normalement * Affiche une ligne normalement
*
* @param index le numéro de la ligne * @param index le numéro de la ligne
*/ */
private void displayOneLine(int index) { private void displayOneLine(int index) {
@ -344,10 +341,10 @@ public class GraphicFile extends JPanel {
alignementPanel.add(lines.get(index), gbc); alignementPanel.add(lines.get(index), gbc);
} }
/** /**
* Affiche un ligne cacher * Affiche un ligne cacher
* @param index le numéro de la ligne *
* @param index le numéro de la ligne
* @param endOfLine le texte à afficher en fin de ligne * @param endOfLine le texte à afficher en fin de ligne
*/ */
private void displayOneHidedLine(int index, String endOfLine) { private void displayOneHidedLine(int index, String endOfLine) {
@ -358,7 +355,6 @@ public class GraphicFile extends JPanel {
alignementPanel.add(lines.get(index), gbc); alignementPanel.add(lines.get(index), gbc);
} }
/** /**
* Change tous les statuts de visibilités à vrai * Change tous les statuts de visibilités à vrai
*/ */
@ -371,9 +367,9 @@ public class GraphicFile extends JPanel {
} }
} }
/** /**
* Change tous les statuts de visibilité à faux pour les éléments que l'on peut cacher * Change tous les statuts de visibilité à faux pour les éléments que l'on peut
* cacher
*/ */
public void retreatAll() { public void retreatAll() {
for (Line line : lines) { for (Line line : lines) {
@ -385,17 +381,15 @@ public class GraphicFile extends JPanel {
} }
} }
/** /**
* Enlève tous les caractères fermants * Enlève tous les caractères fermants
*/ */
private void removeAllClosingLabel() { private void removeAllClosingLabel() {
for(Line line : lines) { for (Line line : lines) {
line.removeClosingLabel(); line.removeClosingLabel();
} }
} }
/** /**
* *
* @return la liste des lignes du fichier * @return la liste des lignes du fichier

View File

@ -1,6 +1,6 @@
package JsonInspector.Graphics; package fr.sae.JSonInspector.Graphics;
import JsonInspector.Storage.Node; import fr.sae.JSonInspector.Storage.Node;
import java.awt.*; import java.awt.*;
@ -14,10 +14,9 @@ public class Line extends MyJPanel {
private MyJLabel lastElement; private MyJLabel lastElement;
private boolean closingElement = false; private boolean closingElement = false;
/** /**
* *
* @param node le noeud représenté par cette ligne * @param node le noeud représenté par cette ligne
* @param depth la profondeur dans l'arbre * @param depth la profondeur dans l'arbre
*/ */
public Line(Node node, int depth) { public Line(Node node, int depth) {
@ -26,11 +25,10 @@ public class Line extends MyJPanel {
this.depth = depth; this.depth = depth;
} }
/** /**
* *
* @param node le noeud représenté par cette ligne * @param node le noeud représenté par cette ligne
* @param str le texte à afficher sur la ligne * @param str le texte à afficher sur la ligne
* @param depth profondeur dans l'arbre * @param depth profondeur dans l'arbre
*/ */
public Line(Node node, String str, int depth) { public Line(Node node, String str, int depth) {
@ -40,9 +38,9 @@ public class Line extends MyJPanel {
this.depth = depth; this.depth = depth;
} }
/** /**
* Ajoute du texte sur la ligne * Ajoute du texte sur la ligne
*
* @param string le texte à ajouter * @param string le texte à ajouter
*/ */
public void add(String string) { public void add(String string) {
@ -50,33 +48,29 @@ public class Line extends MyJPanel {
this.add(lastElement); this.add(lastElement);
} }
/** /**
* Ajoute du texte sur la ligne * Ajoute du texte sur la ligne
*
* @param string le texte à ajouter * @param string le texte à ajouter
* @param color la couleur du texte * @param color la couleur du texte
*/ */
public void add(String string, Color color) { public void add(String string, Color color) {
lastElement = new MyJLabel(string, color); lastElement = new MyJLabel(string, color);
this.add(lastElement); this.add(lastElement);
} }
public Node getNode() { public Node getNode() {
return node; return node;
} }
public int getDepth() { public int getDepth() {
return depth; return depth;
} }
public boolean isShow() { public boolean isShow() {
return show; return show;
} }
/** /**
* Change le statut de visibilité de la ligne à 'vrai' * Change le statut de visibilité de la ligne à 'vrai'
*/ */
@ -84,7 +78,6 @@ public class Line extends MyJPanel {
show = true; show = true;
} }
/** /**
* Change le statut de visibilité de la ligne à 'faux' * Change le statut de visibilité de la ligne à 'faux'
*/ */
@ -92,7 +85,6 @@ public class Line extends MyJPanel {
show = false; show = false;
} }
/** /**
* Définit si la ligne représente la fin d'un noeud * Définit si la ligne représente la fin d'un noeud
*/ */
@ -100,16 +92,15 @@ public class Line extends MyJPanel {
closingElement = true; closingElement = true;
} }
/** /**
* Test si la ligne représente la fin d'un noeud * Test si la ligne représente la fin d'un noeud
*
* @return * @return
*/ */
public boolean isClosingElement() { public boolean isClosingElement() {
return closingElement; return closingElement;
} }
/** /**
* Enlève le dernier élément de la ligne * Enlève le dernier élément de la ligne
*/ */
@ -119,7 +110,7 @@ public class Line extends MyJPanel {
this.remove(lastElement); this.remove(lastElement);
} }
} catch (NullPointerException e) { } catch (NullPointerException e) {
//System.out.println("La ligne est vide"); // System.out.println("La ligne est vide");
} }
} }
} }

View File

@ -1,6 +1,6 @@
package JsonInspector.Graphics; package fr.sae.JSonInspector.Graphics;
import JsonInspector.Settings.Parameters; import fr.sae.JSonInspector.Settings.Parameters;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
@ -8,7 +8,7 @@ import java.awt.*;
public class MyJLabel extends JLabel { public class MyJLabel extends JLabel {
/** /**
* *
* @param text le texte à afficher * @param text le texte à afficher
* @param color la couleur du texte * @param color la couleur du texte
*/ */
public MyJLabel(String text, Color color) { public MyJLabel(String text, Color color) {

View File

@ -1,6 +1,6 @@
package JsonInspector.Graphics; package fr.sae.JSonInspector.Graphics;
import JsonInspector.Settings.Parameters; import fr.sae.JSonInspector.Settings.Parameters;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
@ -8,6 +8,7 @@ import java.awt.*;
public class MyJPanel extends JPanel { public class MyJPanel extends JPanel {
/** /**
* Construit un JPanel qui aligne tous ses éléments sur la gauche * Construit un JPanel qui aligne tous ses éléments sur la gauche
*
* @param color la couleur de fond du panel * @param color la couleur de fond du panel
*/ */
public MyJPanel(Color color) { public MyJPanel(Color color) {

View File

@ -1,8 +1,7 @@
package JsonInspector.Settings; package fr.sae.JSonInspector.Settings;
import java.awt.*; import java.awt.*;
/** /**
* Contient uniquement les paramètres de l'application * Contient uniquement les paramètres de l'application
*/ */

View File

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

File diff suppressed because one or more lines are too long