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    }