SessionContext i przechowywanie obiektów o wartości null
Cześć.
Mam takie rozważanie na temat SessionContext i przechowywania obiektów:
w obecnej implementacji nie ma możliwości rozróżnienia czy do kontektu w
ogóle został wrzucony obiekt czy został wrzucony obiekt o wartości null.
Innymi słowy chodzi mi o to że jeżeli pewna zmienna ma wartość null to
jest to też pewna informacja, ale do kontektsu niestety nie da się jej
wrzucić - labeo się wywala z komunikatem:
During hook execution:
java.lang.NullPointerException
at
net.labeo.internal.webcore.SessionContextStoreImpl$SessionContextImpl.clone(SessionContextStoreImpl.java:396)
at
net.labeo.internal.webcore.SessionContextStoreImpl.setContextId(SessionContextStoreImpl.java:129)
at net.labeo.internal.webcore.RunDataImpl.setContextId(RunDataImpl.java:847)
at
net.labeo.internal.webcore.WebcoreServiceImpl.prepareRunData(WebcoreServiceImpl.java:775)
at
net.labeo.internal.webcore.WebcoreServiceImpl.doRequest(WebcoreServiceImpl.java:597)
Przedstawię jeszcze w trzech słowach po co tak kombinuje: chcę do listy
dodać opcję filtrowania w zależności od dat. Daty są przechowane jako
java.sql.Timestamp i jako takie chciałbym je rzucać do kontekstu. Może
się zdarzyć że ktoś nie życzy sobie tego filtrowania i wtedy moje
wartości związane z datami są równe "null" i jako takie chciałem je
wepchnąć do kontekstu. Rozwiązanie okrężne jakie widzę to przechowanie
dodatkowych znaczników określających czy filtr jest aktywny i, jeżeli
nie, po prostu nie wstawiać żadnej daty do kontekstu. Ale jest to
rozwiązania troszeczkę nadmiarowe.
Pytanie 1: czy ktoś rozumie mój problem i czy sądzicie że jest sens
umożliwiać wpisywanie do kontekstu obiektów o wartości null?
Pytanie 2: czy możliwe jest dodanie do ContextSession metody
containsAttribute(String name) i poprawienie błędu przedstawionego
powyżej? Pytanie najprawdopodobniej do Rafała, ale jeżeli nie jest to
niemożliwe to mogę się tego podjąć.
Pozdrawiam,
Marek.
Reply to: