pl.slawas.diffs
Class PropertyCreator

java.lang.Object
  extended by pl.slawas.diffs.PropertyCreator

public class PropertyCreator
extends java.lang.Object

PropertyCreator - klasa przetwarzajaca obiekt na Properties . Aby mogla tego dokonac w obiekcie musza byc pola z annotacja Property

Version:
$Revision: 1.2.2.2 $
Author:
Slawomir Cichy <slawas@slawas.pl>
See Also:
Property

Field Summary
static java.lang.String ARRAY_TYPE
           
protected static Logger log
           
static java.lang.String PROPERTY_ARRAY_SIZE
           
static java.lang.String PROPERTY_COMPONENT_TYPE
           
static java.lang.String PROPERTY_KEY_TYPE
           
static java.lang.String PROPERTY_TYPE
           
 
Constructor Summary
PropertyCreator()
           
 
Method Summary
static java.lang.Object copy(java.lang.Object source)
          Kopiowanie obiektu do nowej instancji, klonowanie obiektu.
static java.lang.Object copy(java.lang.Object target, java.lang.Object source)
          Kopiowanie wartosci pol z jednego obiektu do drugiego.
static java.lang.Object createFromProperties(java.lang.ClassLoader extendedClassLoader, java.util.Properties properties)
          Metoda tworzaca nowy obiek na podstawie podanych wlaściwości
static java.util.List<ObjectsDifference> diff(java.lang.Object target, java.lang.Object source)
          Metoda do wykonania porownania dwoch obiektow i wygenerowania listy zmian.
static java.util.List<ObjectsDifference> diff(java.lang.Object target, java.lang.Object source, java.util.Hashtable<java.lang.String,java.lang.String> labelList)
          Metoda do wykonania porownania dwoch obiektow i wygenerowania listy zmian.
static boolean equals(java.lang.Object target, java.lang.Object source)
          Porównanie dwóch obiektów.
static java.util.TimeZone getTimeZone()
           
static void resetDateFormats()
          Przywrócenie oryginalnych ustawień formatów daty zdefiniowanych w Duplicator.dateLongFormat oraz Duplicator.dateShortFormat oraz ustwienie domytślnej zony ustawionej w Duplicator.timeZone.
static void setDateLongFormat(java.lang.String dateLongFormat)
          PropertyCreator korzysta z formatu daty umieszczonego w klasie Duplicator.
static void setDateShortFormat(java.lang.String dateShortFormat)
          PropertyCreator korzysta z formatu daty umieszczonego w klasie Duplicator.
static void setTimeZone(java.util.TimeZone timeZone)
           
static java.util.Properties toProperties(java.lang.Object obj)
          Metoda zamieniajaca obiekt do właściwości.
static java.lang.String tryConvertToString(java.lang.Object originalValue)
          Metoda probujaca konwertowac dany typ do string-a.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROPERTY_TYPE

public static final java.lang.String PROPERTY_TYPE
See Also:
Constant Field Values

ARRAY_TYPE

public static final java.lang.String ARRAY_TYPE
See Also:
Constant Field Values

PROPERTY_COMPONENT_TYPE

public static final java.lang.String PROPERTY_COMPONENT_TYPE
See Also:
Constant Field Values

PROPERTY_KEY_TYPE

public static final java.lang.String PROPERTY_KEY_TYPE
See Also:
Constant Field Values

PROPERTY_ARRAY_SIZE

public static final java.lang.String PROPERTY_ARRAY_SIZE
See Also:
Constant Field Values

log

protected static final Logger log
Constructor Detail

PropertyCreator

public PropertyCreator()
Method Detail

copy

public static java.lang.Object copy(java.lang.Object source)
                             throws java.lang.InstantiationException,
                                    java.lang.IllegalAccessException,
                                    java.lang.IllegalArgumentException,
                                    java.lang.SecurityException,
                                    java.lang.reflect.InvocationTargetException,
                                    java.lang.NoSuchMethodException
Kopiowanie obiektu do nowej instancji, klonowanie obiektu. Powstaly obiekt ma skopiowane tylko te pola, dla ktorych ustwiona zostala annotacja Property. Metoda nie nadaje sie do kopiowania (klonowania) calych obiektow, chyba ze wszystkie pola zostana oznaczone wczesniej wymieniona annotacja.

Parameters:
source - obiekt do skopiowania (sklonowania)
Returns:
kopia obiektu
Throws:
java.lang.InstantiationException
java.lang.IllegalAccessException
java.lang.IllegalArgumentException
java.lang.SecurityException
java.lang.reflect.InvocationTargetException
java.lang.NoSuchMethodException
See Also:
Property, Duplicator.copy(Class, Object)

copy

public static java.lang.Object copy(java.lang.Object target,
                                    java.lang.Object source)
                             throws java.lang.InstantiationException,
                                    java.lang.IllegalAccessException,
                                    java.lang.IllegalArgumentException,
                                    java.lang.SecurityException,
                                    java.lang.reflect.InvocationTargetException,
                                    java.lang.NoSuchMethodException
Kopiowanie wartosci pol z jednego obiektu do drugiego. Powstaly obiekt ma skopiowane tylko te pola, dla ktorych ustwiona zostala annotacja Property. Metoda nie nadaje sie do kopiowania zawartosci calych obiektow, chyba ze wszystkie pola zostana oznaczone wczesniej wymieniona annotacja.

Parameters:
target - obiekt, do ktorego sa kopiowane wartosci
source - obiekt, z ktorego sa kopiowane wartosci
Returns:
obiekt, do ktorego sa kopiowane wartosci
Throws:
java.lang.InstantiationException
java.lang.IllegalAccessException
java.lang.IllegalArgumentException
java.lang.SecurityException
java.lang.reflect.InvocationTargetException
java.lang.NoSuchMethodException
See Also:
Property, Duplicator.copy(Class, Object, Object)

diff

public static java.util.List<ObjectsDifference> diff(java.lang.Object target,
                                                     java.lang.Object source)
                                              throws java.lang.Exception
Metoda do wykonania porownania dwoch obiektow i wygenerowania listy zmian. Metoda porownuje tylko wartosci pol, ktore dla ktorych ustwiona zostala annotacja Property. Metoda nie nadaje sie do porownywania zawartosci calych obiektow, chyba ze wszystkie pola zostana oznaczone wczesniej wymieniona annotacja. Jezeli w obiektach wystepuja listy, to aby moc bezblednie je porownac nalezy pamietac o tym, ze w obiektach, ktore beda umieszczone w takiej liscie trzeba dodac annotacje Id przy polu definiujacym unikalny klucz lub przy annotacji podac atrybut 'referencedFieldName', ktore wskażą pole jednoznacznie identyfikujace dany obiekt. Jezeli tego nie zrobimy moga zostać zwrócone nieoczekiwane wyniki.

Parameters:
target - nowa wartosc
source - stara wartosc
Returns:
lista zarejestrowanych zmian
Throws:
java.lang.Exception
See Also:
Id, Property, ObjectsDifference

diff

public static java.util.List<ObjectsDifference> diff(java.lang.Object target,
                                                     java.lang.Object source,
                                                     java.util.Hashtable<java.lang.String,java.lang.String> labelList)
                                              throws java.lang.Exception
Metoda do wykonania porownania dwoch obiektow i wygenerowania listy zmian. Metoda porownuje tylko wartosci pol, ktore dla ktorych ustwiona zostala annotacja Property. Metoda nie nadaje sie do porownywania zawartosci calych obiektow, chyba ze wszystkie pola zostana oznaczone wczesniej wymieniona annotacja. Jezeli w obiektach wystepuja listy, to aby moc bezblednie je porownac nalezy pamietac o tym, ze w obiektach, ktore beda umieszczone w takiej liscie trzeba dodac annotacje Id przy polu definiujacym unikalny klucz lub przy annotacji podac atrybut 'referencedFieldName', ktore wskażą pole jednoznacznie identyfikujace dany obiekt. Jezeli tego nie zrobimy moga zostać zwrócone nieoczekiwane wyniki.

Parameters:
target - nowa wartosc
source - stara wartosc
labelList - hashtable z etykietami zmian pol
Returns:
lista zarejestrowanych zmian
Throws:
java.lang.Exception
See Also:
Id, Property, ObjectsDifference

equals

public static boolean equals(java.lang.Object target,
                             java.lang.Object source)
                      throws java.lang.Exception
Porównanie dwóch obiektów. Metoda porownuje tylko wartosci pol, ktore dla ktorych ustwiona zostala annotacja Property. Metoda nie nadaje sie do porownywania zawartosci calych obiektow, chyba ze wszystkie pola zostana oznaczone wczesniej wymieniona annotacja. Dodatkowo, ze jej pomoca mozna wstrzyknac dynamiczna liste etykiet. Aby to zadzialalo, oczywiscie trzeba podac odpowiednie parametry annotacji Property. Jezeli w obiektach wystepuja listy, to aby moc bezblednie je porownac nalezy pamietac o tym, ze w obiektach, ktore beda umieszczone w takiej liscie trzeba dodac annotacje Id przy polu definiujacym unikalny klucz lub przy annotacji podac atrybut 'referencedFieldName', ktore wskażą pole jednoznacznie identyfikujace dany obiekt. Jezeli tego nie zrobimy moga zostać zwrócone nieoczekiwane wyniki.

Parameters:
target - nowa wartosc
source - stara wartosc
Returns:
[true|false]
Throws:
java.lang.Exception
See Also:
Id, Property, ObjectsDifference

toProperties

public static java.util.Properties toProperties(java.lang.Object obj)
                                         throws java.lang.Exception
Metoda zamieniajaca obiekt do właściwości. Aby metoda była skuteczna pola obiektu musza być opatrzone annotacja Property

Parameters:
obj - przetwarzany obiekt
Returns:
właściwości
Throws:
java.lang.Exception
See Also:
Property

createFromProperties

public static java.lang.Object createFromProperties(java.lang.ClassLoader extendedClassLoader,
                                                    java.util.Properties properties)
                                             throws java.lang.Exception
Metoda tworzaca nowy obiek na podstawie podanych wlaściwości

Parameters:
extendedClassLoader - classLoader przestrzeni (pakietu), który użyje tej funkcji. Jeżeli nie zostanie ustwaiony metoda nie bedzie mogła utworzyć instancji klasy, która jest zdefiniowana poza biblioteką.
properties - wlasciwosci
Returns:
nowy obiekt na podstawie podanych właściwości
Throws:
java.lang.Exception

setDateLongFormat

public static void setDateLongFormat(java.lang.String dateLongFormat)
PropertyCreator korzysta z formatu daty umieszczonego w klasie Duplicator. Niniejsza metoda pozwala na ustawienie formatu daty dlugiej (z godzina) wlasnie w klasie Duplicator.

Parameters:
dateLongFormat - the Duplicator.dateLongFormat to set
See Also:
SimpleDateFormat, Duplicator.dateLongFormat

setDateShortFormat

public static void setDateShortFormat(java.lang.String dateShortFormat)
PropertyCreator korzysta z formatu daty umieszczonego w klasie Duplicator. Niniejsza metoda pozwala na ustawienie formatu daty krótkiej (bez godziny) wlasnie w klasie Duplicator.

Parameters:
dateShortFormat - the Duplicator.dateShortFormat to set
See Also:
SimpleDateFormat, Duplicator.dateShortFormat

getTimeZone

public static java.util.TimeZone getTimeZone()
Returns:
the timeZone

setTimeZone

public static void setTimeZone(java.util.TimeZone timeZone)
Parameters:
timeZone - the timeZone to set

tryConvertToString

public static java.lang.String tryConvertToString(java.lang.Object originalValue)
Metoda probujaca konwertowac dany typ do string-a. Implementacja obejmuje:

Parameters:
originalValue - obiekt wartosci do analizy
Returns:
obiekt skonwertowany lub nie (w zaleznosci od tego czy obiekt oryginalny byl faktycznie data) przekształcony do string-a

resetDateFormats

public static void resetDateFormats()
Przywrócenie oryginalnych ustawień formatów daty zdefiniowanych w Duplicator.dateLongFormat oraz Duplicator.dateShortFormat oraz ustwienie domytślnej zony ustawionej w Duplicator.timeZone.



Copyright © 2014 Sci Software. All Rights Reserved.