Class SimpleCrudBaseBean


  • public abstract class SimpleCrudBaseBean
    extends FormBaseBean
    Deze class maakt het mogelijk om een records in een database hoofdtabel te bewerken, wissen of nieuw aan te maken.

    Version:
    $Revision: 1.0 $ $Date: 2005/05/17 12:48:31 $
    Author:
    Chris van Lith
    • Constructor Summary

      Constructors 
      Constructor Description
      SimpleCrudBaseBean​(javax.servlet.http.HttpServletRequest req, Locale loc, org.apache.struts.util.MessageResources mess, org.apache.struts.action.ActionMessages err, org.apache.struts.validator.DynaValidatorForm dform, org.apache.struts.action.ActionMapping mapp)
      De constructor bepaalt uit de request de parameters welke gepost zijn en slaat deze lokaal op.
      SimpleCrudBaseBean​(javax.servlet.http.HttpServletRequest req, org.apache.struts.validator.DynaValidatorForm dform, org.apache.struts.action.ActionMapping mapp)
      Deze minimale constructor kent geen locale instelling, geen message resources en geen foutterugmelding en zal niet vaak gebruikt worden.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void createLists()
      Elk struts formulier maakt gebruik van een aantal lijsten.
      protected org.apache.struts.action.ActionForward deleteAction()
      Het hoofdrecord met alle bijbehorende subrecords wordt gewist.
      protected void deleteObject()
      Een concrete implementatie van deze functie moet het hoofdobject verwijderen uit de database, alle afhankelijke subrecords dienen vooraf al verwijderd te of the database moet on delete cascade in gesteld hebben.
      protected org.apache.struts.action.ActionErrors determineAction​(boolean tokenValid, boolean transactionCancelled, org.apache.struts.action.ActionErrors validateErrors)
      Deze functie bepaalt de waarde van action.
      protected void determineNewAction()
      Deze functie vult de nieuwe actie in op het struts form, zodat de volgende ronde hiermee gewerkt wordt.
      protected void determineObjects()
      Deze functie haalt het hoofdobject op en de subobjecten worden in een array bewaard voor gebruik later.
      protected org.apache.struts.action.ActionForward doCreateAction()
      Deze functie checkt of de NEW_ACTION moet worden uitgevoerd.
      protected org.apache.struts.action.ActionForward doDeleteAction()
      Deze functie checkt of de DELETE_ACTION moet worden uitgevoerd.
      protected org.apache.struts.action.ActionForward doEditAction​(org.apache.struts.action.ActionErrors validateErrors)
      Deze functie checkt of de EDIT_ACTION moet worden uitgevoerd.
      protected org.apache.struts.action.ActionForward doSaveAction​(org.apache.struts.action.ActionErrors validateErrors)
      Deze functie checkt of de SAVE_ACTION moet worden uitgevoerd.
      protected String getMainID()
      Een concrete implementatie van deze functie haalt het id op van de hoofdtabel uit het struts formulier dat getoond wordt, bijvoorbeeld via: return getForm("id");
      protected Object getMainObject()
      Een concrete implementatie van deze functie haalt het eerst het id op van de hoofdrecord uit het struts formulier dat getoond wordt, bijvoorbeeld via: int id = getMainObjectID(); Vervolgens wordt het bijbehorende object (persistence laag class) welke een record uit de tabel beschrijft opgehaald, bijvoorbeeld via: return hsession.createQuery("from tabel where id = id");
      protected String getNewAction()
      Tijdens de uitvoer van de functies zal een nieuwe actie berekend worden voor de volgende post.
      protected Object getNewObject()
      Een concrete implementatie van deze functie zorgt ervoor dat een nieuw persistent object wordt aangemaakt voor de hoofdtabel.
      boolean isAllowEdits()
      Configuratie parameter van EditBaseBean welke bepaalt of de bebruiker de records mag editten of niet.
      boolean isDirectDelete()
      Configuratie parameter van EditBaseBean welke bepaalt of een delete meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).
      boolean isDirectSave()
      Configuratie parameter van EditBaseBean welke bepaalt of een save meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).
      protected boolean isNewAction​(String lact)
      test of een actie de huidige actie voor de volgende ronde is
      protected void populateForm()
      Een concrete implementatie van deze functie zorgt voor het vullen van het form uit het hoofdobject.
      protected org.apache.struts.action.ActionForward populateMainForm()
      Deze functie vult het hoofdformulier met de bijgewerkte informatie uit de database.
      protected void populateObject()
      Een concrete implementatie van deze functie vult het hoofdobject vanuit het form.
      org.apache.struts.action.ActionForward processAction​(boolean tokenValid, boolean transactionCancelled, org.apache.struts.action.ActionErrors validateErrors)
      Deze functie procest een request, welke is opgeslagen bij de constructie van de bean.
      org.apache.struts.action.ActionForward processLists()  
      protected boolean reduceMainErrors​(org.apache.struts.action.ActionErrors ve)
      Deze functie verwijdert de niet relevante errors uit de lijst door te kijken naar de velden (properties) die in het form aanwezig zijn.
      protected org.apache.struts.action.ActionForward saveAction​(org.apache.struts.action.ActionErrors validateErrors)
      Deze functie voert de SAVE_ACTION uit.
      void setAllowEdits​(boolean allowEdits)
      Configuratie parameter van EditBaseBean welke bepaalt of de bebruiker de records mag editten of niet.
      void setDirectDelete​(boolean directDelete)
      Configuratie parameter van EditBaseBean welke bepaalt of een delete meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).
      void setDirectSave​(boolean directSave)
      Configuratie parameter van EditBaseBean welke bepaalt of een save meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).
      protected void setID​(String id)
      Een concrete implementatie van deze functie plaatst een nieuw id in het id veld.
      protected void setNewAction​(String newAction)
      setter voor newAction
      protected void syncID()
      Een concrete implementatie van deze functie synchroniseert het id van het hoofdobject met het id in het strutsformulier.
    • Constructor Detail

      • SimpleCrudBaseBean

        public SimpleCrudBaseBean​(javax.servlet.http.HttpServletRequest req,
                                  org.apache.struts.validator.DynaValidatorForm dform,
                                  org.apache.struts.action.ActionMapping mapp)
        Deze minimale constructor kent geen locale instelling, geen message resources en geen foutterugmelding en zal niet vaak gebruikt worden.

        Parameters:
        req - de request waarmee het struts formulier gepost is
        dform - het struts formulier zelf
        mapp - de mapping voor deze struts action
      • SimpleCrudBaseBean

        public SimpleCrudBaseBean​(javax.servlet.http.HttpServletRequest req,
                                  Locale loc,
                                  org.apache.struts.util.MessageResources mess,
                                  org.apache.struts.action.ActionMessages err,
                                  org.apache.struts.validator.DynaValidatorForm dform,
                                  org.apache.struts.action.ActionMapping mapp)
        De constructor bepaalt uit de request de parameters welke gepost zijn en slaat deze lokaal op. Hiernaast wordt het struts formulier zelf lokaal opgeslagen.

        Indien locale, message resources en foutterugmelding null zijn, wordt een default waarde hiervoor vastgesteld, zodat de class verder kan functioneren.

        Parameters:
        req - de request waarmee het struts formulier gepost is
        loc - de locale zoals door struts bepaald
        mess - de message resources waaruit de foutmelding worden gehaald
        err - de reeks van foutmeldingen, zoals deze tijdens de uitvoer van de functies wordt opgebouwd
        dform - het struts formulier zelf
        mapp - de mapping voor deze struts action
    • Method Detail

      • processAction

        public org.apache.struts.action.ActionForward processAction​(boolean tokenValid,
                                                                    boolean transactionCancelled,
                                                                    org.apache.struts.action.ActionErrors validateErrors)
        Deze functie procest een request, welke is opgeslagen bij de constructie van de bean.

        Afhankelijk van de waarde van action en de waarden in de request wordt een record in de tabel bewerkt, gewist of nieuw aangemaakt.

        In deze functie worden een aantal functies aangeroepen, die weer abstracte functies aanroepen die bij een concrete implementatie moeten worden gedefinieerd.

        Parameters:
        tokenValid - wordt false indien dit formulier een tweede keer wordt gepost
        transactionCancelled - wordt true indien de cancel knop is geklikt
        validateErrors - bevat alle validatie errors, zoals door struts vastgesteld
        Returns:
        een struts actionforward, zoals door deze functie vastgesteld.
      • processLists

        public org.apache.struts.action.ActionForward processLists()
      • determineAction

        protected org.apache.struts.action.ActionErrors determineAction​(boolean tokenValid,
                                                                        boolean transactionCancelled,
                                                                        org.apache.struts.action.ActionErrors validateErrors)
        Deze functie bepaalt de waarde van action. Indien er nog geen action gedefinieerd is krijgt deze de waarde START_ACTION. Deze functie weet dan dat er niet op token gecontroleerd moet worden. Als de cancel knop is geklikt dan wordt de action veranderd in CANCELLED_ACTION. De waarde voor newAction, de action voor de volgende ronde, komt default op EDIT_ACTION; dit kan later nog worden aangepast.

        Parameters:
        validateErrors - bekende foutmeldingen
        tokenValid - false indien het formulier 2x gepost wordt
        transactionCancelled - true als de cancel knop geklikt is
        Returns:
        foutenmeldingen van formulier
      • determineObjects

        protected void determineObjects()
        Deze functie haalt het hoofdobject op en de subobjecten worden in een array bewaard voor gebruik later.
      • doCreateAction

        protected org.apache.struts.action.ActionForward doCreateAction()
        Deze functie checkt of de NEW_ACTION moet worden uitgevoerd. Afhankelijk van het feit of het record nieuw of bestaand is krijgt de gebruiker een melding. Het daadwerkelijke opslaan volgt in de volgende ronde, indien de PROCESS_ACTION wordt uitgevoerd.

        Returns:
        altijd null
      • doDeleteAction

        protected org.apache.struts.action.ActionForward doDeleteAction()
        Deze functie checkt of de DELETE_ACTION moet worden uitgevoerd. Het hoofdrecord met alle bijbehorende subrecords wordt dan gewist. In de vorige ronde is een waarschuwing gegeven!

        Returns:
        niet null bij fouten
      • deleteAction

        protected org.apache.struts.action.ActionForward deleteAction()
        Het hoofdrecord met alle bijbehorende subrecords wordt gewist. In de vorige ronde is een waarschuwing gegeven!

        Returns:
        niet null bij fouten
      • doSaveAction

        protected org.apache.struts.action.ActionForward doSaveAction​(org.apache.struts.action.ActionErrors validateErrors)
        Deze functie checkt of de SAVE_ACTION moet worden uitgevoerd.

        Parameters:
        validateErrors - zoals deze door struts zijn vastgesteld
        Returns:
        niet null bij validatie errors
      • saveAction

        protected org.apache.struts.action.ActionForward saveAction​(org.apache.struts.action.ActionErrors validateErrors)
        Deze functie voert de SAVE_ACTION uit. Er wordt gecontroleerd of struts fouten in de invoer van het formulier heeft geconstateerd. Als dit zo is wordt verder verwerking afgebroken en gaat men meteen terug naar het formulier. Als er geen fouten zijn dan wordt de database gevuld met de informatie in het formulier.

        Parameters:
        validateErrors - zoals deze door struts zijn vastgesteld
        Returns:
        niet null bij validatie errors
      • doEditAction

        protected org.apache.struts.action.ActionForward doEditAction​(org.apache.struts.action.ActionErrors validateErrors)
        Deze functie checkt of de EDIT_ACTION moet worden uitgevoerd. Dit is de hoofdactie van het formulier. Meestal wordt vanuit deze actie een nieuwe actie gestart, de gebruiker krijgt dan bij de volgende ronde een melding en de gewenste actie kan dan worden afgemaakt.

        Vanuit de EDIT_ACTION kan het hoofdrecord in de volgende ronde bewerkt, gewist of nieuw gemaakt worden. Ook kan een many-to-many koppeling worden gemaakt of verbroken.

        Parameters:
        validateErrors - foutenmeldingen van formulier
        Returns:
        altijd null
      • populateMainForm

        protected org.apache.struts.action.ActionForward populateMainForm()
        Deze functie vult het hoofdformulier met de bijgewerkte informatie uit de database.

        Returns:
        niet null bij fouten
      • reduceMainErrors

        protected boolean reduceMainErrors​(org.apache.struts.action.ActionErrors ve)
        Deze functie verwijdert de niet relevante errors uit de lijst door te kijken naar de velden (properties) die in het form aanwezig zijn.

        Parameters:
        ve -
        Returns:
        true indien relevante fouten
      • determineNewAction

        protected void determineNewAction()
        Deze functie vult de nieuwe actie in op het struts form, zodat de volgende ronde hiermee gewerkt wordt.

      • getNewAction

        protected String getNewAction()
        Tijdens de uitvoer van de functies zal een nieuwe actie berekend worden voor de volgende post. Deze nieuwe actie wordt hieropgeslagen en juist voor het beeindigen van de process-functie wordt het action-veld op deze nieuwe waarde gezet, zodat het formulier de volgende keer deze actie zal hebben.

        Returns:
        nieuwe actie voor de ronde
      • setNewAction

        protected void setNewAction​(String newAction)
        setter voor newAction
        Parameters:
        newAction - zet een nieuwe actie voor de volgende ronde
      • isNewAction

        protected boolean isNewAction​(String lact)
        test of een actie de huidige actie voor de volgende ronde is
        Parameters:
        lact - te testen actie
        Returns:
        true indien huidige actie voor de volgende ronde gelijk is aan de te testen actie
      • getMainID

        protected String getMainID()
                            throws B3pCommonsException
        Een concrete implementatie van deze functie haalt het id op van de hoofdtabel uit het struts formulier dat getoond wordt, bijvoorbeeld via: return getForm("id");

        Returns:
        het id of null, indien onbekend
        Throws:
        B3pCommonsException - bij fouten
      • getMainObject

        protected Object getMainObject()
                                throws B3pCommonsException
        Een concrete implementatie van deze functie haalt het eerst het id op van de hoofdrecord uit het struts formulier dat getoond wordt, bijvoorbeeld via: int id = getMainObjectID(); Vervolgens wordt het bijbehorende object (persistence laag class) welke een record uit de tabel beschrijft opgehaald, bijvoorbeeld via: return hsession.createQuery("from tabel where id = id");

        Returns:
        het tabelobject
        Throws:
        B3pCommonsException - bij fouten
      • getNewObject

        protected Object getNewObject()
                               throws B3pCommonsException
        Een concrete implementatie van deze functie zorgt ervoor dat een nieuw persistent object wordt aangemaakt voor de hoofdtabel.

        Returns:
        het nieuwe persistent object
        Throws:
        B3pCommonsException - bij fouten
      • setID

        protected void setID​(String id)
                      throws B3pCommonsException
        Een concrete implementatie van deze functie plaatst een nieuw id in het id veld. Indien subid null is, wordt het veld leeg gemaakt.

        Parameters:
        id - waarde van nieuw id
        Throws:
        B3pCommonsException - bij fouten
      • syncID

        protected void syncID()
                       throws B3pCommonsException
        Een concrete implementatie van deze functie synchroniseert het id van het hoofdobject met het id in het strutsformulier.

        De code kan er als volgt uitzien: if (theObject!=null) { int id = ((Cast)theObject).getId(); setID(id); } else { setID(null); }

        Throws:
        B3pCommonsException - bij fouten
      • deleteObject

        protected void deleteObject()
                             throws B3pCommonsException
        Een concrete implementatie van deze functie moet het hoofdobject verwijderen uit de database, alle afhankelijke subrecords dienen vooraf al verwijderd te of the database moet on delete cascade in gesteld hebben.

        Throws:
        B3pCommonsException - bij fouten
      • populateObject

        protected void populateObject()
                               throws B3pCommonsException
        Een concrete implementatie van deze functie vult het hoofdobject vanuit het form.

        Throws:
        B3pCommonsException - bij fouten
      • populateForm

        protected void populateForm()
                             throws B3pCommonsException
        Een concrete implementatie van deze functie zorgt voor het vullen van het form uit het hoofdobject.

        Throws:
        B3pCommonsException - bij fouten
      • createLists

        protected void createLists()
                            throws B3pCommonsException
        Elk struts formulier maakt gebruik van een aantal lijsten. Ieder dropdown zal via een lijst gevuld worden. Bij gebruik van subtabellen zal voor iedere subtabel een lijst gemaakt moeten worden waarin alle subrecords staan die bij het huidige hoofdrecord horen. Deze lijsten worden op de sessie gezet en door het formulier later gebruikt.

        De namen van de lijsten moeten afgestemd worden met het gebruik in de jsp's waarin het struts formulier wordt gebruikt.

        Throws:
        B3pCommonsException - bij fout ophalen lijsten
      • isDirectSave

        public boolean isDirectSave()
        Configuratie parameter van EditBaseBean welke bepaalt of een save meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).
        Returns:
        meteen bewaren of niet
      • setDirectSave

        public void setDirectSave​(boolean directSave)
        Configuratie parameter van EditBaseBean welke bepaalt of een save meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).
        Parameters:
        directSave - meteen bewaren of niet
      • isDirectDelete

        public boolean isDirectDelete()
        Configuratie parameter van EditBaseBean welke bepaalt of een delete meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).
        Returns:
        meteen wissen of niet
      • setDirectDelete

        public void setDirectDelete​(boolean directDelete)
        Configuratie parameter van EditBaseBean welke bepaalt of een delete meteen (true) moet worden uitgevoerd of pas na een waarschuwing (false).
        Parameters:
        directDelete - meteen wissen of niet
      • isAllowEdits

        public boolean isAllowEdits()
        Configuratie parameter van EditBaseBean welke bepaalt of de bebruiker de records mag editten of niet. Indien niet worden de knoppen niet actief.
        Returns:
        edit of niet
      • setAllowEdits

        public void setAllowEdits​(boolean allowEdits)
        Configuratie parameter van EditBaseBean welke bepaalt of de bebruiker de records mag editten of niet. Indien niet worden de knoppen niet actief.
        Parameters:
        allowEdits - edit of niet