package org.atomnuke.atom.io.reader.sax;
import java.util.Stack;
import org.atomnuke.atom.xml.AtomElement;
/**
*
* @author zinic
*/
public class DocumentContextManager {
private final Stack<HandlerContext<?>> contextStack;
public DocumentContextManager() {
contextStack = new Stack<HandlerContext<?>>();
}
public boolean hasContext() {
return !contextStack.empty();
}
public HandlerContext<?> peek() {
return contextStack.peek();
}
public HandlerContext<?> pop() {
return contextStack.pop();
}
public <T> HandlerContext<T> peek(Class<T> castAs) {
return (HandlerContext<T>) peek();
}
public <T> HandlerContext<T> pop(Class<T> castAs) {
return (HandlerContext<T>) pop();
}
public void push(AtomElement element, Object builder) {
push(new HandlerContext(element, builder));
}
public void push(HandlerContext context) {
contextStack.push(context);
}
}