/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.query.sql.lang;
import org.teiid.designer.query.sql.ILanguageVisitor;
/**
*
*/
public interface IMatchCriteria<E extends IExpression, LV extends ILanguageVisitor>
extends IPredicateCriteria<LV> {
/** The internal null escape character */
public static final char NULL_ESCAPE_CHAR = 0;
public enum MatchMode {
LIKE,
SIMILAR,
/**
* The escape char is typically not used in regex mode.
*/
REGEX
}
/**
* Get the left expression
*
* @return expression
*/
E getLeftExpression();
/**
* Set the left expression
*
* @param expression
*/
void setLeftExpression(E expression);
/**
* Get the right expression
*
* @return expression
*/
E getRightExpression();
/**
* Set the right expression
*
* @param expression
*/
void setRightExpression(E expression);
/**
* Get the escape character
*
* @return escape character
*/
char getEscapeChar();
/**
* Set the escape character
*
* @param escapeChar
*/
void setEscapeChar(char escapeChar);
/**
* Has this been negated
*
* @return true if negated
*/
boolean isNegated();
/**
* Inverse the match
*
* @param value
*/
void setNegated(boolean value);
/**
* Get the mode
*
* @return mode
*/
MatchMode getMode();
}