/*
* JBoss, Home of Professional Open Source.
* See the COPYRIGHT.txt file distributed with this work for information
* regarding copyright ownership. Some portions may be licensed
* to Red Hat, Inc. under one or more contributor license agreements.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*/
package org.teiid.test.client.ctc;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
/**
* ResultsHolder
* <p>
* Data structure. Holder of expected resutls and metadata.
* </p>
*/
public class ResultsHolder {
// either TagNames.Elements.QUERY_RESULTS or TagNames.Elements.EXCEPTION
private String resultType;
// Identifier
private String queryID;
// The SQl query if available.
private String query;
// Query Results
private List rows;
private List types;
private List identifiers;
// Exception
private String exceptionClassName;
private String exceptionMsg;
public ResultsHolder(final String type) {
this.resultType = type;
}
public String getQueryID() {
return queryID;
}
public void setQueryID(final String queryID) {
this.queryID = queryID;
}
/**
* @return Returns the query.
*/
public String getQuery() {
return query;
}
/**
* @param query The query to set.
*/
public void setQuery(String query) {
this.query = query;
}
public boolean isResult() {
return resultType.equals(TagNames.Elements.QUERY_RESULTS);
}
public boolean isException() {
return resultType.equals(TagNames.Elements.EXCEPTION);
}
public String getResultType() {
return resultType;
}
public void setResultType(final String resultType) {
this.resultType = resultType;
}
public List getRows() {
return (rows == null ? new ArrayList() : rows);
}
public void setRows(final List rows) {
this.rows = rows;
}
public List getTypes() {
return types;
}
public void setTypes(final List types) {
this.types = types;
}
public List getIdentifiers() {
return identifiers;
}
public void setIdentifiers(final List identifiers) {
this.identifiers = identifiers;
}
public String getExceptionClassName() {
return exceptionClassName;
}
public void setExceptionClassName(final String className) {
this.exceptionClassName = className;
}
public String getExceptionMsg() {
return exceptionMsg;
}
public void setExceptionMsg(final String msg) {
this.exceptionMsg = msg;
}
public boolean hasRows() {
return (rows != null && rows.size() > 0);
}
public String toString() {
StringBuffer buf = new StringBuffer();
buf.append("ResultsHolder... \n"); //$NON-NLS-1$
if (isResult()) {
for (int i = 0; i < this.identifiers.size(); i++) {
buf.append("["); //$NON-NLS-1$
buf.append(this.identifiers.get(i));
buf.append(" - "); //$NON-NLS-1$
buf.append(this.types.get(i));
buf.append("] "); //$NON-NLS-1$
}
buf.append("\n"); //$NON-NLS-1$
Iterator rowItr = this.rows.iterator();
int i = 1;
while (rowItr.hasNext()) {
buf.append(i++);
buf.append(": "); //$NON-NLS-1$
buf.append(rowItr.next());
buf.append("\n"); //$NON-NLS-1$
}
}
else {
buf.append(getExceptionClassName()).append(":").append(getExceptionMsg()); //$NON-NLS-1$
}
return buf.toString();
}
}