package com.alibaba.hsclient.bean; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; import com.alibaba.hsclient.util.Const; public class ResultInfo { private int errorCode; private int numColumns; private List<String> messages; public ResultInfo() { messages = new ArrayList<String>(); } public int getRowCount() { if (this.numColumns == 0) { return 0; } if (this.messages == null || this.messages.size() == 0) { return 0; } return this.messages.size() / this.numColumns; } public List<String> getMessages() { return messages; } public void addMessages(String message) { this.messages.add(message); } public ResultInfo(int errorCode, int numColumns, List<String> messages) { this(); this.errorCode = errorCode; this.numColumns = numColumns; this.messages = messages; } public int getErrorCode() { return errorCode; } public void setErrorCode(int errorCode) { this.errorCode = errorCode; } public int getNumColumns() { return numColumns; } public void setNumColumns(int numColumns) { this.numColumns = numColumns; } public Iterator<RowInfo> iterator() { if (this.messages == null || this.messages.size() == 0 || this.numColumns == 0) { return new Iterator<RowInfo>(){ public boolean hasNext() { return false; } public RowInfo next() { return null; } public void remove() { } }; } List<RowInfo> list = new ArrayList<RowInfo>(); int cursor = 0; int rowCount = this.messages.size() / this.numColumns; String[] messageArray = this.messages.toArray(new String[this.messages.size()]); while(cursor < rowCount) { list.add(new RowInfo(Arrays.copyOfRange(messageArray, cursor*numColumns, cursor*numColumns+numColumns))); cursor++; } return list.iterator(); } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append(errorCode).append(Const.TOKEN_SEPARATOR); builder.append(numColumns).append(Const.TOKEN_SEPARATOR); for (String message : messages) { builder.append(message).append(Const.TOKEN_SEPARATOR); } return builder.toString(); } }