Exp.java
package com.github.mygreen.sqlmapper.core.where.simple;
import org.springframework.util.Assert;
import lombok.Getter;
/**
* 式を表現します。
*
*
* @author T.TSUCHIE
*
*/
public class Exp implements Term {
/**
* 式となるSQL
*/
@Getter
private final String exp;
/**
* パラメータへの設定値
*/
private final Object[] values;
/**
* インスタンスを作成します。
* @param exp 式
* @param values パラメータ
* @throws IllegalArgumentException 引数 {@literal exp}の値が空のときスローされます。
*/
Exp(String exp, Object... values) {
Assert.hasLength(exp, "exp should not be empty.");
this.exp = exp;
this.values = values;
}
/**
* 指定したインデックス番号のパラメータの設定値を取得する。
* @param index インデックス番号。0から始まる。
* @return パラメータの値。
*/
public Object getValueAt(int index) {
return values[index];
}
/**
* パラメータのサイズを取得します。
* @return 0以上の値を返します。
*/
public int valuesSize() {
if(values == null) {
return 0;
} else {
return values.length;
}
}
@Override
public void accept(SimpleWhereVisitor visitor) {
visitor.visit(this);
}
}