MtasCQLParserBasicSentencePartCondition.java
package mtas.parser.cql.util;
import mtas.parser.cql.ParseException;
import mtas.search.spans.util.MtasSpanQuery;
/**
* The Class MtasCQLParserBasicSentencePartCondition.
*/
public abstract class MtasCQLParserBasicSentencePartCondition {
/** The minimum occurence. */
protected int minimumOccurence;
/** The maximum occurence. */
protected int maximumOccurence;
/** The optional. */
protected boolean optional;
/** The not. */
protected boolean not;
/**
* Gets the query.
*
* @return the query
* @throws ParseException the parse exception
*/
public abstract MtasSpanQuery getQuery() throws ParseException;
/**
* Gets the minimum occurence.
*
* @return the minimum occurence
*/
public int getMinimumOccurence() {
return minimumOccurence;
}
/**
* Gets the maximum occurence.
*
* @return the maximum occurence
*/
public int getMaximumOccurence() {
return maximumOccurence;
}
/**
* Sets the occurence.
*
* @param min the min
* @param max the max
* @throws ParseException the parse exception
*/
public void setOccurence(int min, int max) throws ParseException {
if ((min < 0) || (min > max) || (max < 1)) {
throw new ParseException("Illegal number {" + min + "," + max + "}");
}
if (min == 0) {
optional = true;
}
minimumOccurence = Math.max(1, min);
maximumOccurence = max;
}
/**
* Checks if is optional.
*
* @return true, if is optional
*/
public boolean isOptional() {
return optional;
}
/**
* Sets the optional.
*
* @param status the new optional
*/
public void setOptional(boolean status) {
optional = status;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return toString("", "");
}
/**
* To string.
*
* @param firstIndent the first indent
* @param indent the indent
* @return the string
*/
public String toString(String firstIndent, String indent) {
String text = "";
text += firstIndent + "PART";
if (optional) {
text += " OPTIONAL";
}
if ((minimumOccurence > 1) || (minimumOccurence != maximumOccurence)) {
if (minimumOccurence != maximumOccurence) {
text += " {" + minimumOccurence + "," + maximumOccurence + "}";
} else {
text += " {" + minimumOccurence + "}";
}
}
try {
text += "\n" + indent + "- Query: "
+ getQuery().toString(getQuery().getField());
} catch (ParseException e) {
text += "\n" + indent + "- Query: " + e.getMessage();
}
text += "\n";
return text;
}
}