Transférer les fichiers vers 'src/JsonInspector'
This commit is contained in:
parent
6e6a6bceda
commit
f5a1da67c5
@ -4,51 +4,46 @@ import java.util.ArrayList;
|
|||||||
|
|
||||||
|
|
||||||
public class Node {
|
public class Node {
|
||||||
private Type type;
|
private final ArrayList<Value> values = new ArrayList<>();
|
||||||
private String name;
|
private final String name;
|
||||||
private ArrayList<String> values = new ArrayList<>();
|
private final Type type;
|
||||||
private ArrayList<Node> nextNodes = new ArrayList<>();
|
|
||||||
|
|
||||||
|
|
||||||
public Node(String name, Type type) {
|
public Node(String name, Type type) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
|
if (type == Type.ELEMENT) {
|
||||||
|
this.name = "";
|
||||||
|
} else {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addValue(String value) {
|
|
||||||
if (type == Type.PAIR) {
|
|
||||||
if (values.size() == 0) {
|
|
||||||
values.add(value);
|
|
||||||
} else {
|
|
||||||
values.set(0, value);
|
|
||||||
}
|
|
||||||
} else if (type == Type.ARRAY) {
|
|
||||||
values.add(value);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addNode(Node next) {
|
|
||||||
if (type == Type.OBJECT || type == Type.ARRAY) {
|
public <T> void add(T value) {
|
||||||
nextNodes.add(next);
|
values.add(new Value<T>(value));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Type getType() {
|
public Type getType() {
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<Node> getNodes() {return nextNodes;}
|
|
||||||
|
|
||||||
public ArrayList<String> getValues() {return values;}
|
public Value get(int index) {
|
||||||
|
return values.get(index);
|
||||||
public void setType(Type type) {
|
|
||||||
this.type = type;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int getSize() {
|
||||||
|
return values.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
String string = name + " : ";
|
String string = name + " : ";
|
||||||
|
@ -4,12 +4,14 @@ import java.awt.*;
|
|||||||
|
|
||||||
public class Parameters {
|
public class Parameters {
|
||||||
public static final Font FILE_FONT = new Font(Font.SANS_SERIF, Font.PLAIN, 18);
|
public static final Font FILE_FONT = new Font(Font.SANS_SERIF, Font.PLAIN, 18);
|
||||||
public static final String INDENTATION = " ";
|
public static final String IHM_INDENTATION = " ";
|
||||||
|
public static final String CONSOLE_INDENTATION = " ";
|
||||||
|
|
||||||
public static final Color IHM_COLOR = new Color(70, 70, 70);
|
public static final Color IHM_COLOR = new Color(70, 70, 70);
|
||||||
public static final Color KEY_COLOR = new Color(200, 40, 100);
|
public static final Color KEY_COLOR = new Color(70, 189, 204);
|
||||||
public static final Color NULL_COLOR = new Color(250, 112, 32);
|
public static final Color OTHER_COLOR = new Color(7, 103, 183);
|
||||||
public static final Color VALUE_COLOR = new Color(113, 20, 252);
|
public static final Color STRING_COLOR = new Color(203, 109, 80);
|
||||||
|
public static final Color NUMBER_COLOR = new Color(133, 192, 95);
|
||||||
public static final Color DEFAULT_TEXT_COLOR = new Color(220, 220, 220);
|
public static final Color DEFAULT_TEXT_COLOR = new Color(220, 220, 220);
|
||||||
public static final Color BACKGROUND_COLOR = new Color(45, 45, 45);
|
public static final Color BACKGROUND_COLOR = new Color(45, 45, 45);
|
||||||
}
|
}
|
||||||
|
@ -66,22 +66,19 @@ public class Tree {
|
|||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < nextFiles.size(); i++) {
|
for (int i = 0; i < nextFiles.size(); i++) {
|
||||||
currentNode.addNode(buildAST(names.get(i), nextFiles.get(i)));
|
currentNode.add(buildAST(names.get(i), nextFiles.get(i)));
|
||||||
}
|
}
|
||||||
return currentNode;
|
return currentNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static String printTree(Node node, int depth) {
|
public static String printTree(Node node, int depth) {
|
||||||
ArrayList<Node> nodes = node.getNodes();
|
|
||||||
ArrayList<String> values = node.getValues();
|
|
||||||
|
|
||||||
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.INDENTATION;
|
indentation += Parameters.CONSOLE_INDENTATION;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!node.getName().equals("")) {
|
if (!node.getName().equals("")) {
|
||||||
@ -92,40 +89,77 @@ public class Tree {
|
|||||||
|
|
||||||
|
|
||||||
if (node.getType() == Type.OBJECT){
|
if (node.getType() == Type.OBJECT){
|
||||||
|
line += printObject(node, depth, indentation);
|
||||||
|
|
||||||
|
} else if (node.getType() == Type.PAIR){
|
||||||
|
line += printPair(node, depth, indentation);
|
||||||
|
|
||||||
|
} else if (node.getType() == Type.ARRAY){
|
||||||
|
line += printArray(node, depth, indentation);
|
||||||
|
}
|
||||||
|
|
||||||
|
return line;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static String callNextNodes(Node node, int depth) {
|
||||||
|
String line = "";
|
||||||
|
|
||||||
|
for (int i = 0; i < node.getSize(); i++) {
|
||||||
|
if (node.get(i).isNode()) {
|
||||||
|
line += "\n" + printTree((Node) node.get(i).getValue(), depth + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return line;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static String printPair(Node node, int depth, String indentation) {
|
||||||
|
String line = "";
|
||||||
|
|
||||||
|
if (node.getSize() != 0) {
|
||||||
|
line += ": " + node.get(0);
|
||||||
|
} else {
|
||||||
|
line += ": null";
|
||||||
|
}
|
||||||
|
|
||||||
|
return line;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static String printObject(Node node, int depth, String indentation) {
|
||||||
|
String line = "";
|
||||||
|
|
||||||
if (node.getName().equals("")) {
|
if (node.getName().equals("")) {
|
||||||
line += "{";
|
line += "{";
|
||||||
} else {
|
} else {
|
||||||
line += ": {";
|
line += ": {";
|
||||||
}
|
}
|
||||||
} else if (node.getType() == Type.PAIR){
|
|
||||||
if (node.getValues().size() != 0) {
|
line += callNextNodes(node, depth);
|
||||||
line += ": " + values.get(0);
|
line += "\n" + indentation + "}";
|
||||||
} else {
|
|
||||||
line += ": null";
|
return line;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (node.getType() == Type.ARRAY){
|
|
||||||
|
private static String printArray(Node node, int depth, String indentation) {
|
||||||
|
String line = "";
|
||||||
|
|
||||||
line += ": [\n";
|
line += ": [\n";
|
||||||
|
|
||||||
for (int i = 0; i < values.size(); i++) {
|
for (int i = 0; i < node.getSize(); i++) {
|
||||||
//si la valeur a l'indice i est la dernière alors pas de virgule
|
//si la valeur a l'indice i est la dernière alors pas de virgule
|
||||||
if (i != values.size()-1) {
|
if (i != node.getSize()-1) {
|
||||||
line += indentation + Parameters.INDENTATION + values.get(i) + ",\n";
|
line += indentation + Parameters.CONSOLE_INDENTATION + node.get(i).getValue() + ",\n";
|
||||||
} else {
|
} else {
|
||||||
line += indentation + Parameters.INDENTATION + values.get(i);
|
line += indentation + Parameters.CONSOLE_INDENTATION + node.get(i).getValue();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < nodes.size(); i++) {
|
line += callNextNodes(node, depth);
|
||||||
line += "\n" + printTree(nodes.get(i), depth + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (node.getType() == Type.OBJECT) {
|
|
||||||
line += "\n" + indentation + "}";
|
|
||||||
} else if (node.getType() == Type.ARRAY) {
|
|
||||||
line += "\n" + indentation + "]";
|
line += "\n" + indentation + "]";
|
||||||
}
|
|
||||||
|
|
||||||
return line;
|
return line;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
package JsonInspector;
|
package JsonInspector;
|
||||||
|
|
||||||
public enum Type {
|
public enum Type {
|
||||||
OBJECT, ARRAY, PAIR, NULL
|
OBJECT, ELEMENT, ARRAY, PAIR, NULL
|
||||||
}
|
}
|
||||||
|
49
src/JsonInspector/Value.java
Normal file
49
src/JsonInspector/Value.java
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
package JsonInspector;
|
||||||
|
|
||||||
|
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;
|
||||||
|
if (node.getType() == Type.OBJECT || node.getType() == Type.ARRAY) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean isBoolean() {
|
||||||
|
return value.getClass().equals(Boolean.class);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user