/*
* Copyright 2012 The Solmix Project
*
* This 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 software 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 may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.gnu.org/licenses/
* or see the FSF site: http://www.fsf.org.
*/
package org.solmix.api.datasource;
import java.util.List;
import java.util.Map;
import org.solmix.api.call.ResponseType;
/**
*
* @version 110035
*/
public interface DSResponse extends ResponseType
{
/**
* Define the return Status of Datasource.
*
* @author solmix.f@gmail.com
* @version 110035 2011-3-20
*/
public enum Status
{
/**
*
*/
STATUS_SUCCESS(0) ,
UNSET(1) ,
STATUS_FAILURE(-1) ,
STATUS_AUTHORIZATION_FAILURE(-3) ,
STATUS_VALIDATION_ERROR(-4) ,
STATUS_LOGIN_INCORRECT(-5) ,
STATUS_MAX_LOGIN_ATTEMPTS_EXCEEDED(-6) ,
STATUS_LOGIN_REQUIRED(-7) ,
STATUS_LOGIN_SUCCESS(-8) ,
UPDATE_WITHOUT_PK(-9) ,
STATUS_TRANSACTION_FAILED(-10);
private final int value;
Status(int value)
{
this.value = value;
}
public int value() {
return value;
}
public static Status fromValue(int v) {
for (Status c : Status.values()) {
if (c.value == v) {
return c;
}
}
throw new IllegalArgumentException("illegal dsresponse status");
}
}
/**
* Return the DataSource
*
* @return
*/
DataSource getDataSource();
/**
* Set the datasource of current datasource response instance.
*
* @param dataSource
*/
void setDataSource(DataSource dataSource);
/**
* filter data by {@link org.solmix.api.datasource.DataSource#getProperties(Object)} if need original data ,use
* <code> getContext().getData()</code>
*
* @return
*/
Map<Object, Object> getSingleRecord();
/**
* filter data by {@link org.solmix.api.datasource.DataSource#getProperties(Object)} if need original data ,use
* <code> getContext().getData()</code>
*
* @return
*/
List<Map<Object, Object>> getRecordList();
Status getStatus();
void setStatus(Status status);
boolean isSuccess();
public Object getRawData();
/**
* Setting the raw data to this response.the raw data may be transformed by {@link #getSingleRecord()},
* {@link #getRecordList()},{@link #getSingleResult(Class)},{@link #getRecordList()}.
*
* @param rawData the rawData to set
*/
public void setRawData(Object rawData);
public <T> T getSingleResult(Class<T> type);
public <T> List<T> getResultList(Class<T> type);
/**
* @return
*/
Object[] getErrors();
/**
* @param errors
*/
void setErrors(Object... errors);
/**
* @return
*/
Integer getTotalRows();
/**
* @param totalRows
*/
void setTotalRows(Integer totalRows);
/**
* @return
*/
Integer getEndRow();
/**
* @param endRow
*/
void setEndRow(Integer endRow);
/**
* @return
*/
Integer getStartRow();
/**
* @param startRow
*/
void setStartRow(Integer startRow);
/**
* @param long1
*/
void setAffectedRows(Long long1);
Long getAffectedRows(Long long1);
/**
* @param _invalidateCache
*/
void setInvalidateCache(boolean _invalidateCache);
/**
* @return
*/
boolean getInvalidateCache();
/**
* @param value
*/
void setOperationType(String value);
/**
* @return
*/
String getOperationType();
void setHandlerName(String handlerName);
String getHandlerName();
}