From 4bfae9f97ce679523b80ea207898d7d47e8ab705 Mon Sep 17 00:00:00 2001 From: kaloyane <kaloyane> Date: Fri, 17 Jun 2011 13:58:36 +0000 Subject: [PATCH] [LMS-2269] load the material properties in getMaterialInfo, so that UI can display them in the "All Assays" view SVN: 21737 --- .../cisd/openbis/generic/server/CommonServer.java | 9 +++++---- .../generic/server/business/bo/IMaterialBO.java | 6 ++++++ .../generic/server/business/bo/MaterialBO.java | 12 ++++++++++++ 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java index a2ce216d7f8..a0d32bd2bca 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java @@ -183,7 +183,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.GridCustomFilterPE; import ch.systemsx.cisd.openbis.generic.shared.dto.IEntityInformationHolderDTO; import ch.systemsx.cisd.openbis.generic.shared.dto.IEntityInformationWithPropertiesHolder; import ch.systemsx.cisd.openbis.generic.shared.dto.InvalidationPE; -import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialPE; import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.NewRoleAssignment; import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE; @@ -1582,9 +1581,11 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt public Material getMaterialInfo(String sessionToken, final MaterialIdentifier identifier) { - checkSession(sessionToken); - MaterialPE materialPE = getDAOFactory().getMaterialDAO().tryFindMaterial(identifier); - return (materialPE != null) ? MaterialTranslator.translate(materialPE) : null; + Session session = getSession(sessionToken); + IMaterialBO materialBO = getBusinessObjectFactory().createMaterialBO(session); + materialBO.loadByMaterialIdentifier(identifier); + materialBO.enrichWithProperties(); + return MaterialTranslator.translate(materialBO.getMaterial()); } public IEntityInformationHolderWithPermId getMaterialInformationHolder(String sessionToken, diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IMaterialBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IMaterialBO.java index 07e05126113..0f44e9f1238 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IMaterialBO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IMaterialBO.java @@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.generic.server.business.bo; import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialIdentifier; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.IManagedProperty; import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialPE; @@ -31,6 +32,11 @@ public interface IMaterialBO extends IEntityBusinessObject /** Returns the material which has been loaded. */ MaterialPE getMaterial(); + /** + * Loads the material by a given identifier. + */ + public void loadByMaterialIdentifier(MaterialIdentifier identifier); + /** Adds properties */ public void enrichWithProperties(); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java index ca52a4ffaab..d34b376a60d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java @@ -26,6 +26,7 @@ import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialIdentifier; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.IManagedProperty; import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE; import ch.systemsx.cisd.openbis.generic.shared.dto.EventPE.EntityType; @@ -60,6 +61,17 @@ public final class MaterialBO extends AbstractMaterialBusinessObject implements dataChanged = false; } + public void loadByMaterialIdentifier(MaterialIdentifier identifier) + { + material = getMaterialDAO().tryFindMaterial(identifier); + if (material == null) + { + throw new UserFailureException(String.format( + "Material with identifier '%s' does not exist.", identifier)); + } + dataChanged = false; + } + public final void enrichWithProperties() { if (material != null) -- GitLab