@Override public Object exec(List args) throws TemplateModelException { if (args.isEmpty()) return ""; TemplateHashModelEx aliases = (TemplateHashModelEx) args.get(0); TemplateHashModelEx rec = (TemplateHashModelEx) args.get(1); TemplateHashModelEx add = args.size() >= 3 ? (TemplateHashModelEx) args.get(2) : null; List<TemplateModel> recKeys = readList(rec.keys()); List<TemplateModel> recVals = readList(rec.values()); ArrayList<String> fl = new ArrayList<String>(); ArrayList<String> vl = new ArrayList<String>(); for (int i = 0; i < rec.size(); i++) { TemplateModel key = recKeys.get(i); TemplateModel val = recVals.get(i); String key1 = str(aliases.get(str(key))); fl.add(key1); vl.add(vstr(val)); } if (add != null) { recKeys = readList(add.keys()); recVals = readList(add.values()); for (int i = 0; i < add.size(); i++) { fl.add(str(recKeys.get(i))); vl.add(vstr(recVals.get(i))); } } return String.format( "(%s) VALUES (%s)", StringUtils.join(fl, ","), StringUtils.join(vl, ",")); }
@Override public Object exec(List args) throws TemplateModelException { if (args.isEmpty()) return ""; TemplateHashModelEx a1 = (TemplateHashModelEx) args.get(0); List<TemplateModel> cols = args.size() >= 2 ? readList((TemplateModel) args.get(1)) : null; if (cols == null) cols = readList(a1.keys()); ArrayList<String> l = new ArrayList<String>(); for (TemplateModel col : cols) { String cv = vstr(col); String c = str(col); String f = str(a1.get(c)); l.add(f + " AS " + cv); } return StringUtils.join(l, ", "); }
public Collection<Entity<?>> convert(TemplateHashModelEx hash, String... ignore) { List<Entity<?>> entities = new LinkedList<Entity<?>>(); List<String> ignoreList = Arrays.asList(ignore); TemplateCollectionModel keys; try { keys = hash.keys(); for (TemplateModelIterator iterator = keys.iterator(); iterator.hasNext(); ) { TemplateModel model = iterator.next(); String key = model.toString(); if (!ignoreList.contains(key)) { entities.add(new SimpleEntityModel(key, hash.get(key).toString())); } } Collections.sort(entities, new EntityComparator()); return entities; } catch (TemplateModelException e) { throw new RuntimeException(e); } }