perform-service/src/main/java/org/gcube/application/perform/service/engine/AnagraphicManagerImpl.java

107 lines
3.3 KiB
Java

package org.gcube.application.perform.service.engine;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.gcube.application.perform.service.engine.model.BeanNotFound;
import org.gcube.application.perform.service.engine.model.DBField;
import org.gcube.application.perform.service.engine.model.DBQueryDescriptor;
import org.gcube.application.perform.service.engine.model.ISQueryDescriptor;
import org.gcube.application.perform.service.engine.model.InternalException;
import org.gcube.application.perform.service.engine.model.anagraphic.Batch;
import org.gcube.application.perform.service.engine.model.anagraphic.Farm;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class AnagraphicManagerImpl implements AnagraphicManager {
private static final String INSERT_BATCH="";
private static final String GET_BATCH="";
private static final String INSERT_FARM="";
private static final String GET_FARM="";
private ISQueryDescriptor getISQueryDescriptor() {
throw new RuntimeException("Implment this");
}
@Override
public Batch getBatch(DBQueryDescriptor desc) throws BeanNotFound,SQLException{
DataBaseManager db=DataBaseManager.get(getISQueryDescriptor());
Connection conn=db.getConnection();
PreparedStatement psInsert=conn.prepareStatement(INSERT_BATCH);
// TODO set values
boolean inserted=psInsert.executeUpdate()==1;
if(inserted)
conn.commit();
PreparedStatement psGet=conn.prepareStatement(GET_BATCH);
// TODO set values
ResultSet rs=psGet.executeQuery();
if(!rs.next())
throw new BeanNotFound("Batch not found. Condition was "+desc);
Batch toReturn=rowToBatch(rs);
if(inserted)
log.trace("Inserted Batch {} ",toReturn);
return toReturn;
}
@Override
public Farm getFarm(DBQueryDescriptor desc) throws BeanNotFound,SQLException{
DataBaseManager db=DataBaseManager.get(getISQueryDescriptor());
Connection conn=db.getConnection();
PreparedStatement psInsert=conn.prepareStatement(INSERT_FARM);
// TODO set values
boolean inserted=psInsert.executeUpdate()==1;
if(inserted)
conn.commit();
PreparedStatement psGet=conn.prepareStatement(GET_FARM);
// TODO set values
ResultSet rs=psGet.executeQuery();
if(!rs.next())
throw new BeanNotFound("Farm not found. Condition was "+desc);
Farm toReturn=rowToFarm(rs);
if(inserted)
log.trace("Inserted Batch {} ",toReturn);
return toReturn;
}
private static Batch rowToBatch(ResultSet rs) throws SQLException {
Batch toReturn=new Batch();
toReturn.setFarmId(rs.getLong(DBField.Batch.FARM_ID));
toReturn.setId(rs.getLong(DBField.Batch.BATCH_ID));
toReturn.setName(rs.getString(DBField.Batch.BATCH_NAME));
toReturn.setType(rs.getString(DBField.Batch.BATCH_TYPE));
return toReturn;
}
private static Farm rowToFarm(ResultSet rs) throws SQLException {
Farm toReturn=new Farm();
toReturn.setAssociationId(rs.getLong(DBField.Farm.ASSOCIATION_ID));
toReturn.setAssociationUUID(rs.getString(DBField.Farm.ASSOCIATION_UUID));
toReturn.setCompanyId(rs.getLong(DBField.Farm.COMPANY_ID));
toReturn.setCompanyUUID(rs.getString(DBField.Farm.COMPANY_UUID));
toReturn.setId(rs.getLong(DBField.Farm.FARM_ID));
toReturn.setUUID(rs.getString(DBField.Farm.UUID));
return toReturn;
}
}