Menu

#22 Implementation of statuses

0.3
open
None
CORE
2014-01-22
2013-12-18
Mirco Gatz
No

Create a feature that allows to handle statuses in a generic way

Requirements:

  • statuses can be defined by every feature
  • statuses can be created by the user to allow them beeing dynamic
  • every status has a group
  • a group allows a status to belong to a dedicated feature
  • every status has a status id
  • statuses should not be extensible (their is not much sense on storing additional data on a status)

Implementation:

  • SQL script for table structure (no extension table)
  • POJO (use simple persitent object as base class)
  • Manager
  • Controller and Views (very basic)

Discussion

  • Michael Kaps

    Michael Kaps - 2014-01-21
    • assigned_to: Michael Kaps
     
  • Michael Kaps

    Michael Kaps - 2014-01-22

    Hi Mirco,

    ich grad ein paar Probleme mit meiner Datenbank, deshalb kann ich meine Implementierung nicht testen.
    Ich hab das jetzt ungetestet eingecheckt, wäre toll wenn du das testen und ggf. anpassen könntest.
    Folgende Punkte sind noch offen/unklar:
    -SerialVersionUID (in Status und StatusNotFoundException): Wozu dient die? (Ich hab erstmal keine definiert.)
    -Welche Spalten sollen denn in der Status-Klasse abgebildet werden? (Die User-Klasse war da als Referenz nicht so aufschlussreich)

    Wenn du das getestet hast, kannst du mir das Ticket zurückgeben.

    Grüße
    Michael

     
  • Michael Kaps

    Michael Kaps - 2014-01-22
    • assigned_to: Michael Kaps --> Mirco Gatz
     
  • Mirco Gatz

    Mirco Gatz - 2014-01-22

    Hallo Micha,

    ich habe erstmal das init.sql Skript gefixt. Setz jetzt einfach mal deine Datenbank neu auf.

    Die SerialVersionUID kannst du einfach in die Klassen machen und auf "1L" setzen. Sie dient der Versionierung einer Klasse falls diese serialisiert wird.

    Ein Status sollte meiner Meinung nach mindestens folgende Eigenschaften (zusätzlich zu den Standards) haben:

    • StatusID NOT NULL
    • Statusgruppe NOT NULL
    • Name NOT NULL
    • Description (verwende hier einen LocalizedString)

    StatusID + Gruppe sollten zusammen jeweils eindeutig sein. Ich denke das lässt sich nicht in der Datenbank festlegen. Daher sollte es dann ggf. der Manager tun. Aber vllt kannst du das einfach nochmal prüfen?!
    Der Name sollte eher interne Verwendung finden (engl. Sprache) während die Description zum Anzeigen ist.
    Da man im Moment nur Byte-Serialisierte Lokalisierungen verwenden kann, die sich nicht sonderlich gut von Hand schreiben lassen, lass das einfach erstmal leer. Ich arbeite an XML-Serialisierung. Dann lassen sich auch solche Werte vorbelegen.

    Gruß Mirco

     
  • Mirco Gatz

    Mirco Gatz - 2014-01-22
    • assigned_to: Mirco Gatz --> Michael Kaps
     

Log in to post a comment.