From cd11188cd395cf20406cdcd29ba17ab13a81be64 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Mon, 6 Sep 2010 13:28:24 +0000 Subject: [PATCH] OBP-37 allow null argument for project SVN: 17727 --- .../generic/server/dataaccess/IExperimentDAO.java | 13 ++++++++----- .../server/dataaccess/db/ExperimentDAO.java | 15 ++++++++------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IExperimentDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IExperimentDAO.java index a79ff24507f..ac68f2bb0d5 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IExperimentDAO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IExperimentDAO.java @@ -33,17 +33,20 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; public interface IExperimentDAO extends IGenericDAO<ExperimentPE> { /** - * Lists all belonging to given <code>project</code>. Fetches also properties. + * Lists experiments of the specified project. Fetches also properties. + * + * @param projectOrNull If <code>null</code> all experiments are returned. */ - public List<ExperimentPE> listExperimentsWithProperties(final ProjectPE project) + public List<ExperimentPE> listExperimentsWithProperties(final ProjectPE projectOrNull) throws DataAccessException; /** - * Lists all of given <code>type</code> belonging to given <code>project</code>. Fetches also - * properties. + * Lists experiments of specified type and specified project. Fetches also properties. + * + * @param projectOrNull If <code>null</code> all experiments of specified type are returned. */ public List<ExperimentPE> listExperimentsWithProperties(final ExperimentTypePE experimentType, - final ProjectPE project) throws DataAccessException; + final ProjectPE projectOrNull) throws DataAccessException; /** * Lists all registered experiments. Doesn't fetch properties. diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAO.java index d91485d5d51..31141cfc3db 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ExperimentDAO.java @@ -57,31 +57,32 @@ public class ExperimentDAO extends AbstractGenericEntityDAO<ExperimentPE> implem super(sessionFactory, databaseInstance, ExperimentPE.class); } - public List<ExperimentPE> listExperimentsWithProperties(final ProjectPE project) + public List<ExperimentPE> listExperimentsWithProperties(final ProjectPE projectOrNull) throws DataAccessException { - return listExperimentsWithProperties(null, project); + return listExperimentsWithProperties(null, projectOrNull); } public List<ExperimentPE> listExperimentsWithProperties( - final ExperimentTypePE experimentTypeOrNull, final ProjectPE project) + final ExperimentTypePE experimentTypeOrNull, final ProjectPE projectOrNull) throws DataAccessException { - assert project != null : "Unspecified project."; - final DetachedCriteria criteria = DetachedCriteria.forClass(getEntityClass()); if (experimentTypeOrNull != null) { criteria.add(Restrictions.eq("experimentType", experimentTypeOrNull)); } - criteria.add(Restrictions.eq("projectInternal", project)); + if (projectOrNull != null) + { + criteria.add(Restrictions.eq("projectInternal", projectOrNull)); + } criteria.setFetchMode("experimentProperties", FetchMode.JOIN); criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); final List<ExperimentPE> list = cast(getHibernateTemplate().findByCriteria(criteria)); if (operationLog.isDebugEnabled()) { operationLog.debug(String.format("%d experiments have been found for project '%s'%s.", - list.size(), project, (experimentTypeOrNull == null) ? "" + list.size(), projectOrNull, (experimentTypeOrNull == null) ? "" : " and experiment type '" + experimentTypeOrNull + "'")); } return list; -- GitLab