AdministrationController.java
// license-header java merge-point
// Generated by andromda-jsf cartridge (controllers\Controller.java.vsl) DO NOT EDIT!
package org.andromda.samples.carrental.admins.web.main;
import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;
import org.andromda.samples.carrental.ControllerBase;
import org.andromda.samples.carrental.JsfUtils;
import org.andromda.samples.carrental.ServiceLocator;
import org.andromda.samples.carrental.admins.AdminService;
import org.andromda.samples.carrental.admins.web.admin.AdminAdminController;
import org.andromda.samples.carrental.contracts.web.handOut.HandOutCarController;
import org.andromda.samples.carrental.contracts.web.reserveCar.CustomerReservesCarController;
import org.andromda.samples.carrental.contracts.web.returnCar.ReturnCarController;
import org.andromda.samples.carrental.inventory.web.registerCar.RegisterCarController;
import org.andromda.samples.carrental.inventory.web.registerCarType.RegisterCarTypeController;
/**
* <p>
* This Controller allows the user to log in as an administrator. It call the AdminService on the
* server
* </p>
*/
public abstract class AdministrationController
extends ControllerBase
implements Serializable
{
/**
* The serial version UID of this class. Needed for serialization.
*/
private static final long serialVersionUID = 1L;
/**
* Returns an instance from the JSF context
*
*/
public static AdministrationController instance()
{
return (AdministrationController)JsfUtils.resolveVariable("administrationController");
}
/**
* Populate action form and page variables
*
* @param currentView the current view
* @param forward the forward view
* @param sourceForm the source form
* @throws IllegalAccessException
* @throws InvocationTargetException
* @throws NoSuchMethodException
*/
private void populateActionFormsAndPageVariables(final String currentView, String forward, final Object sourceForm) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
{
if(forward == null)
{
forward=currentView;
}
final Map<String,Object> pageVariables=this.getPageVariables(forward);
if("/org/andromda/samples/carrental/admins/web/main/administrator-main-menu.jsf".equals(forward))
{
AdministrationViewPopulator.populateForm(sourceForm,this.getAdministratorMainMenuEditCarTypeForm());
AdministrationViewPopulator.populateForm(sourceForm,this.getAdministratorMainMenuEditCarForm());
AdministrationViewPopulator.populateAdministratorMainMenuPageVariables(sourceForm,pageVariables);
}
ControllerBase.getUseCaseScope().put(CURRENT_PAGE_VARIABLES_KEY, pageVariables);
}
/**
* <p>
* TODO: Model Documentation for
* org.andromda.samples.carrental.admins.web.main.loadCarAndCarTypes
* </p>
*
* @param form the associated form
* @throws Throwable
*/
public abstract void loadCarAndCarTypes(LoadCarAndCarTypesForm form)
throws Throwable;
/**
* <p>
* TODO: Model Documentation for returnCar
* </p>
* This method is called when 'returnCar' is triggered in the view 'Administrator Main Menu'.
* It can be safely overridden in descendant classes.
*/
protected void _administratorMainMenu_returnCar()
{
//this method can be overridden
}
/**
* Retrieves administratorMainMenuReturnCar()
*
* @return administratorMainMenuReturnCar
* @throws Throwable
*/
public String administratorMainMenuReturnCar()
throws Throwable
{
this.setLastPostedFormClientId("administrationAdministratorMainMenuReturnCarForm");
String forward=null;
forward=((ReturnCarController)JsfUtils.resolveVariable("returnCarController")).startUseCase();
return forward;
}
/**
* <p>
* TODO: Model Documentation for newCarType
* </p>
* This method is called when 'newCarType' is triggered in the view 'Administrator Main Menu'.
* It can be safely overridden in descendant classes.
*/
protected void _administratorMainMenu_newCarType()
{
//this method can be overridden
}
/**
* Retrieves administratorMainMenuNewCarType()
*
* @return administratorMainMenuNewCarType
* @throws Throwable
*/
public String administratorMainMenuNewCarType()
throws Throwable
{
this.setLastPostedFormClientId("administrationAdministratorMainMenuNewCarTypeForm");
String forward=null;
forward=((RegisterCarTypeController)JsfUtils.resolveVariable("registerCarTypeController")).startUseCase();
return forward;
}
/**
* <p>
* TODO: Model Documentation for newCar
* </p>
* This method is called when 'newCar' is triggered in the view 'Administrator Main Menu'.
* It can be safely overridden in descendant classes.
*/
protected void _administratorMainMenu_newCar()
{
//this method can be overridden
}
/**
* Retrieves administratorMainMenuNewCar()
*
* @return administratorMainMenuNewCar
* @throws Throwable
*/
public String administratorMainMenuNewCar()
throws Throwable
{
this.setLastPostedFormClientId("administrationAdministratorMainMenuNewCarForm");
String forward=null;
forward=((RegisterCarController)JsfUtils.resolveVariable("registerCarController")).startUseCase();
return forward;
}
/**
* <p>
* TODO: Model Documentation for adminstrators
* </p>
* This method is called when 'adminstrators' is triggered in the view 'Administrator Main Menu'.
* It can be safely overridden in descendant classes.
*/
protected void _administratorMainMenu_adminstrators()
{
//this method can be overridden
}
/**
* Retrieves administratorMainMenuAdminstrators()
*
* @return administratorMainMenuAdminstrators
* @throws Throwable
*/
public String administratorMainMenuAdminstrators()
throws Throwable
{
this.setLastPostedFormClientId("administrationAdministratorMainMenuAdminstratorsForm");
String forward=null;
forward=((AdminAdminController)JsfUtils.resolveVariable("adminAdminController")).startUseCase();
return forward;
}
/**
* <p>
* TODO: Model Documentation for reserveCar
* </p>
* This method is called when 'reserveCar' is triggered in the view 'Administrator Main Menu'.
* It can be safely overridden in descendant classes.
*/
protected void _administratorMainMenu_reserveCar()
{
//this method can be overridden
}
/**
* Retrieves administratorMainMenuReserveCar()
*
* @return administratorMainMenuReserveCar
* @throws Throwable
*/
public String administratorMainMenuReserveCar()
throws Throwable
{
this.setLastPostedFormClientId("administrationAdministratorMainMenuReserveCarForm");
String forward=null;
forward=((CustomerReservesCarController)JsfUtils.resolveVariable("customerReservesCarController")).startUseCase();
return forward;
}
/**
* <p>
* TODO: Model Documentation for HandOut
* </p>
* This method is called when 'HandOut' is triggered in the view 'Administrator Main Menu'.
* It can be safely overridden in descendant classes.
*/
protected void _administratorMainMenu_handOut()
{
//this method can be overridden
}
/**
* Retrieves administratorMainMenuHandOut()
*
* @return administratorMainMenuHandOut
* @throws Throwable
*/
public String administratorMainMenuHandOut()
throws Throwable
{
this.setLastPostedFormClientId("administrationAdministratorMainMenuHandOutForm");
String forward=null;
forward=((HandOutCarController)JsfUtils.resolveVariable("handOutCarController")).startUseCase();
return forward;
}
/**
* Retrieves the {@link AdministratorMainMenuEditCarTypeFormImpl} form instance
*
* @return AdministratorMainMenuEditCarTypeFormImpl
*/
protected AdministratorMainMenuEditCarTypeFormImpl getAdministratorMainMenuEditCarTypeForm()
{
return (AdministratorMainMenuEditCarTypeFormImpl)JsfUtils.resolveVariable("administrationAdministratorMainMenuEditCarTypeForm");
}
/**
* <p>
* TODO: Model Documentation for editCarType
* </p>
* This method is called when 'editCarType' is triggered in the view 'Administrator Main Menu'.
* It can be safely overridden in descendant classes.
*
* @param form the associated form
*/
protected void _administratorMainMenu_editCarType(AdministratorMainMenuEditCarTypeFormImpl form)
{
//this method can be overridden
}
/**
* Retrieves administratorMainMenuEditCarType()
*
* @return administratorMainMenuEditCarType
* @throws Throwable
*/
public String administratorMainMenuEditCarType()
throws Throwable
{
this.setLastPostedFormClientId("administrationAdministratorMainMenuEditCarTypeForm");
String forward=null;
this.getAdministratorMainMenuEditCarTypeForm().copyTo(getUseCaseParameters());
forward=((RegisterCarTypeController)JsfUtils.resolveVariable("registerCarTypeController")).startUseCase();
return forward;
}
/**
* Retrieves the {@link AdministratorMainMenuEditCarFormImpl} form instance
*
* @return AdministratorMainMenuEditCarFormImpl
*/
protected AdministratorMainMenuEditCarFormImpl getAdministratorMainMenuEditCarForm()
{
return (AdministratorMainMenuEditCarFormImpl)JsfUtils.resolveVariable("administrationAdministratorMainMenuEditCarForm");
}
/**
* <p>
* TODO: Model Documentation for editCar
* </p>
* This method is called when 'editCar' is triggered in the view 'Administrator Main Menu'.
* It can be safely overridden in descendant classes.
*
* @param form the associated form
*/
protected void _administratorMainMenu_editCar(AdministratorMainMenuEditCarFormImpl form)
{
//this method can be overridden
}
/**
* Retrieves administratorMainMenuEditCar()
*
* @return administratorMainMenuEditCar
* @throws Throwable
*/
public String administratorMainMenuEditCar()
throws Throwable
{
this.setLastPostedFormClientId("administrationAdministratorMainMenuEditCarForm");
String forward=null;
this.getAdministratorMainMenuEditCarForm().copyTo(getUseCaseParameters());
forward=((RegisterCarController)JsfUtils.resolveVariable("registerCarController")).startUseCase();
return forward;
}
/**
* Retrieves the {@link AdministrationFormImpl} form instance
*
* @return AdministrationFormImpl
*/
protected AdministrationFormImpl getAdministrationForm()
{
return (AdministrationFormImpl)JsfUtils.resolveVariable("administrationAdministrationForm");
}
/**
* This method is called when the use case 'Administration' starts.
* It can be safely overridden in descendant classes.
*
* @param form the associated form
*/
protected void _administration_started(AdministrationFormImpl form)
{
//this method can be overridden
}
/**
* Retrieves the internal start use case
*
* @return administration
* @throws Throwable
*/
protected String internalStartUseCase(Map<String,Object> useCaseParameters)
throws Throwable
{
this.setLastPostedFormClientId("administrationAdministrationForm");
String forward=null;
final AdministrationFormImpl form =
this.getAdministrationForm();
//copy parameters form caller use case
form.copyFrom(useCaseParameters);
//trigger method execution
_administration_started(form);
forward = _preloadData(form);
populateActionFormsAndPageVariables(null,forward,form);
return forward;
}
/**
* <p>
* TODO: Model Documentation for preload data
* </p>
*
* @param form the associated form
* @return the forward view
* @throws Throwable
*/
protected String _preloadData(final AdministrationFormImpl form)
throws Throwable
{
String forward = null;
loadCarAndCarTypes(form);
forward = "/org/andromda/samples/carrental/admins/web/main/administrator-main-menu.jsf";
return forward;
}
/**
* Returns a reference to the AdminService back-end service.
*
* @return ServiceLocator.instance().getAdminService()
*/
protected final AdminService getAdminService()
{
try
{
return ServiceLocator.instance().getAdminService();
}
catch (final Throwable throwable)
{
throw new RuntimeException(throwable);
}
}
}