Rule addToContent(Rule innerRule) { return Sequence( innerRule, ((JtwigContent) peek(1)).add(pop()) ); }
Rule content() { return Sequence( push(new JtwigContent()), ZeroOrMore( FirstOf(
Rule addToContent(Rule innerRule) { return Sequence( innerRule, ((JtwigContent) peek(1)).add(pop()) ); }
Rule content() { return Sequence( push(new JtwigContent()), ZeroOrMore( FirstOf(
@Override public boolean replace(Block expression) throws CompileException { boolean replaced = false; for (int i=0;i<getList().size();i++) { if (getList().get(i) instanceof Block) { Block tmp = (Block) getList().get(i); if (expression.getName().equals(tmp.getName())) { getList().set(i, expression.getContent()); replaced = true; } else replaced = replaced || tmp.replace(expression); } else if (getList().get(i) instanceof Content) replaced = replaced || ((Content) getList().get(i)).replace(expression); } return replaced; } }
@Override public boolean replace(Block expression) throws CompileException { boolean replaced = false; for (int i=0;i<getList().size();i++) { if (getList().get(i) instanceof Block) { Block tmp = (Block) getList().get(i); if (expression.getName().equals(tmp.getName())) { getList().set(i, expression.getContent()); replaced = true; } else replaced = replaced || tmp.replace(expression); } else if (getList().get(i) instanceof Content) replaced = replaced || ((Content) getList().get(i)).replace(expression); } return replaced; } }
@Override public boolean render(OutputStream outputStream, JtwigContext context) throws RenderException { for (Object obj : getList()) { if (!(obj instanceof Content)) throw new RenderException("Expecting only renderable objects. Object "+obj.getClass().getName()+" isn't"); Content renderable = (Content) obj; renderable.render(outputStream, context); } return true; }
@Override public boolean render(OutputStream outputStream, JtwigContext context) throws RenderException { for (Object obj : getList()) { if (!(obj instanceof Content)) throw new RenderException("Expecting only renderable objects. Object "+obj.getClass().getName()+" isn't"); Content renderable = (Content) obj; renderable.render(outputStream, context); } return true; }