package org.jabref.logic.layout.format;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.jabref.logic.layout.LayoutFormatter;
/**
* A layout formatter that is the composite of the given Formatters executed in
* order.
*
*/
public class CompositeFormat implements LayoutFormatter {
private final List<LayoutFormatter> formatters;
/**
* If called with this constructor, this formatter does nothing.
*/
public CompositeFormat() {
formatters = Collections.emptyList();
}
public CompositeFormat(LayoutFormatter first, LayoutFormatter second) {
formatters = Arrays.asList(first, second);
}
public CompositeFormat(LayoutFormatter[] formatters) {
this.formatters = Arrays.asList(formatters);
}
@Override
public String format(String fieldText) {
String result = fieldText;
for (LayoutFormatter formatter : formatters) {
result = formatter.format(result);
}
return result;
}
}