Parametry systemu pozwalają na zmianę specyficznych zachowań systemu (zależnie od wybranego parametru) oraz tworzeniu nowych własnych parametrów możliwych do podglądu i zmiany z poziomu Java API lub interfejsu użytkownika. Zapisywane są w bazie danych i są docelowym miejscem przeniesienia parametrów aktualnie konfigurowanych w pliku systemowym. Ze względu na to iż system często wymaga pobrania parametrów, przetrzymywane są one w cache'u. Niewskazane jest więc zmienianie parametrów bezpośrednio w bazie danych.
Każdy z parametrów posiada własny typ. Możliwe typy to:
Parametry w GUI mogą mieć własne tłumaczenia. Graficznie dla kategorii parametru jest to tekst umieszczony obok klucza kategorii. Dla parametru jest to tekst w tooltipie wyświetlanym przy najechaniu kursorem na klucz parametru. Aby ustawić własne tłumaczenie parametru lub kategorii, należy w jakimkolwiek translatorze wdrożeniowym dodać wpis, gdzie klucz tłumaczenia jest identyczny do klucza kategorii lub parametru.
Klasa ta została stworzona, aby nie korzystać bezpośrednio z propertiesów udostępnionych przez Sharka. Poniżej przykłady użycia
// "Dawne" pobieranie parametrów z pliku Sharka String value = Shark.getInstance().getProperties().getProperty( key ); // "Nowe" pobieranie parametrów // Jeżeli parametr nie istnieje w bazie, zadziała identycznie, jak powyższy kod. Jeżeli parametr istnieje w bazie, zostanie z niej pobrany. String value = SystemProperties.getString( key ); // możliwe podanie typów: String (dla typu tekstowego, comboboxa oraz hasła), Date (format yyyy-MM-dd), Long, Boolean Date dateValue = SystemProperties.getDate( key ); // pobranie parametru datowego, format yyyy-MM-dd String decryptedPassword = SystemProperties.getPassword( key ); // pobranie parametru hasłowego (parametr jest zaszyfrowany w bazie) // Pobranie parametru podając wartość domyślną String value = SystemProperties.getString( key, "wartoscDomyslna"); Boolean booleanParam = SystemProperties.getBoolean( key, false ); // Pobranie parametru przeniesionego z pliku konfiguracyjnego do bazy String value = SystemProperties.getString( DefinedSystemParameter.UNIVERSAL_PASSWORD ); // Jeżeli istnieje w bazie, zostanie z niej pobrany. Jeżeli nie - zostanie pobrany z pliku konfiguracyjnego. // Jeżeli nie istnieje w pliku, zwrócona zostanie wartość domyślna (taka, jak w domyślnym pliku konfiguracyjnym). |
Finder stworzony do wyszukiwania wszystkich parametrów, wszystkich kategorii, wszystkich parametrów w kategorii oraz parametrów według filtrów. Przykłady użycia:
SystemParameterFinder finder = FinderFactory.getSystemParameterFinder(); List<Category> categories = finder.getAllCategories(); // wyszukanie wszystkich kategorii List<SystemParameter> params = finder.findByCategory( "General" ); // wyszukanie wszystkich parametrów dla kategorii "General" |
Serwis stworzony do tworzenia, zmiany i usuwania parametrów na poziomie bazy danych. Przykłady użycia:
Category category = new Category( "ExampleCategory" ); // stworzenie encji kategorii SystemParameter parameter = new SystemParameter( category, ParameterType.BOOLEAN, "ExampleKey" ); // stworzenie encji parametru parameter.setValue( true ); // ustawienie wartości SystemParameterService service = ServiceFactory.getSystemParameterService(); service.create( parameter ); // stworzneie parametru parameter.setValue( false ); service.update( parameter ); // aktualizacja parametru SystemParameter parameter2 = service.getParameter( "ExampleSecondParameterKey" ); // pobranie parametru service.delete( parameter.getKey() ); // usunięcie parametru |