package com.taobao.tddl.executor.rowset;
import java.util.Arrays;
import java.util.List;
import com.taobao.tddl.executor.cursor.ICursorMeta;
/**
* 基于数组的结果集。是最基本的一行数据的形式,效率最快。
*
* @author Whisper
*/
public class ArrayRowSet extends AbstractRowSet implements IRowSet {
public ArrayRowSet(int capacity, ICursorMeta iCursorMeta){
super(iCursorMeta);
row = new Object[capacity];
}
Object[] row;
public ArrayRowSet(ICursorMeta iCursorMeta, Object[] row){
super(iCursorMeta);
this.row = row;
}
@Override
public Object getObject(int index) {
return row[index];
}
@Override
public void setObject(int index, Object value) {
row[index] = value;
}
@Override
public List<Object> getValues() {
return Arrays.asList(row);
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + Arrays.hashCode(row);
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null) return false;
if (getClass() != obj.getClass()) return false;
ArrayRowSet other = (ArrayRowSet) obj;
if (!Arrays.equals(row, other.row)) return false;
return true;
}
}