001    package railo.runtime.functions.query;
002    
003    import railo.runtime.PageContext;
004    import railo.runtime.exp.PageException;
005    import railo.runtime.functions.BIF;
006    import railo.runtime.op.Caster;
007    import railo.runtime.type.Query;
008    import railo.runtime.type.util.ListUtil;
009    
010    /**
011     * Implements the CFML Function querynew
012     */
013    public final class QueryColumnList extends BIF {
014    
015            private static final long serialVersionUID = 2718851377017546192L;
016    
017            public static String call(PageContext pc , Query qry) {
018            return call(pc,qry,",");
019        }
020        public static String call(PageContext pc , Query qry, String delimiter) {
021            return ListUtil.arrayToList(qry.getColumnNamesAsString(),delimiter);
022        }
023            
024            @Override
025            public Object invoke(PageContext pc, Object[] args) throws PageException {
026                    if(args.length==1)return call(pc,Caster.toQuery(args[0]));
027                    return call(pc,Caster.toQuery(args[0]),Caster.toString(args[1]));
028            }
029    }