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
JAVADOC = javadoc
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
# CHEMINS
@ -19,7 +19,11 @@ SETTINGS = ${SRCFULLPATH}/Settings
STORAGE = ${SRCFULLPATH}/Storage
MAIN = ${SRCFULLPATH}/Main.java
.PHONY: clean docs
.PHONY: clean docs run
run:
mkdir build
mkdir -p $(src)/
clean:
rm -rf ${BUILD} && rm -rf ${DOCS}
@ -29,6 +33,6 @@ docs:
${JAVADOC} ${OPTIONSDOCS} ${ALL}
# COMPILATION
${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

View File

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

View File

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

View File

@ -1,10 +1,10 @@
package JsonInspector.Graphics;
package fr.sae.JSonInspector.Graphics;
import JsonInspector.Settings.Parameters;
import JsonInspector.Storage.Node;
import JsonInspector.Storage.Tree;
import JsonInspector.Storage.Type;
import JsonInspector.Storage.Value;
import fr.sae.JSonInspector.Settings.Parameters;
import fr.sae.JSonInspector.Storage.Node;
import fr.sae.JSonInspector.Storage.Tree;
import fr.sae.JSonInspector.Storage.Type;
import fr.sae.JSonInspector.Storage.Value;
import javax.swing.*;
import java.awt.*;
@ -18,7 +18,6 @@ public class GraphicFile extends JPanel {
private boolean php = false;
private Node firstNode;
public GraphicFile(Frame frame, Tree tree, boolean php) {
super();
this.php = php;
@ -30,7 +29,6 @@ public class GraphicFile extends JPanel {
displayLines();
}
public GraphicFile(Frame frame, ArrayList<Line> lines) {
super();
init();
@ -52,9 +50,9 @@ public class GraphicFile extends JPanel {
this.add(alignementPanel);
}
/**
* 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 virgule détermine si une virgule doit être affichée à la fin
@ -77,9 +75,9 @@ public class GraphicFile extends JPanel {
}
}
/**
* Créé une ligne de type 'PAIR'
*
* @param node le noeud a afficher
* @param depth la profondeur dans l'arbre
* @param indentation l'indentation du père
@ -95,7 +93,6 @@ public class GraphicFile extends JPanel {
line.add(" => ");
}
if (node.getSize() != 0) {
createValue(line, node.get(0));
} else {
@ -109,9 +106,9 @@ public class GraphicFile extends JPanel {
lines.add(line);
}
/**
* Créé une ligne de type 'OBJECT' ou 'ELEMENT'
*
* @param node le noeud a afficher
* @param depth la profondeur dans l'arbre
* @param indentation l'indentation du père
@ -182,9 +179,9 @@ public class GraphicFile extends JPanel {
}
}
/**
* Créé une ligne de type 'ARRAY'
*
* @param node le noeud a afficher
* @param depth la profondeur dans l'arbre
* @param indentation l'indentation du père
@ -205,7 +202,6 @@ public class GraphicFile extends JPanel {
line.add(" => (");
}
if (node.getSize() == 0) {
if (virgule) {
if (!php) {
@ -260,9 +256,9 @@ public class GraphicFile extends JPanel {
}
}
/**
* Affiche la valeur d'un noeud
*
* @param line la ligne sur laquelle afficher la valeur
* @param value la valeur à afficher
*/
@ -276,9 +272,9 @@ public class GraphicFile extends JPanel {
}
}
/**
* Appelle les fils d'un noeud père
*
* @param node le noeud père
* @param depth la profondeur dans l'arbre
*/
@ -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() {
boolean inArrayObject = false, array, object;
@ -310,7 +306,8 @@ public class GraphicFile extends JPanel {
array = lines.get(i).getNode().isArray();
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()) {
inArrayObject = true;
openedArrayObject = lines.get(i).getNode();
@ -332,9 +329,9 @@ public class GraphicFile extends JPanel {
}
}
/**
* Affiche une ligne normalement
*
* @param index le numéro de la ligne
*/
private void displayOneLine(int index) {
@ -344,9 +341,9 @@ public class GraphicFile extends JPanel {
alignementPanel.add(lines.get(index), gbc);
}
/**
* Affiche un ligne cacher
*
* @param index le numéro de la ligne
* @param endOfLine le texte à afficher en fin de ligne
*/
@ -358,7 +355,6 @@ public class GraphicFile extends JPanel {
alignementPanel.add(lines.get(index), gbc);
}
/**
* 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() {
for (Line line : lines) {
@ -385,7 +381,6 @@ public class GraphicFile extends JPanel {
}
}
/**
* Enlève tous les caractères fermants
*/
@ -395,7 +390,6 @@ public class GraphicFile extends JPanel {
}
}
/**
*
* @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.*;
@ -14,7 +14,6 @@ public class Line extends MyJPanel {
private MyJLabel lastElement;
private boolean closingElement = false;
/**
*
* @param node le noeud représenté par cette ligne
@ -26,7 +25,6 @@ public class Line extends MyJPanel {
this.depth = depth;
}
/**
*
* @param node le noeud représenté par cette ligne
@ -40,9 +38,9 @@ public class Line extends MyJPanel {
this.depth = depth;
}
/**
* Ajoute du texte sur la ligne
*
* @param string le texte à ajouter
*/
public void add(String string) {
@ -50,9 +48,9 @@ public class Line extends MyJPanel {
this.add(lastElement);
}
/**
* Ajoute du texte sur la ligne
*
* @param string le texte à ajouter
* @param color la couleur du texte
*/
@ -61,22 +59,18 @@ public class Line extends MyJPanel {
this.add(lastElement);
}
public Node getNode() {
return node;
}
public int getDepth() {
return depth;
}
public boolean isShow() {
return show;
}
/**
* Change le statut de visibilité de la ligne à 'vrai'
*/
@ -84,7 +78,6 @@ public class Line extends MyJPanel {
show = true;
}
/**
* Change le statut de visibilité de la ligne à 'faux'
*/
@ -92,7 +85,6 @@ public class Line extends MyJPanel {
show = false;
}
/**
* Définit si la ligne représente la fin d'un noeud
*/
@ -100,16 +92,15 @@ public class Line extends MyJPanel {
closingElement = true;
}
/**
* Test si la ligne représente la fin d'un noeud
*
* @return
*/
public boolean isClosingElement() {
return closingElement;
}
/**
* Enlève le dernier élément de la ligne
*/

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 java.awt.*;

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 java.awt.*;
@ -8,6 +8,7 @@ import java.awt.*;
public class MyJPanel extends JPanel {
/**
* Construit un JPanel qui aligne tous ses éléments sur la gauche
*
* @param color la couleur de fond du panel
*/
public MyJPanel(Color color) {

View File

@ -1,8 +1,7 @@
package JsonInspector.Settings;
package fr.sae.JSonInspector.Settings;
import java.awt.*;
/**
* 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.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,9 +22,9 @@ 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) {
@ -46,9 +44,9 @@ public class Node {
}
}
/**
* Ajoute une valeur au noeud
*
* @param value la valeur à ajouter
* @param <T> le type de la valeur à ajouter
*/
@ -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
@ -59,9 +59,9 @@ public class Tree {
}
}
/**
* Créer un noeud de type 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
@ -89,9 +89,9 @@ public class Tree {
return array;
}
/**
* Créer un noeud de type 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
@ -108,9 +108,9 @@ public class Tree {
return object;
}
/**
* Créer un noeud de type pair
*
* @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,9 +140,9 @@ 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
*/
@ -153,9 +153,9 @@ public class Tree {
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éé
*/
@ -215,9 +215,9 @@ public class Tree {
return new String[] { key, value };
}
/**
* Affiche l'arbre de manière récursive
*
* @param node le noeud a afficher
* @param depth la profondeur dans l'arbre
* @return le noeud convertit en chaîne de caractères
@ -237,7 +237,6 @@ public class Tree {
line += indentation + node.getName();
}
if (node.isObject() || node.isElement()) {
line += printObjectElement(node, depth, indentation);
@ -251,9 +250,9 @@ public class Tree {
return line;
}
/**
* Appel les fils suivants d'un 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,9 +296,9 @@ 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 indentation l'indentation du noeud père
@ -324,9 +323,9 @@ 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 indentation l'indentation du noeud père
@ -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> {
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() {
return value.getClass().equals(String.class);
}
public boolean isNumber() {
return value.getClass().equals(Integer.class) || value.getClass().equals(Double.class);
}

File diff suppressed because one or more lines are too long