package com.devtrigger.grails.icu;
import com.ibm.icu.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* Default, List-based arguments implementation. Used with patterns which have numbered arguments
*/
public class ICUListMessageArguments implements ICUMessageArguments {
private List<Object> args;
public ICUListMessageArguments(List<Object> args) {
if (args == null) args = Collections.emptyList();
this.args = args;
}
public ICUListMessageArguments(Object[] args) {
if (args == null) args = new Object[0];
this.args = Arrays.asList(args);
}
@Override
public boolean isEmpty() {
return args.isEmpty();
}
@Override
public ICUListMessageArguments transform(Transformation transformation) {
List<Object> newArgs = new ArrayList<Object>(args.size());
for (Object item : args)
newArgs.add(transformation.transform(item));
return new ICUListMessageArguments(newArgs);
}
@Override
public String formatWith(MessageFormat messageFormat) {
return messageFormat.format(toArray());
}
public Object[] toArray() {
return args.toArray(new Object[args.size()]);
}
}