Expresso 5-6

com.jcorporate.expresso.core.controller
Class DBController

java.lang.Object
  extended byorg.apache.struts.action.Action
      extended bycom.jcorporate.expresso.core.controller.Controller
          extended bycom.jcorporate.expresso.core.controller.DBController
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
ComponentManager, DataTransfer, Download, HealthCheck, ReportServer, RunSQL, RunTests, SecureIfSetController, ServeTextFile, TestController, Upload, XMLController

public abstract class DBController
extends Controller

An extension of the basic Controller object that knows how to connect to a database, and how to read it's own security information for each state

See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.jcorporate.expresso.core.controller.Controller
CONTROLLER_PARAM_KEY, CTL_SUCC_CTL, CTL_SUCC_STATE, CTL_SUCC_TRAN, mLog, NEWSTATE_EXCEPTION_KEY, ORIGINAL_URL_KEY, REQUEST_KEY, RESPONSE_KEY, RETURN_TO_SENDER_TRAN, STATE_ERR_CTL, STATE_ERR_STATE, STATE_ERR_TRAN, STATE_PARAM_KEY, STATE_SUCC_CTL, STATE_SUCC_STATE, STATE_SUCC_TRAN
 
Fields inherited from class org.apache.struts.action.Action
ACTION_SERVLET_KEY, APPLICATION_KEY, DATA_SOURCE_KEY, defaultLocale, ERROR_KEY, EXCEPTION_KEY, FORM_BEANS_KEY, FORWARDS_KEY, LOCALE_KEY, MAPPING_KEY, MAPPINGS_KEY, MESSAGE_KEY, MESSAGES_KEY, MULTIPART_KEY, PLUG_INS_KEY, REQUEST_PROCESSOR_KEY, servlet, SERVLET_KEY, TRANSACTION_TOKEN_KEY
 
Constructor Summary
DBController()
           
 
Method Summary
protected  String getString(String stringCode, Object[] args, ControllerRequest myRequest)
          Deprecated. The getString method from ControllerRequest should be used in *all* cases - this method is not reliable, as the same DBController instance is shared between users.
static boolean isAllowed(ControllerRequest request, DBController controller, String newState)
          for the given controller class and state, can the user in this request access this state?
 boolean stateAllowed(String newState, ControllerRequest myRequest)
          For database controllers, we check if the new state is allowed against the database objects for that purpose
 
Methods inherited from class com.jcorporate.expresso.core.controller.Controller
addFinalState, addPromptTransitions, addRegDomainParamtoSession, addRequestedURLtoSession, addState, addStatePairing, endTimer, execute, findControllerForm, generateToken, getActionForward, getControllerChainingTransition, getControllerSecurityTransition, getFinalState, getInitialState, getLogger, getParamValues, getRequestURL, getSchema, getSchemaHierarchy, getSchemaInstance, getSchemaStack, getState, getStates, getString, getString, getTitle, handleException, instantiate, isFinalState, isHandleState, isPromptState, isTokenValid, loadStateForm, newState, nextHandleState, nextPromptState, populateStateForm, postPerform, prePerform, previousPromptState, processRequestTransitions, processTransitions, redirectRequest, redirectRequest, remapFromExtension, resetToken, saveToken, setControllerChainingTransition, setControllerSecurityTransition, setCurrentState, setInitialState, setSchema, setSchema, setupDefaultValues, setupReturnToSender, setupSubclassLog, transition, transition, transition, unloadStateForm
 
Methods inherited from class org.apache.struts.action.Action
execute, generateToken, getDataSource, getDataSource, getLocale, getResources, getResources, getResources, getServlet, isCancelled, isTokenValid, isTokenValid, perform, perform, resetToken, saveErrors, saveMessages, saveToken, setLocale, setServlet, toHex
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DBController

public DBController()
Method Detail

stateAllowed

public boolean stateAllowed(String newState,
                            ControllerRequest myRequest)
                     throws ControllerException
For database controllers, we check if the new state is allowed against the database objects for that purpose

Overrides:
stateAllowed in class Controller
Parameters:
newState - The name of the new state that is being requested; controller class is assumed to be 'this'
myRequest - the ControllerRequest object
Returns:
True if the state is permitted for this user, else false
Throws:
ControllerException - if another undefined error takes place while checking security.

isAllowed

public static boolean isAllowed(ControllerRequest request,
                                DBController controller,
                                String newState)
                         throws DBException,
                                CacheException
for the given controller class and state, can the user in this request access this state?

Parameters:
request - current request
controller - controller in question
newState - state in question
Returns:
true if state is allowed for user specified in request
Throws:
DBException - upon database error
CacheException - upon error working with the cache system.

getString

protected String getString(String stringCode,
                           Object[] args,
                           ControllerRequest myRequest)
Deprecated. The getString method from ControllerRequest should be used in *all* cases - this method is not reliable, as the same DBController instance is shared between users.

Override the superclass getString, as now we know the user and the DB, and thus can use the language preferences of the user if available.

Parameters:
stringCode - The code in the MessagesBundle to retrieve
args - the i18n formatting arguments
myRequest - the controllerRequest object
Returns:
the properly formatted string

Expresso 5-6

Please see www.jcorporate.com for information about new Expresso releases.