/* * 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.dto.screen; import java.io.Serializable; import org.apache.commons.lang.StringUtils; @SuppressWarnings("PMD") @edu.umd.cs.findbugs.annotations.SuppressWarnings(value={"SE_NO_SERIALVERSIONID", "EI_EXPOSE_REP", "EI_EXPOSE_REP2"}, justification="should disable at filter level and also for pmd - not important for us") public class ClientNameDetailDto implements Serializable { private Short nameType; private Integer salutation; private StringBuilder displayName; private String firstName; private String middleName; private String lastName; private String secondLastName; private Integer customerNameId; private String[] names; public ClientNameDetailDto() { super(); } public ClientNameDetailDto(Short nameType, Integer salutation, String firstName, String middleName, String lastName, String secondLastName) { this(nameType, salutation, new StringBuilder(), firstName, middleName, lastName, secondLastName, null); } public ClientNameDetailDto(Short nameType, Integer salutation, StringBuilder displayName, String firstName, String middleName, String lastName, String secondLastName, Integer customerNameId) { this.nameType = nameType; this.salutation = salutation; this.displayName = displayName; this.firstName = firstName; this.middleName = middleName; this.lastName = lastName; this.secondLastName = secondLastName; this.customerNameId = customerNameId; } public void setDisplayName(StringBuilder displayName) { this.displayName = displayName; } public Short getNameType() { return nameType; } public void setNameType(Short nameType) { this.nameType = nameType; } public Integer getSalutation() { return salutation; } public void setSalutation(Integer salutation) { this.salutation = salutation; } public String getDisplayName() { displayName = new StringBuilder(); addToName(displayName, names[0], false); for (int i = 1; i < names.length; i++) { addToName(displayName, names[i], true); } return displayName.toString().trim(); } private void addToName(StringBuilder displayName, String nameToBeAppend, boolean isBlankRequired) { String firstNameConstant = "first_name"; String middleNameConstant = "middle_name"; String secondLastNameConstant = "second_last_name"; String lastNameConstant = "last_name"; if (nameToBeAppend.equals(firstNameConstant)) { appendToName(displayName, firstName, isBlankRequired); } else if (nameToBeAppend.equals(middleNameConstant)) { appendToName(displayName, middleName, isBlankRequired); } else if (nameToBeAppend.equals(lastNameConstant)) { appendToName(displayName, lastName, isBlankRequired); } else if (nameToBeAppend.equals(secondLastNameConstant)) { appendToName(displayName, secondLastName, isBlankRequired); } } private void appendToName(StringBuilder displayName, String valueToBeAppend, boolean isBlankRequired) { String trimmedValue = StringUtils.trim(valueToBeAppend); if (StringUtils.isNotBlank(trimmedValue)) { if (isBlankRequired) { displayName.append(" "); } displayName.append(trimmedValue); } } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getMiddleName() { return middleName; } public void setMiddleName(String middleName) { this.middleName = middleName; } public String getSecondLastName() { return secondLastName; } public void setSecondLastName(String secondLastName) { this.secondLastName = secondLastName; } public Integer getCustomerNameId() { return this.customerNameId; } public void setCustomerNameId(Integer customerNameId) { this.customerNameId = customerNameId; } public void setNames(String[] names) { this.names = names; } }