package com.googlecode.zohhak.internal.model;
import static java.util.Arrays.asList;
import java.util.ArrayList;
import java.util.List;
import com.googlecode.zohhak.api.ConfigurationDefinition;
public class ConfigurationBuilder {
private List<Class<?>> coercers = new ArrayList<Class<?>>(2);
private String separator = ConfigurationDefinition.DEFAULT_SEPARATOR;
private String stringBoundary = ConfigurationDefinition.DEFAULT_STRING_BOUNDARY;
public void addConfigLine(ConfigLine configLine) {
if (!configLine.isInheritCoercers()) {
coercers.clear();
}
addCoercers(configLine.getCoercers());
overrideSeparator(configLine.getSeparator());
overrideStringBoundary(configLine.getStringBoundary());
}
public List<Class<?>> getCoercers() {
return coercers;
}
public String getSeparator() {
return separator;
}
public String getStringBoundary() {
return stringBoundary;
}
private void overrideSeparator(String separator) {
if (!ConfigurationDefinition.INHERIT.equals(separator)) {
this.separator = separator;
}
}
private void overrideStringBoundary(String stringBoundary) {
if (!ConfigurationDefinition.INHERIT.equals(stringBoundary)) {
this.stringBoundary = stringBoundary;
}
}
private final void addCoercers(Class<?>... additionalCoercers) {
coercers.addAll(asList(additionalCoercers));
}
}