package com.devtrigger.grails.icu;
import com.ibm.icu.text.MessageFormat;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* Map-based arguments implementation. Used with patterns which have named arguments
*/
public class ICUMapMessageArguments implements ICUMessageArguments {
Map<String, Object> args;
public ICUMapMessageArguments(Map<String, Object> args) {
if (args == null) args = Collections.emptyMap();
this.args = args;
}
@Override
public boolean isEmpty() {
return args.isEmpty();
}
@Override
public ICUMapMessageArguments transform(Transformation transformation) {
Map<String, Object> newArgs = new LinkedHashMap<String, Object>(args.size());
for (Map.Entry<String, Object> item: args.entrySet())
newArgs.put(item.getKey(), transformation.transform(item.getValue()));
return new ICUMapMessageArguments(newArgs);
}
@Override
public String formatWith(MessageFormat messageFormat) {
return messageFormat.format(args);
}
}