package org.jtwig.renderable.impl; import org.jtwig.renderable.RenderResult; import org.jtwig.renderable.Renderable; public class FutureRenderable implements Renderable { private Renderable renderable; public FutureRenderable complete(Renderable renderable) { if (this.renderable != null) throw new IllegalStateException("Future Renderable already completed"); this.renderable = renderable; return this; } @Override public RenderResult appendTo(RenderResult result) { if (renderable != null) { renderable.appendTo(result); return result; } else { throw new IllegalStateException("Current renderable is in invalid state, it must be completed first"); } } }