package water.parser; import water.Iced; /** * A lightweight handle with basic information about parser. */ public class ParserInfo extends Iced<ParserInfo> { /** Name of parser */ final String name; /** Priority of the parser which is used by guesser */ final int prior; /** Does this parser support parallel parse. */ final boolean isParallelParseSupported; /** Does this parser support stream parse. */ final boolean isStreamParseSupported; /** Does this parser need post update of vector categoricals. */ final boolean isDomainProvided; public ParserInfo(String name, int prior, boolean isParallelParseSupported, boolean isStreamParseSupported, boolean isDomainProvided) { this.name = name; this.prior = prior; this.isParallelParseSupported = isParallelParseSupported; this.isStreamParseSupported = isStreamParseSupported; this.isDomainProvided = isDomainProvided; } public ParserInfo(String name, int prior, boolean isParallelParseSupported, boolean isDomainProvided) { this(name, prior, isParallelParseSupported, true, isDomainProvided); } public ParserInfo(String name, int prior, boolean isParallelParseSupported) { this(name, prior, isParallelParseSupported, false); } /** Get name for this parser */ public String name() { return name; } /** Get order priority for this parser. */ public int priority() { return prior; } /** Does the parser support parallel parse? */ public boolean isParallelParseSupported() { return isParallelParseSupported; } /** Does the parser support stream parse? */ public boolean isStreamParseSupported() { return isStreamParseSupported; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } ParserInfo that = (ParserInfo) o; return name.equals(that.name); } @Override public int hashCode() { return name.hashCode(); } @Override public String toString() { return "ParserInfo{" + "name='" + name + '\'' + ", prior=" + prior + ", isParallelParseSupported=" + isParallelParseSupported + '}'; } }