001 package com.thaiopensource.validate.nrl;
002
003 import com.thaiopensource.validate.Validator;
004 import com.thaiopensource.validate.nrl.Mode;
005 import com.thaiopensource.validate.nrl.ModeUsage;
006 import org.xml.sax.ContentHandler;
007
008 class AttachAction extends ResultAction {
009 AttachAction(ModeUsage modeUsage) {
010 super(modeUsage);
011 }
012
013 void perform(ContentHandler handler, SectionState state) {
014 final ModeUsage modeUsage = getModeUsage();
015 if (handler != null)
016 state.addActiveHandler(handler, modeUsage);
017 else
018 state.addAttributeValidationModeUsage(modeUsage);
019 state.addChildMode(modeUsage, handler);
020 }
021
022 ResultAction changeCurrentMode(Mode mode) {
023 return new AttachAction(getModeUsage().changeCurrentMode(mode));
024 }
025 }