/* * Copyright (c) 2005-2011 Grameen Foundation USA * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. * * See also http://www.apache.org/licenses/LICENSE-2.0.html for an * explanation of the license and how it is applied. */ package org.mifos.customers.personnel.struts.actionforms; import java.util.Date; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.apache.commons.validator.GenericValidator; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.mifos.application.util.helpers.Methods; import org.mifos.customers.personnel.util.helpers.PersonnelConstants; import org.mifos.framework.business.util.Address; import org.mifos.framework.business.util.Name; import org.mifos.framework.struts.actionforms.BaseActionForm; import org.mifos.framework.util.helpers.DateUtils; public class PersonnelSettingsActionForm extends BaseActionForm { private String firstName; private String middleName; private String lastName; private String secondLastName; private String emailId; private String governmentIdNumber; private String dob; private String maritalStatus; private String gender; private String preferredLocale; private Short preferredSiteTypeId; private String userName; private Address address; public String getDisplayName() { return getName().getDisplayName(); } public PersonnelSettingsActionForm() { address = new Address(); } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } public String getDob() { return dob; } public Date getDobDateObject() { return DateUtils.getDateAsRetrievedFromDb(dob); } public void setDob(String dob) { this.dob = dob; } public String getEmailId() { return emailId; } public void setEmailId(String emailId) { this.emailId = emailId; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getGovernmentIdNumber() { return governmentIdNumber; } public void setGovernmentIdNumber(String governmentIdNumber) { this.governmentIdNumber = governmentIdNumber; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getMaritalStatus() { return maritalStatus; } public void setMaritalStatus(String maritalStatus) { this.maritalStatus = maritalStatus; } public String getMiddleName() { return middleName; } public void setMiddleName(String middleName) { this.middleName = middleName; } public String getPreferredLocale() { return preferredLocale; } public void setPreferredLocale(String preferredLocale) { this.preferredLocale = preferredLocale; } public String getSecondLastName() { return secondLastName; } public void setSecondLastName(String secondLastName) { this.secondLastName = secondLastName; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getAddressDetails() { return address.getDisplayAddress(); } public Integer getGenderValue() { return getIntegerValue(getGender()); } public Short getPreferredLocaleValue() { return getShortValue(getPreferredLocale()); } public Name getName() { return new Name(firstName, middleName, secondLastName, lastName); } public Integer getMaritalStatusValue() { return getIntegerValue(getMaritalStatus()); } @Override public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); String method = request.getParameter(Methods.method.toString()); if (method.equals(Methods.preview.toString())) { if (StringUtils.isBlank(getFirstName())) { addError(errors, PersonnelConstants.FIRSTNAME, PersonnelConstants.ERRORMANDATORY, PersonnelConstants.FIRST_NAME); } else if (getFirstName().length() > PersonnelConstants.PERSONNELLENGTH) { addError(errors, PersonnelConstants.FIRSTNAME, PersonnelConstants.MAXIMUM_LENGTH, PersonnelConstants.FIRST_NAME, PersonnelConstants.PERSONNELNAMELENGTH); } if (StringUtils.isBlank(getLastName())) { addError(errors, PersonnelConstants.LASTNAME, PersonnelConstants.ERRORMANDATORY, PersonnelConstants.LAST_NAME); } else if (getLastName().length() > PersonnelConstants.PERSONNELLENGTH) { addError(errors, PersonnelConstants.LASTNAME, PersonnelConstants.MAXIMUM_LENGTH, PersonnelConstants.LAST_NAME, PersonnelConstants.PERSONNELNAMELENGTH); } if (StringUtils.isBlank(getGender())) { addError(errors, PersonnelConstants.GENDERVALUE, PersonnelConstants.MANDATORYSELECT, PersonnelConstants.GENDERVALUE); } if (getDisplayName().length() > PersonnelConstants.PERSONNELDISPLAYNAMELENGTH) { addError(errors, PersonnelConstants.DISPLAYNAME, PersonnelConstants.MAXIMUM_LENGTH, PersonnelConstants.DISPLAY_NAME, PersonnelConstants.PERSONNELDISPLAYLENGTH); } validateEmail(errors); } if (!method.equals(Methods.validate.toString())) { request.setAttribute("methodCalled", method); } return errors; } private void validateEmail(ActionErrors errors) { if (StringUtils.isNotBlank(emailId) && !GenericValidator.isEmail(emailId)) { errors.add(PersonnelConstants.ERROR_VALID_EMAIL, new ActionMessage(PersonnelConstants.ERROR_VALID_EMAIL)); } } public Short getPreferredSiteTypeId() { return preferredSiteTypeId; } public void setPreferredSiteTypeId(Short preferredSiteTypeId) { this.preferredSiteTypeId = preferredSiteTypeId; } }