/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.submit.lookup;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import gr.ekt.bte.core.AbstractModifier;
import gr.ekt.bte.core.MutableRecord;
import gr.ekt.bte.core.Record;
import gr.ekt.bte.core.StringValue;
import gr.ekt.bte.core.Value;
/**
* @author Andrea Bollini
* @author Kostas Stamatis
* @author Luigi Andrea Pascarelli
* @author Panagiotis Koutsourakis
*/
public class RemoveLastDotModifier extends AbstractModifier
{
List<String> fieldKeys;
/**
* @param name
* modifier name
*/
public RemoveLastDotModifier(String name)
{
super(name);
}
/*
* (non-Javadoc)
*
* @see
* gr.ekt.bte.core.AbstractModifier#modify(gr.ekt.bte.core.MutableRecord)
*/
@Override
public Record modify(MutableRecord record)
{
if (fieldKeys != null)
{
for (String key : fieldKeys)
{
List<Value> values = record.getValues(key);
List<Value> newValues = new ArrayList<Value>();
if (values != null)
{
for (Value value : values)
{
String valueString = value.getAsString();
if (StringUtils.isNotBlank(valueString)
&& valueString.endsWith("."))
{
newValues.add(new StringValue(valueString
.substring(0, valueString.length() - 1)));
}
else
{
newValues.add(new StringValue(valueString));
}
}
record.updateField(key, newValues);
}
}
}
return record;
}
public void setFieldKeys(List<String> fieldKeys)
{
this.fieldKeys = fieldKeys;
}
}