Obsługa błędów
Błędy, występujące podczas procesu importu danych, opisywane są za pomocą następujących klas:
- ErrorSeverity - typ wyliczeniowy, reprezentujący poziom błędu. Aktualnie zdefiniowane są dwa poziomy błędu:
- ERROR - poziom wskazujący, że dane są niepoprawne i nie mogą być zaimportowane; wszystkie wiersze zawierające błędy o poziomie ERROR zostaną usunięte przed importem.
- WARNING - poziom wskazujący, że dane są prawdopodobnie niepoprawne, jednak mogą zostać zaimportowane.
- ErrorType - reprezentuje typ błędu, wraz z identyfikującym go kodem błędu, poziomem, krótkim opisem i dłuższym komunikatem.
- AbstractErrorLogData - abstrakcyjna klasa, reprezentująca błędy, które mogą być logowane; zawiera typ błędu, dodatkowe parametry, które służą do "wypełnienia" komunikatu błędu odpowiednimi wartościami oraz wiersza, którego dany błąd dotyczy. Aktualnie zdefiniowane zostały następujące klasy rozszerzające:
- TokenErrorLogData - błąd dotyczący pojedynczego tokenu, np. niepoprawny format daty
- DataRowErrorLogData - błąd dotyczący całego wiersza, np. wiersz za krótki/za długi
- TabularDataErrorLogData - błąd dotyczący całego arkuszu danych, np. pusty arkusz danych
Wszystkie błędy w postaci AbstractErrorLogData zbierane są do logu błędów ErrorsLog. Log jest mapą, przechowującą mapowania pomiędzy indeksami błędnych wierszy a błędami, które w tych wierszach wystąpiły. Potrafi analizować błędne wiersze i same błędy, np. zliczając ilość wystąpień błędów różnego poziomu lub pobierając liczbę wystąpień błędów różnego typu. Log posiada również metody służące do cofania raz wykonanych operacji usunięcia błędów, oraz powtarzania operacji raz cofniętych.
Rysunek 1: Diagram zależności pomiędzy klasami służącymi do obsługi błędów procesu importu.