/** * */ package tefkat.engine.runtime.functions; import java.util.Collection; import java.util.Iterator; import tefkat.engine.runtime.Binding; import tefkat.engine.runtime.Context; import tefkat.engine.runtime.Function; final public class JoinStrings implements Function { /** * concatenate a list of Strings interspersed with a separator * @params[0] separator * @params[1..n] the list of strings */ public Object call(Context ctxt, Binding binding, Object[] params) { String separator = String.valueOf(params[0]); StringBuffer b = new StringBuffer(); if (params.length == 2 && params[1] instanceof Collection) { for (Iterator itr = ((Collection) params[1]).iterator(); itr.hasNext(); ) { b.append(itr.next()); if (itr.hasNext()) { b.append(separator); } } } else if (params.length > 1) { b.append(params[1]); for (int i = 2; i < params.length; i++) { b.append(separator).append(params[i]); } } return b.toString(); } }