@Autowired
public BasicDetailsServiceImpl(CommonService commonService) {
this.commonService = commonService;
}
@PostConstruct
private void postConstruct() {
// Initialise the ESB endpoints with the configured endpoint
LOG.info(String.format("Initialising ESB endpoints [%s]", BasicDetailsConstants.RBEI_HRM_ESB_ENDPOINT));
// Enable or disable stubbing of the ESB
LOG.info(String.format("%s stubbing...", BasicDetailsConstants.RBEI_HRM_ESB_IS_STUBBED ? "Enabling" : "Disabling"));
}
//Method used to poulate the Dropdowns data and some pre populated text field data
@Override
public void initialiseForm(RequestContext requestContext, PortletRequest portletRequest) {
LOG.debug("Entering initialiseForm" );
//Autopopulate Drop down Data
requestContext.getFlowScope().put("getTitlesStubData", getTitlesStubData());
requestContext.getFlowScope().put("getGendersStubData", getGendersStubData());
requestContext.getFlowScope().put("getCountriesOfBirthStubData", getCountriesOfBirthStubData());
requestContext.getFlowScope().put("getEthnicOriginsStubData", getEthnicOriginsStubData());
requestContext.getFlowScope().put("getNationalitiesStubData", getNationalitiesStubData());
requestContext.getFlowScope().put("getMaritalStatusesStubData", getMaritalStatusesStubData());
//Prepopulate Field Data
BasicModel model = (BasicModel)requestContext.getFlowScope().get("BasicModel");
if(model == null){
model = new BasicModel();
}
model.setEmployeeId("AB1223344S");
model.setHireDate("01-Jan-2000");
model.setNiNumber("AB123456S");
model.setDateOfBirth("12-Dec-1980");
model.setBasicForm(new BasicDetailsForm());
LOG.debug(String.format("Exiting initialiseForm"));
}
//Method used on Add form setting a new BasicDetailsForm
public BasicModel addForm(RequestContext requestContext,
PortletRequest portletRequest) {
LOG.debug("Entering addForm" );
// Get the form from the request if it exists, and if it doesn't, create it
BasicModel basicDetailsForm= (BasicModel)requestContext.getFlowScope().get("BasicModel");
basicDetailsForm.setBasicForm(new BasicDetailsForm());
LOG.debug("Exiting addForm" );
return basicDetailsForm;
}
//Method to Populate the Data for Edit Form & View Form
public void populateForm(RequestContext requestContext,
PortletRequest portletRequest){
LOG.debug("Entring populateForm" );
BasicModel basicModel = (BasicModel)requestContext.getFlowScope().get("BasicModel");
basicModel.setBasicForm(new BasicDetailsForm());
basicModel.setBasicForm(getBasicDetailsStubData());
LOG.debug("Exiting populateForm" );
}
//Method having stub data for titles dropown
private Map<String, String> getTitlesStubData() {
Map<String, String> options = new HashMap<String, String>();
options.put("Doctor", "Doctor");
options.put("Professor", "Professor");
options.put("Mrs", "Mrs");
options.put("Miss", "Miss");
options.put("Mr", "Mr");
return options;
}
//Method having stub data for Marital Status dropown
private Map<String, String> getMaritalStatusesStubData() {
Map<String, String> options = new HashMap<String, String>();
options.put("Separated", "Separated");
options.put("Divorced", "Divorced");
options.put("Single", "Single");
options.put("Widowed", "Widowed");
options.put("Married", "Married");
return options;
}
//Method having stub data for Gender dropown
private Map<String, String> getGendersStubData() {
Map<String, String> options = new HashMap<String, String>();
options.put("Transgender", "Transgender");
options.put("Female", "Female");
options.put("Male", "Male");
return options;
}
//Method having stub data for Countries Of Birth dropown
private Map<String, String> getCountriesOfBirthStubData() {
Map<String, String> options = new HashMap<String, String>();
options.put("United Kingdom", "United Kingdom");
options.put("USA", "USA");
return options;
}
//Method having stub data for Ethnic Origins dropown
private Map<String, String> getEthnicOriginsStubData() {
Map<String, String> options = new HashMap<String, String>();
options.put("White British", "White British");
options.put("White Other", "White Other");
options.put("Asian", "Asian");
options.put("Black Other", "Black Other");
return options;
}
//Method having stub data for Nationalities dropown
private Map<String, String> getNationalitiesStubData() {
Map<String, String> options = new HashMap<String, String>();
options.put("British", "British");
options.put("American", "American");
return options;
}
//StubData that is used to display data on VIEW Page
private BasicDetailsForm getBasicDetailsStubData() {
BasicDetailsForm basicDetails = new BasicDetailsForm();
basicDetails.setCountryOfBirth("GB");
basicDetails.setEffectiveDate("02-Jul-2015");
basicDetails.setEthnicOrigin("WHB");
basicDetails.setFirstName("Emily");
basicDetails.setGender("F");
basicDetails.setLastName("Clark");
basicDetails.setMaidenName("Doran");
basicDetails.setMaritalStatus("D");
basicDetails.setMiddleName("Alice");
basicDetails.setNationality("GB");
basicDetails.setPreferredName("Em");
basicDetails.setPreviousLastName("Doran");
basicDetails.setTitle("MISS");
basicDetails.setWorkEmailAddress("rachel@de.rbei.com");
basicDetails.setTitle("Mr");
basicDetails.setMaritalStatus("Married");
basicDetails.setGender("Male");
basicDetails.setCountryOfBirth("USA");
basicDetails.setEthnicOrigin("Asian");
basicDetails.setNationality("American");
return basicDetails;
}
/**
* Put all the LoV data into the flow scope for populating the select lists
*/
// Validation method for field validations on Add and Edit
@Override
public boolean validateForm(RequestContext requestContext, PortletRequest portletRequest) {
LOG.debug("Entring validateForm" );
BasicModel basicModel = (BasicModel)requestContext.getFlowScope().get("BasicModel");
boolean hasError = false;
// Perform field validation
// effectiveDate;
if (!ValidationUtil.validateDateFormat(basicModel.getBasicForm().getEffectiveDate(), true)) {
commonService.addErrorMessage(EFFECTIVE_DATE_ID, "Invalid effective date", requestContext);
hasError = true;
}
// title;
System.out.println("Title Data: "+basicModel.getBasicForm().getTitle());
if (!ValidationUtil.validateExistsInLoV(getTitlesStubData(), basicModel.getBasicForm().getTitle(), true)) {
commonService.addErrorMessage(TITLE_ID, "Invalid title", requestContext);
hasError = true;
}
// lastName;
// TODO validation rules if we get them
if (StringUtils.isEmpty(basicModel.getBasicForm().getLastName())) {
commonService.addErrorMessage(LAST_NAME_ID, "Invalid last name", requestContext);
hasError = true;
}
// maritalStatus;
if (!ValidationUtil.validateExistsInLoV(getMaritalStatusesStubData(), basicModel.getBasicForm().getMaritalStatus(), true)) {
commonService.addErrorMessage(MARITAL_STATUS_ID, "Invalid marital status", requestContext);
hasError = true;
}
// gender;
if (!ValidationUtil.validateExistsInLoV(getGendersStubData(), basicModel.getBasicForm().getGender(), true)) {
commonService.addErrorMessage(GENDER_ID, "Invalid gender", requestContext);
hasError = true;
}
// countryOfBirth;
if (!ValidationUtil.validateExistsInLoV(getCountriesOfBirthStubData(), basicModel.getBasicForm().getCountryOfBirth(), true)) {
commonService.addErrorMessage(COUNTRY_OF_BIRTH_ID, "Invalid country of birth", requestContext);
hasError = true;
}
// ethnicOrigin;
if (!ValidationUtil.validateExistsInLoV(getEthnicOriginsStubData(), basicModel.getBasicForm().getEthnicOrigin(), true)) {
commonService.addErrorMessage(ETHNIC_ORIGIN_ID, "Invalid ethnic origin", requestContext);
hasError = true;
}
// nationality;
if (!ValidationUtil.validateExistsInLoV(getNationalitiesStubData(), basicModel.getBasicForm().getNationality(), true)) {
commonService.addErrorMessage(NATIONALITY_ID, "Invalid nationality", requestContext);
hasError = true;
}
LOG.debug("Exiting validateForm" );
return !hasError;
}
@Override
public boolean submitForm(RequestContext requestContext, PortletRequest portletRequest) {
return true;
}
}
public BasicDetailsServiceImpl(CommonService commonService) {
this.commonService = commonService;
}
@PostConstruct
private void postConstruct() {
// Initialise the ESB endpoints with the configured endpoint
LOG.info(String.format("Initialising ESB endpoints [%s]", BasicDetailsConstants.RBEI_HRM_ESB_ENDPOINT));
// Enable or disable stubbing of the ESB
LOG.info(String.format("%s stubbing...", BasicDetailsConstants.RBEI_HRM_ESB_IS_STUBBED ? "Enabling" : "Disabling"));
}
//Method used to poulate the Dropdowns data and some pre populated text field data
@Override
public void initialiseForm(RequestContext requestContext, PortletRequest portletRequest) {
LOG.debug("Entering initialiseForm" );
//Autopopulate Drop down Data
requestContext.getFlowScope().put("getTitlesStubData", getTitlesStubData());
requestContext.getFlowScope().put("getGendersStubData", getGendersStubData());
requestContext.getFlowScope().put("getCountriesOfBirthStubData", getCountriesOfBirthStubData());
requestContext.getFlowScope().put("getEthnicOriginsStubData", getEthnicOriginsStubData());
requestContext.getFlowScope().put("getNationalitiesStubData", getNationalitiesStubData());
requestContext.getFlowScope().put("getMaritalStatusesStubData", getMaritalStatusesStubData());
//Prepopulate Field Data
BasicModel model = (BasicModel)requestContext.getFlowScope().get("BasicModel");
if(model == null){
model = new BasicModel();
}
model.setEmployeeId("AB1223344S");
model.setHireDate("01-Jan-2000");
model.setNiNumber("AB123456S");
model.setDateOfBirth("12-Dec-1980");
model.setBasicForm(new BasicDetailsForm());
LOG.debug(String.format("Exiting initialiseForm"));
}
//Method used on Add form setting a new BasicDetailsForm
public BasicModel addForm(RequestContext requestContext,
PortletRequest portletRequest) {
LOG.debug("Entering addForm" );
// Get the form from the request if it exists, and if it doesn't, create it
BasicModel basicDetailsForm= (BasicModel)requestContext.getFlowScope().get("BasicModel");
basicDetailsForm.setBasicForm(new BasicDetailsForm());
LOG.debug("Exiting addForm" );
return basicDetailsForm;
}
//Method to Populate the Data for Edit Form & View Form
public void populateForm(RequestContext requestContext,
PortletRequest portletRequest){
LOG.debug("Entring populateForm" );
BasicModel basicModel = (BasicModel)requestContext.getFlowScope().get("BasicModel");
basicModel.setBasicForm(new BasicDetailsForm());
basicModel.setBasicForm(getBasicDetailsStubData());
LOG.debug("Exiting populateForm" );
}
//Method having stub data for titles dropown
private Map<String, String> getTitlesStubData() {
Map<String, String> options = new HashMap<String, String>();
options.put("Doctor", "Doctor");
options.put("Professor", "Professor");
options.put("Mrs", "Mrs");
options.put("Miss", "Miss");
options.put("Mr", "Mr");
return options;
}
//Method having stub data for Marital Status dropown
private Map<String, String> getMaritalStatusesStubData() {
Map<String, String> options = new HashMap<String, String>();
options.put("Separated", "Separated");
options.put("Divorced", "Divorced");
options.put("Single", "Single");
options.put("Widowed", "Widowed");
options.put("Married", "Married");
return options;
}
//Method having stub data for Gender dropown
private Map<String, String> getGendersStubData() {
Map<String, String> options = new HashMap<String, String>();
options.put("Transgender", "Transgender");
options.put("Female", "Female");
options.put("Male", "Male");
return options;
}
//Method having stub data for Countries Of Birth dropown
private Map<String, String> getCountriesOfBirthStubData() {
Map<String, String> options = new HashMap<String, String>();
options.put("United Kingdom", "United Kingdom");
options.put("USA", "USA");
return options;
}
//Method having stub data for Ethnic Origins dropown
private Map<String, String> getEthnicOriginsStubData() {
Map<String, String> options = new HashMap<String, String>();
options.put("White British", "White British");
options.put("White Other", "White Other");
options.put("Asian", "Asian");
options.put("Black Other", "Black Other");
return options;
}
//Method having stub data for Nationalities dropown
private Map<String, String> getNationalitiesStubData() {
Map<String, String> options = new HashMap<String, String>();
options.put("British", "British");
options.put("American", "American");
return options;
}
//StubData that is used to display data on VIEW Page
private BasicDetailsForm getBasicDetailsStubData() {
BasicDetailsForm basicDetails = new BasicDetailsForm();
basicDetails.setCountryOfBirth("GB");
basicDetails.setEffectiveDate("02-Jul-2015");
basicDetails.setEthnicOrigin("WHB");
basicDetails.setFirstName("Emily");
basicDetails.setGender("F");
basicDetails.setLastName("Clark");
basicDetails.setMaidenName("Doran");
basicDetails.setMaritalStatus("D");
basicDetails.setMiddleName("Alice");
basicDetails.setNationality("GB");
basicDetails.setPreferredName("Em");
basicDetails.setPreviousLastName("Doran");
basicDetails.setTitle("MISS");
basicDetails.setWorkEmailAddress("rachel@de.rbei.com");
basicDetails.setTitle("Mr");
basicDetails.setMaritalStatus("Married");
basicDetails.setGender("Male");
basicDetails.setCountryOfBirth("USA");
basicDetails.setEthnicOrigin("Asian");
basicDetails.setNationality("American");
return basicDetails;
}
/**
* Put all the LoV data into the flow scope for populating the select lists
*/
// Validation method for field validations on Add and Edit
@Override
public boolean validateForm(RequestContext requestContext, PortletRequest portletRequest) {
LOG.debug("Entring validateForm" );
BasicModel basicModel = (BasicModel)requestContext.getFlowScope().get("BasicModel");
boolean hasError = false;
// Perform field validation
// effectiveDate;
if (!ValidationUtil.validateDateFormat(basicModel.getBasicForm().getEffectiveDate(), true)) {
commonService.addErrorMessage(EFFECTIVE_DATE_ID, "Invalid effective date", requestContext);
hasError = true;
}
// title;
System.out.println("Title Data: "+basicModel.getBasicForm().getTitle());
if (!ValidationUtil.validateExistsInLoV(getTitlesStubData(), basicModel.getBasicForm().getTitle(), true)) {
commonService.addErrorMessage(TITLE_ID, "Invalid title", requestContext);
hasError = true;
}
// lastName;
// TODO validation rules if we get them
if (StringUtils.isEmpty(basicModel.getBasicForm().getLastName())) {
commonService.addErrorMessage(LAST_NAME_ID, "Invalid last name", requestContext);
hasError = true;
}
// maritalStatus;
if (!ValidationUtil.validateExistsInLoV(getMaritalStatusesStubData(), basicModel.getBasicForm().getMaritalStatus(), true)) {
commonService.addErrorMessage(MARITAL_STATUS_ID, "Invalid marital status", requestContext);
hasError = true;
}
// gender;
if (!ValidationUtil.validateExistsInLoV(getGendersStubData(), basicModel.getBasicForm().getGender(), true)) {
commonService.addErrorMessage(GENDER_ID, "Invalid gender", requestContext);
hasError = true;
}
// countryOfBirth;
if (!ValidationUtil.validateExistsInLoV(getCountriesOfBirthStubData(), basicModel.getBasicForm().getCountryOfBirth(), true)) {
commonService.addErrorMessage(COUNTRY_OF_BIRTH_ID, "Invalid country of birth", requestContext);
hasError = true;
}
// ethnicOrigin;
if (!ValidationUtil.validateExistsInLoV(getEthnicOriginsStubData(), basicModel.getBasicForm().getEthnicOrigin(), true)) {
commonService.addErrorMessage(ETHNIC_ORIGIN_ID, "Invalid ethnic origin", requestContext);
hasError = true;
}
// nationality;
if (!ValidationUtil.validateExistsInLoV(getNationalitiesStubData(), basicModel.getBasicForm().getNationality(), true)) {
commonService.addErrorMessage(NATIONALITY_ID, "Invalid nationality", requestContext);
hasError = true;
}
LOG.debug("Exiting validateForm" );
return !hasError;
}
@Override
public boolean submitForm(RequestContext requestContext, PortletRequest portletRequest) {
return true;
}
}