11package hexlet .code ;
22
3- import com .fasterxml .jackson .core .type .TypeReference ;
4- import com .fasterxml .jackson .databind .ObjectMapper ;
5-
6- import java .io .File ;
73import java .io .IOException ;
84import java .util .Map ;
95import java .util .Set ;
106import java .util .TreeSet ;
117
12-
13-
148public class Differ {
159
1610 public static String generate (String filePath1 , String filePath2 ) throws IOException {
17- ObjectMapper objectMapper = new ObjectMapper ();
18-
19- // Читаю JSON и складываю в Map
20-
21- Map <String , Object > fileInfo1 = objectMapper .readValue (new File ("src/main/resources/" + filePath1 ),
22- new TypeReference <Map <String , Object >>() { });
23- Map <String , Object > fileInfo2 = objectMapper .readValue (new File ("src/main/resources/" + filePath2 ),
24- new TypeReference <Map <String , Object >>() { });
11+ // Используем новый Parser для обработки разных форматов
12+ Map <String , Object > fileInfo1 = Parser .parse (filePath1 );
13+ Map <String , Object > fileInfo2 = Parser .parse (filePath2 );
2514
2615 return generateDiff (fileInfo1 , fileInfo2 );
2716 }
2817
2918 public static String generateDiff (Map <String , Object > fileInfo1 , Map <String , Object > fileInfo2 ) {
30-
31- //разбиваю на значения
3219 Set <String > allKeys = new TreeSet <>();
3320 allKeys .addAll (fileInfo1 .keySet ());
3421 allKeys .addAll (fileInfo2 .keySet ());
3522
36- // тут буду хранить результат сравнения
37- StringBuilder differences = new StringBuilder ("\n "
38- + "{\n " );
23+ StringBuilder differences = new StringBuilder ("\n {\n " );
3924
40- //сравниваю по значениям и вывожу обратно ключ-значение
4125 for (String key : allKeys ) {
42-
4326 Object value1 = fileInfo1 .get (key );
4427 Object value2 = fileInfo2 .get (key );
4528
@@ -59,3 +42,65 @@ public static String generateDiff(Map<String, Object> fileInfo1, Map<String, Obj
5942 return differences .toString ();
6043 }
6144}
45+
46+
47+ //package hexlet.code;
48+ //
49+ //import com.fasterxml.jackson.core.type.TypeReference;
50+ //import com.fasterxml.jackson.databind.ObjectMapper;
51+ //
52+ //import java.io.File;
53+ //import java.io.IOException;
54+ //import java.util.Map;
55+ //import java.util.Set;
56+ //import java.util.TreeSet;
57+ //
58+ //
59+ //public class Differ {
60+ //
61+ // public static String generate(String filePath1, String filePath2) throws IOException {
62+ // ObjectMapper objectMapper = new ObjectMapper();
63+ //
64+ // // Читаю JSON и складываю в Map
65+ //
66+ // Map<String, Object> fileInfo1 = objectMapper.readValue(new File("src/main/resources/" + filePath1),
67+ // new TypeReference<Map<String, Object>>() { });
68+ // Map<String, Object> fileInfo2 = objectMapper.readValue(new File("src/main/resources/" + filePath2),
69+ // new TypeReference<Map<String, Object>>() { });
70+ //
71+ // return generateDiff(fileInfo1, fileInfo2);
72+ // }
73+ //
74+ // public static String generateDiff(Map<String, Object> fileInfo1, Map<String, Object> fileInfo2) {
75+ //
76+ // //разбиваю на значения
77+ // Set<String> allKeys = new TreeSet<>();
78+ // allKeys.addAll(fileInfo1.keySet());
79+ // allKeys.addAll(fileInfo2.keySet());
80+ //
81+ // // тут буду хранить результат сравнения
82+ // StringBuilder differences = new StringBuilder("\n"
83+ // + "{\n");
84+ //
85+ // //сравниваю по значениям и вывожу обратно ключ-значение
86+ // for (String key : allKeys) {
87+ //
88+ // Object value1 = fileInfo1.get(key);
89+ // Object value2 = fileInfo2.get(key);
90+ //
91+ // if (value1 != null && value2 != null && value1.equals(value2)) {
92+ // differences.append(" ").append(key).append(": ").append(value1).append("\n");
93+ // } else {
94+ // if (value1 != null) {
95+ // differences.append(" - ").append(key).append(": ").append(value1).append("\n");
96+ // }
97+ // if (value2 != null) {
98+ // differences.append(" + ").append(key).append(": ").append(value2).append("\n");
99+ // }
100+ // }
101+ // }
102+ //
103+ // differences.append("}\n");
104+ // return differences.toString();
105+ // }
106+ //}
0 commit comments