88public class Differ {
99
1010 public static String generate (String filePath1 , String filePath2 , String format ) throws IOException {
11- // Используем новый Parser для обработки разных форматов
1211 Map <String , Object > fileInfo1 = Parser .parse (filePath1 );
1312 Map <String , Object > fileInfo2 = Parser .parse (filePath2 );
1413
@@ -17,7 +16,8 @@ public static String generate(String filePath1, String filePath2, String format)
1716 return Formatter .format (diff , format );
1817 }
1918
20- public static List <Map <String , Object >> calculateDiff (Map <String , Object > fileInfo1 , Map <String , Object > fileInfo2 ) {
19+ public static List <Map <String , Object >> calculateDiff (Map <String , Object > fileInfo1 ,
20+ Map <String , Object > fileInfo2 ) {
2121 Set <String > allKeys = new TreeSet <>();
2222 allKeys .addAll (fileInfo1 .keySet ());
2323 allKeys .addAll (fileInfo2 .keySet ());
@@ -32,89 +32,25 @@ public static List<Map<String, Object>> calculateDiff(Map<String, Object> fileIn
3232 diffEntry .put ("key" , key );
3333
3434 if (!fileInfo1 .containsKey (key )) {
35- // Ключ был добавлен во второй файл
35+ // ключ был добавлен во второй файл
3636 diffEntry .put ("type" , "added" );
3737 diffEntry .put ("newValue" , value2 );
3838 } else if (!fileInfo2 .containsKey (key )) {
39- // Ключ был удалён
39+ // ключ был удалён
4040 diffEntry .put ("type" , "removed" );
4141 diffEntry .put ("oldValue" , value1 );
4242 } else if (Objects .equals (value1 , value2 )) {
43- // Значение осталось неизменным
43+ //значение осталось неизменным
4444 diffEntry .put ("type" , "unchanged" );
4545 diffEntry .put ("value" , value1 );
4646 } else {
47- // Значение изменилось
47+ // значение изменилось
4848 diffEntry .put ("type" , "updated" );
4949 diffEntry .put ("oldValue" , value1 );
5050 diffEntry .put ("newValue" , value2 );
5151 }
52-
5352 diff .add (diffEntry );
5453 }
55-
5654 return diff ;
5755 }
5856}
59-
60-
61- //package hexlet.code;
62- //
63- //import com.fasterxml.jackson.core.type.TypeReference;
64- //import com.fasterxml.jackson.databind.ObjectMapper;
65- //
66- //import java.io.File;
67- //import java.io.IOException;
68- //import java.util.Map;
69- //import java.util.Set;
70- //import java.util.TreeSet;
71- //
72- //
73- //public class Differ {
74- //
75- // public static String generate(String filePath1, String filePath2) throws IOException {
76- // ObjectMapper objectMapper = new ObjectMapper();
77- //
78- // // Читаю JSON и складываю в Map
79- //
80- // Map<String, Object> fileInfo1 = objectMapper.readValue(new File("src/main/resources/" + filePath1),
81- // new TypeReference<Map<String, Object>>() { });
82- // Map<String, Object> fileInfo2 = objectMapper.readValue(new File("src/main/resources/" + filePath2),
83- // new TypeReference<Map<String, Object>>() { });
84- //
85- // return generateDiff(fileInfo1, fileInfo2);
86- // }
87- //
88- // public static String generateDiff(Map<String, Object> fileInfo1, Map<String, Object> fileInfo2) {
89- //
90- // //разбиваю на значения
91- // Set<String> allKeys = new TreeSet<>();
92- // allKeys.addAll(fileInfo1.keySet());
93- // allKeys.addAll(fileInfo2.keySet());
94- //
95- // // тут буду хранить результат сравнения
96- // StringBuilder differences = new StringBuilder("\n"
97- // + "{\n");
98- //
99- // //сравниваю по значениям и вывожу обратно ключ-значение
100- // for (String key : allKeys) {
101- //
102- // Object value1 = fileInfo1.get(key);
103- // Object value2 = fileInfo2.get(key);
104- //
105- // if (value1 != null && value2 != null && value1.equals(value2)) {
106- // differences.append(" ").append(key).append(": ").append(value1).append("\n");
107- // } else {
108- // if (value1 != null) {
109- // differences.append(" - ").append(key).append(": ").append(value1).append("\n");
110- // }
111- // if (value2 != null) {
112- // differences.append(" + ").append(key).append(": ").append(value2).append("\n");
113- // }
114- // }
115- // }
116- //
117- // differences.append("}\n");
118- // return differences.toString();
119- // }
120- //}
0 commit comments