001 /*
002 * FirstWordFormatter.java
003 *
004 * Copyright (C) 2005 Anupam Sengupta ([email protected])
005 *
006 * This program is free software; you can redistribute it and/or
007 * modify it under the terms of the GNU General Public License
008 * as published by the Free Software Foundation; either version 2
009 * of the License, or (at your option) any later version.
010 *
011 * This program is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
014 * GNU General Public License for more details.
015 *
016 * You should have received a copy of the GNU General Public License
017 * along with this program; if not, write to the Free Software
018 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
019 *
020 * Version: $Revision: 1.3 $
021 */
022 package net.sf.anupam.csv.formatters;
023
024 import org.apache.commons.lang.StringUtils;
025
026 /**
027 * A {@link CSVFieldFormatter formatter} that returns the last word
028 * of the specified CSV value. This is useful in situations such as
029 * extracting the last name.
030 *
031 * @author Anupam Sengupta
032 * @version $Revision: 1.3 $
033 * @csv.formatter-mapping name="lastWord"
034 * @see FirstWordFormatter
035 * @since 1.5
036 */
037 final class LastWordFormatter
038 implements CSVFieldFormatter {
039
040 /**
041 * Constructor for FirstWordFormatter.
042 */
043 public LastWordFormatter() {
044 super();
045 }
046
047 /**
048 * Formats the value and returns the last word.
049 *
050 * @param value the value to be transformed
051 * @return the last word from the input value
052 * @see CSVFieldFormatter#format(String)
053 */
054 public String format(final String value) {
055
056 if (value == null) {
057 return null;
058 }
059 final String [] splitValues = value.split(" ");
060
061 return StringUtils.trim(splitValues[splitValues.length - 1]);
062 }
063
064 }