package com.litesuits.orm.db.model;
/**
* help to build custom column value
* {@link #values}可为NULL,但若不为NULL则和{@link #columns}一一对应,数组大小必须一致。
* {@link #columns}不能为NULL,你的SQL语句仅仅对在这个数组里面的列起作用。比如update,只更新这里面的列。
* 如果{@link #values}非NULL,那么你的SQL将永远使用这里面的值,设置给对应列。比如update,这里的值优先被写入数据库。
*
* @author MaTianyu
* 2014-8-7
*/
public class ColumnsValue {
/**
* your sql only affect column in {@link #columns}.
*/
public String[] columns;
/**
* can be null, if not this will mapping with {@link #columns} 1 by 1.
* if not null, your columns well aways set value in {@link #values}.
*/
public Object[] values;
public ColumnsValue(String[] columns) {
this.columns = columns;
}
public ColumnsValue(String[] columns, Object[] values) {
this.columns = columns;
this.values = values;
}
public boolean checkColumns() {
if (columns == null) {
throw new IllegalArgumentException("columns must not be null");
} else if (values != null && columns.length != values.length) {
throw new IllegalArgumentException("length of columns and values must be the same");
}
return true;
}
public boolean hasValues() {
return values != null;
}
}