Class SimpleCrudBaseBean
- java.lang.Object
-
- nl.b3p.commons.services.FormBaseBean
-
- nl.b3p.commons.services.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
-
-
Field Summary
Fields Modifier and Type Field Description static String
CANCEL_BUTTON
static String
CANCELLED_ACTION
static String
DELETE_ACTION
static String
DELETE_BUTTON
static String
EDIT_ACTION
static String
EDIT_BUTTON
static String
INVALID_ACTION
protected org.apache.commons.logging.Log
log
static String
MAIN_MESSAGE
static String
NEW_ACTION
static String
NEW_BUTTON
static String
OK_BUTTON
static String
SAVE_ACTION
static String
SAVE_BUTTON
static String
START_ACTION
protected static int
TEMPNEW_ID
protected Object
theObject
-
Fields inherited from class nl.b3p.commons.services.FormBaseBean
action, errors, form, isInit, locale, mapping, messages, request, requestParams, response, session, UNKNOWN_ACTION
-
-
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 isprotected 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 newActionprotected void
syncID()
Een concrete implementatie van deze functie synchroniseert het id van het hoofdobject met het id in het strutsformulier.-
Methods inherited from class nl.b3p.commons.services.FormBaseBean
buttonPressed, getAction, getErrors, getForm, getForm, getFormAsBoolean, getFormAsFormFile, getFormAsInteger, getFormAsObject, getFormAsStringArray, getLocale, getMapping, getMessages, getParamAsObject, getParamAsString, getParamAsStringArray, getRequest, getRequestParams, getResponse, getSession, isAction, nullOrEmpty, setAction, setErrors, setForm, setForm, setLocale, setMapping, setMessages, setRequest, setRequestParams, setResponse, setSession
-
-
-
-
Field Detail
-
log
protected org.apache.commons.logging.Log log
-
theObject
protected Object theObject
-
INVALID_ACTION
public static final String INVALID_ACTION
- See Also:
- Constant Field Values
-
CANCELLED_ACTION
public static final String CANCELLED_ACTION
- See Also:
- Constant Field Values
-
START_ACTION
public static final String START_ACTION
- See Also:
- Constant Field Values
-
EDIT_ACTION
public static final String EDIT_ACTION
- See Also:
- Constant Field Values
-
NEW_ACTION
public static final String NEW_ACTION
- See Also:
- Constant Field Values
-
SAVE_ACTION
public static final String SAVE_ACTION
- See Also:
- Constant Field Values
-
DELETE_ACTION
public static final String DELETE_ACTION
- See Also:
- Constant Field Values
-
OK_BUTTON
public static final String OK_BUTTON
- See Also:
- Constant Field Values
-
CANCEL_BUTTON
public static final String CANCEL_BUTTON
- See Also:
- Constant Field Values
-
DELETE_BUTTON
public static final String DELETE_BUTTON
- See Also:
- Constant Field Values
-
NEW_BUTTON
public static final String NEW_BUTTON
- See Also:
- Constant Field Values
-
SAVE_BUTTON
public static final String SAVE_BUTTON
- See Also:
- Constant Field Values
-
EDIT_BUTTON
public static final String EDIT_BUTTON
- See Also:
- Constant Field Values
-
MAIN_MESSAGE
public static final String MAIN_MESSAGE
- See Also:
- Constant Field Values
-
TEMPNEW_ID
protected static int TEMPNEW_ID
-
-
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 isdform
- het struts formulier zelfmapp
- 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 isloc
- de locale zoals door struts bepaaldmess
- de message resources waaruit de foutmelding worden gehaalderr
- de reeks van foutmeldingen, zoals deze tijdens de uitvoer van de functies wordt opgebouwddform
- het struts formulier zelfmapp
- 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 geposttransactionCancelled
- wordt true indien de cancel knop is gekliktvalidateErrors
- 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 foutmeldingentokenValid
- false indien het formulier 2x gepost wordttransactionCancelled
- 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
-
-