package com.hubspot.jinjava.tree.output;
import java.nio.charset.Charset;
import com.google.common.base.Charsets;
public class BlockPlaceholderOutputNode implements OutputNode {
private final String blockName;
private String output;
public BlockPlaceholderOutputNode(String blockName) {
this.blockName = blockName;
}
public String getBlockName() {
return blockName;
}
public boolean isResolved() {
return output != null;
}
public void resolve(String output) {
this.output = output;
}
@Override
public String getValue() {
if (output == null) {
throw new IllegalStateException("Block placeholder not resolved: " + blockName);
}
return output;
}
@Override
public long getSize() {
return output == null ? 0 : output.getBytes(Charset.forName(Charsets.UTF_8.name())).length;
}
@Override
public String toString() {
return getValue();
}
}