001    /*
002     * To change this template, choose Tools | Templates
003     * and open the template in the editor.
004     */
005    
006    package org.util.xml.parse.policy;
007    
008    import org.util.xml.element.Element;
009    
010    /**
011     *
012     * @author masaru
013     */
014    public interface ParserPolicy {
015    
016        /**
017         * Throw exception if document has error.
018         * In case this method returns false, if there are errors, skip some texts and continue parsing.
019         */
020        public boolean throwExceptionIfDocumentHasError();
021        
022        /**
023         * if true, check open tag key and close tag key. 
024         */
025        public boolean checkEndTag();
026        
027        /**
028         * if encoding cannot be detected by first line of document, this method will be called.
029         * while returned null, this method will be called every time that tag detected.
030             */
031        public String selectEncoding(String last_tag_key);
032        
033        /**
034         * Basicly, all the tag must open and close.
035         * But if this method return true, opentag will be considerd to empty tag. So end tag will disregarded. 
036         */
037        public boolean forceEmptyTag(String key);
038        
039        //public boolean allowTagSize();
040        
041        /**
042         * return handler that handle this element
043         */
044        public ParserPolicy getInnerPolicy(Element element);
045        
046        /**
047         * called when element is detected.
048         */
049        public Element allowElement(Element element);
050        
051        public boolean finished();
052    }