package jef.database.routing.jdbc;
import java.sql.ResultSet;
import java.sql.SQLException;
import jef.common.IntList;
import jef.database.DbUtils;
import jef.database.jdbc.rowset.CachedRowSetImpl;
public class BatchReturn extends UpdateReturn{
private final IntList batchResult=new IntList();
public BatchReturn(int[] batchCount) {
super(-2);
batchResult.addAll(batchCount);
}
public BatchReturn(){
super(-2);
}
@Override
public boolean isBatch() {
return true;
}
public int[] getBatchResult() {
return batchResult.toArray();
}
public boolean isSuccessNoInfo(){
return batchResult.size()==1 && batchResult.get(0)==-2;
}
public boolean isExecuteFail(){
return batchResult.size()==1 && batchResult.get(0)==-3;
}
public void merge(int[] batchResult2, ResultSet generatedKeys2) throws SQLException {
if(batchResult.isEmpty()){
batchResult.addAll(batchResult2);
}else if(isSuccessNoInfo()){
if(batchResult2.length==1 && batchResult2[0]==-3){
batchResult.set(0, -3);
}
}else if(isExecuteFail()){
}else{
batchResult.addAll(batchResult2);
}
if(generatedKeys2!=null){
if(this.generatedKeys==null){
this.generatedKeys=new CachedRowSetImpl();
}
generatedKeys.populate(generatedKeys2);
DbUtils.close(generatedKeys2);
}
}
}