/*
* $Id: PojosGetImagesQueryDefinition.java 1931 2007-11-12 10:39:50Z ola $
*
* Copyright 2006 University of Dundee. All rights reserved.
* Use is subject to license terms supplied in LICENSE.txt
*/
package ome.services.query;
import java.sql.SQLException;
import ome.model.core.Image;
import ome.parameters.Parameters;
import ome.tools.hibernate.QueryBuilder;
import org.hibernate.HibernateException;
import org.hibernate.Session;
public class PojosGetImagesByOptionsQueryDefinition extends Query {
static Definitions defs = new Definitions();
public PojosGetImagesByOptionsQueryDefinition(Parameters parameters) {
super(defs, parameters);
}
@Override
protected void buildQuery(Session session) throws HibernateException,
SQLException {
// TODO copied from PojosGetImagesQueryDefinition. Should be merged.
QueryBuilder qb = new QueryBuilder();
qb.select("img");
qb.from("Image", "img");
qb.join("img.details.creationEvent", "ce", true, true);
qb.join("img.details.updateEvent", "ue", true, true);
qb.join("img.pixels", "pix", true, true);
qb.join("img.format", "format", true, true);
qb.join("pix.pixelsType", "pt", true, true);
qb.join("img.annotationLinksCountPerOwner", "i_c_ann", true, true);
// qb.join("img.datasetLinksCountPerOwner", "i_c_ds", true, true);
if (params.isAcquisitionData()) {
qb.join("img.stageLabel", "position", true, true);
qb.join("img.imagingEnvironment", "condition", true, true);
qb.join("img.objectiveSettings", "os", true, true);
qb.join("os.medium", "me", true, true);
qb.join("os.objective", "objective", true, true);
qb.join("objective.immersion", "im", true, true);
qb.join("objective.correction", "co", true, true);
}
qb.where();
// if PojoOptions sets START_TIME and/or END_TIME
if (params.getStartTime() != null) {
qb.and("img.details.creationEvent.time > :starttime");
qb.param("starttime", params.getStartTime());
}
if (params.getEndTime() != null) {
qb.and("img.details.creationEvent.time < :endtime");
qb.param("endtime", params.getEndTime());
}
setQuery(qb.query(session));
}
@Override
protected void enableFilters(Session session) {
ownerOrGroupFilters(session, new String[] { Image.OWNER_FILTER },
new String[] { Image.GROUP_FILTER });
}
}
// select i from Image i
// #bottomUpHierarchy()
// where
// #imagelist()
// #filters()
// #typeExperimenter()