001 package com.oxygenxml.validate.nvdl; 002 003 import org.xml.sax.SAXException; 004 005 /** 006 * A no result action that rejects any element. 007 */ 008 class RejectAction extends NoResultAction { 009 /** 010 * Creates a reject action. 011 * @param modeUsage The mode usage. 012 */ 013 RejectAction(ModeUsage modeUsage) { 014 super(modeUsage); 015 } 016 017 /** 018 * Perform this action on the session state. 019 * @param state The section state. 020 */ 021 void perform(SectionState state) throws SAXException { 022 final ModeUsage modeUsage = getModeUsage(); 023 state.reject(); 024 state.addChildMode(modeUsage, null); 025 state.addAttributeValidationModeUsage(modeUsage); 026 } 027 028 /** 029 * Get a new reject action with a mode usage with the current mode changed. 030 * This is useful when we have modes extending other modes as we need to get 031 * the actions from the base mode as actions on the new mode. 032 */ 033 NoResultAction changeCurrentMode(Mode mode) { 034 return new RejectAction(getModeUsage().changeCurrentMode(mode)); 035 } 036 }