|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectpl.slawas.diffs.TraceCreator
public class TraceCreator
Tracer - klasa narzedziowa do sledzenia zmian osnaczonych annotacjami
Trace
pol. Klasa wykorzystuje metody do kopiowania oparte o
predefiniowane metody z klasy Duplicator
Example: { //... // budowanie historii z uzyciem dynamicznych etykiet zmian TracerParentMock copyNewObject = (TracerParentMock) Tracer.copy(testedObject4Track); getEntityManager().refresh(testedObject4Track); //przygotowanie dynamicznej listy etykiet Hashtable<String, String> labelList = new Hashtable<String, String>(); labelList.put("id", "Identyfikator szefa"); labelList.put("childId", "Identyfikator pracownika"); List<TraceDifference> diffList = Tracer.diff(copyNewObject, testedObject4Track, labelList); // teraz mozna zapisac zmiany w historii List<History> historyList = new ArrayList<History>(); for (TraceDifference diff : diffList) { log.debug("Nowa wartosc: {}", diff.getTargetValue()); log.debug("Stara wartosc: {}", diff.getSourceValue()); History newHistRow = new History(); newHistRow.setNewVal(diff.getTargetValue()); newHistRow.setOldVal(diff.getSourceValue()); historyList.add(newHistRow); } getEntityManager().getTransaction().begin(); ((AresDictionaryDAO) historyDAO).insertList(newHistRow); getEntityManager().getTransaction().commit(); //teraz przywracamy obiekt do nowej wartosci Tracer.copy(testedObject4Track, copyOkClass); //... }
Trace
,
pl.wp.ares.core.entities.TraceId
,
Duplicator
Field Summary | |
---|---|
protected static Logger |
log
|
Constructor Summary | |
---|---|
TraceCreator()
|
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.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 |
setTimeZone(java.util.TimeZone timeZone)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected static final Logger log
Constructor Detail |
---|
public TraceCreator()
Method Detail |
---|
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
Trace
. Metoda nie nadaje sie do kopiowania (klonowania) calych
obiektow, chyba ze wszystkie pola zostana oznaczone wczesniej wymieniona
annotacja.
source
- obiekt do skopiowania (sklonowania)
java.lang.InstantiationException
java.lang.IllegalAccessException
java.lang.IllegalArgumentException
java.lang.SecurityException
java.lang.reflect.InvocationTargetException
java.lang.NoSuchMethodException
Trace
,
Duplicator.copy(Class, Object)
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
Trace
. Metoda nie nadaje sie do kopiowania zawartosci calych
obiektow, chyba ze wszystkie pola zostana oznaczone wczesniej wymieniona
annotacja.
target
- obiekt, do ktorego sa kopiowane wartoscisource
- obiekt, z ktorego sa kopiowane wartosci
java.lang.InstantiationException
java.lang.IllegalAccessException
java.lang.IllegalArgumentException
java.lang.SecurityException
java.lang.reflect.InvocationTargetException
java.lang.NoSuchMethodException
Trace
,
Duplicator.copy(Class, Object, Object, int)
public static java.util.List<ObjectsDifference> diff(java.lang.Object target, java.lang.Object source) throws java.lang.Exception
Trace
. 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.
target
- nowa wartoscsource
- stara wartosc
java.lang.Exception
Id
,
Trace
,
ObjectsDifference
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
Trace
. 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.
target
- nowa wartoscsource
- stara wartosclabelList
- hashtable z etykietami zmian pol
java.lang.Exception
Id
,
Trace
,
ObjectsDifference
public static boolean equals(java.lang.Object target, java.lang.Object source) throws java.lang.Exception
Trace
. 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 Track. 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.
target
- nowa wartoscsource
- stara wartosc
java.lang.Exception
Id
,
Trace
,
ObjectsDifference
public static java.util.TimeZone getTimeZone()
public static void setTimeZone(java.util.TimeZone timeZone)
timeZone
- the timeZone to set
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |