package com.miguelfonseca.completely.text.analyze.transform;
import com.miguelfonseca.completely.text.analyze.Analyzer;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import static com.miguelfonseca.completely.common.Precondition.checkPointer;
/**
* Convert text into lowercase.
*/
public class LowerCaseTransformer extends Analyzer
{
private final Locale locale;
/**
* Constructs a new {@link LowerCaseTransformer}.
*/
public LowerCaseTransformer()
{
this(Locale.getDefault());
}
/**
* Constructs a new {@link LowerCaseTransformer}.
*
* @throws NullPointerException if {@code locale} is null;
*/
public LowerCaseTransformer(Locale locale)
{
checkPointer(locale != null);
this.locale = locale;
}
@Override
public Collection<String> apply(Collection<String> input)
{
checkPointer(input != null);
List<String> result = new LinkedList<>();
for (String text : input)
{
checkPointer(text != null);
result.add(text.toLowerCase(locale));
}
return result;
}
}