net.ranides.assira.config
Interface Configuration

All Superinterfaces:
EventListener<Event>, EventRouter
All Known Implementing Classes:
AbstractConfiguration, JSONConfiguration, XMLConfiguration

public interface Configuration
extends EventRouter

Interfejs reprezentujący konfigurację, którą można nie tylko czytać i modyfikować, ale również obserwować zmiany (obsługuje klasyczny model zdarzeń assira).

Każda klasa implementująca interfejs powinna udostępniać konstruktor pobierający nazwę konfiguracji i opcjonalnie dokonywać w nim pierwszego ładowania danych. Metody load i save są opcjonalne i wywoływane przez użytkownika w celu odświeżenia/ sychronizacji danych z fizycznym nośnikiem.

Uwaga! Wielokrotne utworzenie konfiguracji za pomocą ConfigService zwróci poprzednią instancję tak długo, jak gdziekolwiek w programie będzie istnieć referencja do niej. Z tego względu każda niezależna część aplikacji, która chce mieć gwarancję, że wprowadzane przez nią zmiany będą globalnie widoczne, musi przechowywać referencję do wyniku. Innymi słowy, z Configuration należy postępować identycznie jak z Logger.

Author:
ranides

Method Summary
 Map<String,Object> asFlatMap()
          Zwraca spłaszczoną mapę, zawierającą wszystkie ustawienia w postaci: "ścieżka - wartość".
 Map<String,Object> asMap()
           Zwraca mapę, która przechowuje wartości konfiguracyjne.
<T> T
get(Class<T> type, String path)
           
<T> T
get(Class<T> type, String path, T ddefault)
           
 Object get(String path)
          Pobiera wartość zapisaną we wskazanej lokalizacji
 Object get(String path, Object ddefault)
          Pobiera wartość zapisaną we wskazanej lokalizacji
<T> List<T>
getList(Class<T> type, String path)
           
 List<?> getList(String path)
          Pobiera listę wartości zapisanych we wskazanej lokalizacji
 Configuration load()
          Ładuje konfigurację z persistent storage
 String path()
          Abstrakcyjna ścieżka do załadowanej konfiguracji
<T> void
put(Class<T> type, String path, Object value)
           
 void put(String path, Object value)
          Zmienia wartość pod wskazaną lokalizacją
<T> void
putList(Class<T> type, String path, List<?> value)
           
 void putList(String path, List<?> value)
          Umieszcza listę wartości pod wskazaną lokalizacją
 Configuration save()
          Zapisuje konfigurację do persistent storage
 
Methods inherited from interface net.ranides.assira.events.EventRouter
addEventListener, dispose, getEventListeners, removeAllEventListeners, removeEventListener, signalEvent
 
Methods inherited from interface net.ranides.assira.events.EventListener
handleEvent
 

Method Detail

path

String path()
Abstrakcyjna ścieżka do załadowanej konfiguracji

Returns:

load

Configuration load()
                   throws ConfigException
Ładuje konfigurację z persistent storage

Returns:
Throws:
ConfigException

save

Configuration save()
                   throws ConfigException
Zapisuje konfigurację do persistent storage

Returns:
Throws:
ConfigException

asMap

Map<String,Object> asMap()

Zwraca mapę, która przechowuje wartości konfiguracyjne. Format mapy nie jest określony - w szczególności obiekty zagnieżdżone mogą być reprezentowane jako zagnieżdżone mapy, albo być spłaszczone. 1-elementowe listy obiektów mogą być kolekacji albo po prostu elementami bezpośrednio wstawionymi do mapy. Modyfikacja mapy jest niezdefiniowana: może wpływać na konfigurację, ale nie musi.

Z powyższych powodów metoda zalecana tylko podczas pracy z konkretną implementacją.

Returns:

asFlatMap

Map<String,Object> asFlatMap()
Zwraca spłaszczoną mapę, zawierającą wszystkie ustawienia w postaci: "ścieżka - wartość". Modyfikacja mapy nie wpływa na wartość konfiguracji. Ale jeśli wartości zapisane w konfiguracji nie są obiektami typu immutable to ich modyfikacja jest niezdefiniowana.

Returns:

get

<T> T get(Class<T> type,
          String path,
          T ddefault)

get

<T> T get(Class<T> type,
          String path)
      throws ConfigException
Throws:
ConfigException

get

Object get(String path,
           Object ddefault)
           throws ConfigException
Pobiera wartość zapisaną we wskazanej lokalizacji

Parameters:
path -
ddefault -
Returns:
odczytana wartość, lub ddefault, jeśli nie znaleziono w konfiguracji
Throws:
ConfigException

get

Object get(String path)
           throws ConfigException
Pobiera wartość zapisaną we wskazanej lokalizacji

Parameters:
path -
Returns:
odczytana wartość
Throws:
ConfigException - jeśli nie znaleziono w konfiguracji

getList

<T> List<T> getList(Class<T> type,
                    String path)

getList

List<?> getList(String path)
                throws ConfigException
Pobiera listę wartości zapisanych we wskazanej lokalizacji

Parameters:
path -
Returns:
pusta lista, jeśli nie znaleziono w konfiguracji
Throws:
ConfigException

put

<T> void put(Class<T> type,
             String path,
             Object value)
         throws ConfigException
Throws:
ConfigException

put

void put(String path,
         Object value)
         throws ConfigException
Zmienia wartość pod wskazaną lokalizacją

Parameters:
path -
value -
Throws:
ConfigException

putList

<T> void putList(Class<T> type,
                 String path,
                 List<?> value)
             throws ConfigException
Throws:
ConfigException

putList

void putList(String path,
             List<?> value)
             throws ConfigException
Umieszcza listę wartości pod wskazaną lokalizacją

Parameters:
path -
value -
Throws:
ConfigException


Copyright © 2013. All Rights Reserved.