package net.sf.gazpachoquest.util.impl;
import net.sf.gazpachoquest.util.AcronymGenerator;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
@Component
public class AcronymGeneratorImpl implements AcronymGenerator {
private int DEFAULT_SIZE = 8;
@Override
public String generate(String givenNames, String surname) {
Assert.hasText(givenNames, "Given name is required");
Assert.hasText(surname, "Surname is required");
int wordsSize = 0;
wordsSize += givenNames.length();
wordsSize += surname.length();
if (wordsSize < DEFAULT_SIZE) {
return StringUtils.upperCase(new StringBuilder().append(givenNames).append(surname).toString());
}
// Character number to take from given names
int fromGivenNames = 4;
int fromSurname = 4;
if (givenNames.length() < 4) {
fromGivenNames = givenNames.length();
fromSurname += (4 - givenNames.length());
}
if (surname.length() < 4) {
fromSurname = surname.length();
fromGivenNames += (4 - surname.length());
}
StringBuilder builder = new StringBuilder();
builder.append(givenNames.substring(0, fromGivenNames));
builder.append(surname.substring(0, fromSurname));
return StringUtils.upperCase(builder.toString());
}
}