Package grammar.input.refdata

Source Code of grammar.input.refdata.NounClassHandler

package grammar.input.refdata;

import java.util.ArrayList;
import java.util.List;
import org.xml.sax.Attributes;
import grammar.model.MatchType;
import grammar.model.WordMatcher;
import grammar.model.nouns.NounClass;
import grammar.util.Utilities;

public class NounClassHandler extends DataHandler<NounClass> {
  private int sequence = -1;
  private NounClass nounClass;
  private String name;
  private String abbreviation;
  private final List<WordMatcher> nounMatchers = new ArrayList<WordMatcher>();
 
  private MatchType matchType;
 
  public void startElement(String uri, String localName, String qName, Attributes attributes) {
    if (qName.equals("name")) {
      enableParsing(ParseMode.NAME);
    }
    else if (qName.equals("abbreviation")) {
      enableParsing(ParseMode.ABBREVIATION);
    }
    else if (qName.equals("sequence")) {
      enableParsing(ParseMode.SEQUENCE);
    }
    else if (qName.equals("suppress-pronouns")) {
      //suppressPronouns = true;
    }
    else {
      try {
        matchType = MatchType.valueOf(Utilities.asConstantName(qName));
        enableParsing(ParseMode.RULE);
      }
      catch (Exception e) {
        // legitimate; do nothing
      }
    }
  }
 
  public void endElement(String uri, String localName, String qName) {
    String str = getParsedString();
    ParseMode mode = getParseMode();
   
    if (qName.equals("name")) {
      name = str;
    }
    else if (mode.equals(ParseMode.ABBREVIATION)) {
      abbreviation = str;
    }
    else if (mode.equals(ParseMode.SEQUENCE)) {
      sequence = Integer.parseInt(str);
    }
    else if (mode.equals(ParseMode.RULE)) {
      nounMatchers.add(new WordMatcher(matchType, str));
    }
    disableParsing();
  }
 
  public void endDocument() {
    if (name == null)
      throw new IllegalStateException("No name defined for this mode!");
       
    nounClass = new NounClass(getLanguage(), sequence, name, abbreviation, nounMatchers);
  }
 
  public NounClass getParsedData() {
    return nounClass;
  }
}
TOP

Related Classes of grammar.input.refdata.NounClassHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.