@Override public boolean render(OutputStream outputStream, JtwigContext context) throws RenderException { try { Object resolved = expression.calculate(context); if (!(resolved instanceof Map)) throw new RenderException("Expecting a map as parameter for the loop but "+expression+" was given"); Map map = (Map) resolved; Loop loop = new Loop(map.size()); context.set("loop", loop); int index = 0; for (Object key : map.keySet()) { loop.update(index++); context.set(variable.getIdentifier(), key); context.set(value.getIdentifier(), map.get(key)); content.render(outputStream, context); } return true; } catch (CalculateException e) { throw new RenderException(e); } }
@Override public boolean render(OutputStream outputStream, JtwigContext context) throws RenderException { try { Object resolved = expression.calculate(context); if (!(resolved instanceof Map)) throw new RenderException("Expecting a map as parameter for the loop but "+expression+" was given"); Map map = (Map) resolved; Loop loop = new Loop(map.size()); context.set("loop", loop); int index = 0; for (Object key : map.keySet()) { loop.update(index++); context.set(variable.getIdentifier(), key); context.set(value.getIdentifier(), map.get(key)); content.render(outputStream, context); } return true; } catch (CalculateException e) { throw new RenderException(e); } }
@Override public boolean render(OutputStream outputStream, JtwigContext context) throws RenderException { try { ObjectIterator iterator = new ObjectIterator(expression.calculate(context)); Loop loop = new Loop(iterator.size()); context.set("loop", loop); int index = 0; while (iterator.hasNext()) { loop.update(index++); Object object = iterator.next(); context.set(variable.getIdentifier(), object); content.render(outputStream, context); } return true; } catch (CalculateException e) { throw new RenderException(e); } }
@Override public boolean render(OutputStream outputStream, JtwigContext context) throws RenderException { try { ObjectIterator iterator = new ObjectIterator(expression.calculate(context)); Loop loop = new Loop(iterator.size()); context.set("loop", loop); int index = 0; while (iterator.hasNext()) { loop.update(index++); Object object = iterator.next(); context.set(variable.getIdentifier(), object); content.render(outputStream, context); } return true; } catch (CalculateException e) { throw new RenderException(e); } }