My DataSource
My class
I'm getting error :Class Auditoria defines multiple methods named: fetch....
Any solutions?
Code:
<DataSource ID="aviso" serverType="sql"
tableName="aviso"
>
<fields>
<field name="id_aviso" type="sequence" nativeName="ID_AVISO" primaryKey="true" hidden="true" />
<field name="dataFim" type="date" title="Data de Termíno" nativeName="DT_FIM" required="true" />
<field name="dataInicio" type="date" title="Data de Início" nativeName="DT_INICIO" required="true"/>
<field name="excluido" type="integer" title="Excluído" nativeName="EXCLUIDO" hidden="true">
</field>
<field name="mensagem" type="text" title="Mensagem" length="1000" nativeName="MENSAGEM"/>
<field name="titulo" type="text" title="Título" length="100" nativeName="TITULO"/>
</fields>
<serverObject lookupStyle="new" className="Auditoria"/>
</DataSource>Code:
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import com.isomorphic.criteria.SimpleCriteria;
import com.isomorphic.datasource.DSRequest;
import com.isomorphic.datasource.DSResponse;
import com.isomorphic.datasource.DataSource;
import com.isomorphic.sql.SQLDataSource;
public class Auditoria extends SQLDataSource {
private static final long serialVersionUID = 1L;
@Override
public DSResponse executeAdd(DSRequest dsRequest) throws Exception {
dsRequest.setFieldValue("excluido", 0);
DSResponse dsResponse = super.executeAdd(dsRequest);
salvaHistorico(dsResponse, "1", dsRequest.getClientSuppliedValues()
.get("justificativa").toString());
return dsResponse;
}
@Override
public DSResponse executeRemove(DSRequest dsRequest) throws Exception {
DSResponse exclusaoLogica;
DataSource dataSource = dsRequest.getDataSource();
String chavePrimaria = dataSource.getPrimaryKey();
Map<String, Object> valoresCriteria = new HashMap<String, Object>();
valoresCriteria.put(chavePrimaria,
dsRequest.getFieldValue(chavePrimaria));
SimpleCriteria criteria = new SimpleCriteria(valoresCriteria);
Map<String, Object> valores = new HashMap<String, Object>();
valores.put("excluido", 1);
valores.put("justificativa",
dsRequest.getClientSuppliedValues().get("justificativa"));
@SuppressWarnings("unchecked")
Set<String> chaves = dsRequest.getValues().keySet();
for (String chave : chaves) {
if (!chave.startsWith("_") && !valores.containsKey(chave)) {
valores.put(chave, dsRequest.getValues().get(chave));
}
}
exclusaoLogica = this.executeUpdate(new DSRequest(dsRequest
.getDataSourceName(), "update").setCriteria(criteria)
.setValues(valores).setRPCManager(dsRequest.rpc));
salvaHistorico(exclusaoLogica, "3", dsRequest.getClientSuppliedValues()
.get("justificativa").toString());
return exclusaoLogica;
}
@Override
public DSResponse executeFetch(DSRequest DsRequest) throws Exception { // NOSONAR
DsRequest.getCriteria().put("excluido", 0);
DSResponse dsResponse = super.executeFetch(DsRequest);
return dsResponse;
}
@Override
public DSResponse executeUpdate(DSRequest dsRequest) throws Exception {
DSResponse dsResponse = super.executeUpdate(dsRequest);
salvaHistorico(dsResponse, "2", dsRequest.getClientSuppliedValues()
.get("justificativa").toString());
return dsResponse;
}
private DSResponse salvaHistorico(DSResponse response, String operation,
String Justificativa) throws Exception {
/*
* Gera o nome do DataSource de historico para cada entidade Padrao:
* entidade.ds.xml entidadeHistorico.ds.xml
*/
String dataSourceHistorico;
dataSourceHistorico = response.getDataSource().getName() + "Historico";
DSRequest auditRequest = new DSRequest();
auditRequest.setDataSourceName(dataSourceHistorico);
auditRequest.setValues(response.getRecord());
auditRequest.setOperationType("add");
auditRequest.setFieldValue("operacao", operation);
auditRequest.setFieldValue("dataOperacao", new Date());
auditRequest.setFieldValue("justificativa", Justificativa);
auditRequest.setFieldValue("operador", "usuario");
// TODO modificar o usuario quando integrar com o SisAcesso
return auditRequest.execute();
}
}Any solutions?