001 package com.thaiopensource.validate.nrl; 002 003 import com.thaiopensource.validate.Schema; 004 import com.thaiopensource.validate.nrl.Mode; 005 import com.thaiopensource.validate.nrl.ModeUsage; 006 import com.thaiopensource.validate.nrl.NoResultAction; 007 import com.thaiopensource.validate.nrl.SectionState; 008 import org.xml.sax.SAXException; 009 010 class ValidateAction extends NoResultAction { 011 private final Schema schema; 012 013 ValidateAction(ModeUsage modeUsage, Schema schema) { 014 super(modeUsage); 015 this.schema = schema; 016 } 017 018 void perform(SectionState state) throws SAXException { 019 state.addValidator(schema, getModeUsage()); 020 } 021 022 NoResultAction changeCurrentMode(Mode mode) { 023 return new ValidateAction(getModeUsage().changeCurrentMode(mode), schema); 024 } 025 026 public boolean equals(Object obj) { 027 return super.equals(obj) && schema.equals(((ValidateAction)obj).schema); 028 } 029 030 public int hashCode() { 031 return super.hashCode() ^ schema.hashCode(); 032 } 033 }