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

91 lines
4.2 KiB
Java

package org.gcube.application.perform.service.engine;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.gcube.application.perform.service.engine.model.DBField;
import org.gcube.application.perform.service.engine.model.DBField.ImportRoutine;
import org.gcube.application.perform.service.engine.model.anagraphic.Batch;
import org.gcube.application.perform.service.engine.model.anagraphic.Farm;
import org.gcube.application.perform.service.engine.model.importer.ImportRoutineDescriptor;
import org.gcube.application.perform.service.engine.model.importer.ImportStatus;
public class Queries {
public static final Query GET_BATCH_BY_DESCRIPTIVE_KEY= new Query("Select * from batches where farmid=? AND type=? AND name= ?",
new DBField[] {DBField.Batch.fields.get(DBField.Batch.FARM_ID),
DBField.Batch.fields.get(DBField.Batch.BATCH_TYPE),
DBField.Batch.fields.get(DBField.Batch.BATCH_NAME)});
public static final Query INSERT_BATCH=new Query("INSERT INTO batches (id,uuid,farmid,type,name) VALUES (SELECT (max(id)+1 from batches),?,?,?,?) ON CONFLICT DO NOTHING",
new DBField[] {});
public static final Query GET_FARM_BY_ID=new Query(String.format("SELECT f.farmid as $1%s, f.uuid as %2$s, c.companyid as %3$s, c.uuid as %4$s, a.associationid as %5$s, a.uuid as %6$s FROM "
+ "farms as f INNER JOIN companies as c ON f.companyid=c.companyid INNER JOIN associations as a ON c.associationid=a.associationid WHERE f.farmid = ?",
DBField.Farm.FARM_ID,DBField.Farm.UUID,DBField.Farm.COMPANY_ID,DBField.Farm.COMPANY_UUID,DBField.Farm.ASSOCIATION_ID,DBField.Farm.ASSOCIATION_UUID),
new DBField[] {});
public static final Query GET_BATCH_BY_ID=new Query("Select * from batches where id = ?",
new DBField[] {});
// "acquire"
// set lock = hostname where ID =? and LOCK is null
// Acquired = updated rows == 1
public static final Query ORPHAN_IMPORTS=new Query("",new DBField[]{});
public static final Query ACQUIRE_PS=new Query("",new DBField[]{});
public static final Query GET_BY_ID=new Query("",new DBField[]{});
public static final Query INSERT_ROUTINE=new Query("",new DBField[]{});
public static final Query FILTER_IMPORTS=new Query("",new DBField[]{});
// LOADERS
public 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;
}
public 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;
}
public static ImportRoutineDescriptor rowToDescriptor(ResultSet rs) throws SQLException {
ImportRoutineDescriptor toReturn=new ImportRoutineDescriptor();
toReturn.setBatch_type(rs.getString(ImportRoutine.BATCH_TYPE));
toReturn.setCaller(rs.getString(ImportRoutine.CALLER));
toReturn.setComputationId(rs.getString(ImportRoutine.COMPUTATION_ID));
toReturn.setComputationOperator(rs.getString(ImportRoutine.COMPUTATION_OPID));
toReturn.setComputationOperatorName(rs.getString(ImportRoutine.COMPUTATION_OPNAME));
toReturn.setComputationRequest(rs.getString(ImportRoutine.COMPUTATION_REQ));
toReturn.setComputationUrl(rs.getString(ImportRoutine.COMPUTATION_URL));
toReturn.setEndTime(rs.getTimestamp(ImportRoutine.END).toInstant());
toReturn.setFarmId(rs.getLong(ImportRoutine.FARM_ID));
toReturn.setId(rs.getLong(ImportRoutine.ID));
toReturn.setLock(rs.getString(ImportRoutine.LOCK));
toReturn.setSourceUrl(rs.getString(ImportRoutine.SOURCE_URL));
toReturn.setSourceVersion(rs.getString(ImportRoutine.SOURCE_VERSION));
toReturn.setStartTime(rs.getTimestamp(ImportRoutine.START).toInstant());
toReturn.setStatus(ImportStatus.valueOf(rs.getString(ImportRoutine.STATUS)));
return toReturn;
}
}