package org.jtwig.renderable.impl;
import com.google.common.base.Optional;
import org.jtwig.renderable.RenderResult;
import org.jtwig.renderable.Renderable;
public class OverrideRenderable implements Renderable {
private Optional<Renderable> override = Optional.absent();
private final Renderable defaultContent;
public OverrideRenderable(Renderable defaultContent) {
this.defaultContent = defaultContent;
}
public OverrideRenderable overrideWith(Renderable override) {
this.override = Optional.of(override);
return this;
}
@Override
public RenderResult appendTo(RenderResult result) {
override.or(defaultContent).appendTo(result);
return result;
}
public Renderable getDefault() {
return defaultContent;
}
}