}
private void handleList(REXPGenericVector list, StringBuffer sb,
boolean isTerminate) throws REXPMismatchException,
HiveException {
RList rlist = list.asList();
if (!isTerminate)
sb.append("list(");
for (int i = 0; i < rlist.size(); i++) {
Object result = rlist.get(i);
if (result instanceof REXPVector) {
REXPVector vector = (REXPVector) result;
handleVector(vector, sb, isTerminate);
} else if (result instanceof REXPString) {
sb.append("'" + ((REXPString) result).asString() + "'");
} else if (result instanceof REXPDouble) {
sb.append(Double.toString(((REXPDouble) result).asDouble()));
} else if (result instanceof REXPInteger) {
sb.append(Integer.toString(((REXPInteger) result)
.asInteger()));
} else {
throw new HiveException(
"only support vector, string, double and integer in List");
}
if (i < (rlist.size() - 1))
sb.append(",");
}
if (!isTerminate)
sb.append(")");