001    package com.oxygenxml.validate.nvdl;
002    
003    import org.xml.sax.ContentHandler;
004    import org.xml.sax.SAXException;
005    
006    /**
007     * Reult action.
008     * These actions change the sections, attach and unwrap.
009     * 
010     */
011    abstract class ResultAction extends Action {
012      /**
013       * Creates a result action with a given mode usage.
014       * @param modeUsage The mode usage.
015       */
016      ResultAction(ModeUsage modeUsage) {
017        super(modeUsage);
018      }
019    
020      /**
021       * Perform this action on a session state.
022       * 
023       * @param handler The content handler???
024       * @param state The session state.
025       * @throws SAXException
026       */
027      abstract void perform(ContentHandler handler, SectionState state) throws SAXException;
028      
029      /**
030       * Get a similar action but with the current mode in the mode usage changed.
031       * This is useful to get the actions from a mode that extends the mode that has this action.
032       * @param mode The new current mode.
033       * @return The new result action.
034       */
035      abstract ResultAction changeCurrentMode(Mode mode);
036    }