package org.jtwig.render.context.model;
import com.google.common.base.Optional;
import org.jtwig.model.tree.BlockNode;
import org.jtwig.resource.reference.ResourceReference;
import java.util.HashMap;
import java.util.Map;
public class BlockContext {
public static BlockContext newContext () {
return new BlockContext(new HashMap<String, BlockDefinition>());
}
private final Map<String, BlockDefinition> blocks;
public BlockContext(Map<String, BlockDefinition> blocks) {
this.blocks = blocks;
}
public Optional<BlockDefinition> get(String identifier) {
return Optional.fromNullable(blocks.get(identifier));
}
public void add(BlockNode node, ResourceReference source) {
if (!blocks.containsKey(node.getIdentifier())) {
blocks.put(node.getIdentifier(), new BlockDefinition(node.getContent(), source));
}
}
}