[Suiviobsmer-commits] r1287 - trunk/wao-business/src/main/java/fr/ifremer/wao
Author: bleny Date: 2011-05-19 14:49:04 +0000 (Thu, 19 May 2011) New Revision: 1287 Log: add filter on sample row in boats for row of type phone call Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-05-17 16:36:33 UTC (rev 1286) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-05-19 14:49:04 UTC (rev 1287) @@ -25,6 +25,7 @@ import fr.ifremer.wao.bean.ContactState; import fr.ifremer.wao.bean.DataReliability; import fr.ifremer.wao.bean.ObsProgram; +import fr.ifremer.wao.bean.ObservationType; import fr.ifremer.wao.bean.SamplingFilter; import fr.ifremer.wao.bean.UserFilter; import fr.ifremer.wao.entity.Company; @@ -497,22 +498,39 @@ if (filter.getObsProgram() == ObsProgram.OBSDEB) { if (filter.getSampleRow() != null) { - String observationUnitCode = filter.getSampleRow().getObservationUnit().getObservationUnitCode(); + if (filter.getSampleRow().isFieldWorkObservation()) { - WaoQueryHelper.TerrestrialDivisionProperty subTerrestrialDivisionProperty = - WaoQueryHelper.newTerrestrialDivisionProperty("TD2"); + // We will filter according to terrestrial division, + // the sample row is associated to a terrestrial + // division, the division contains multiple ports so + // we want all the boats having a port of registry in + // this observation unit - TopiaQuery subquery = WaoQueryHelper.createQuery(subTerrestrialDivisionProperty). - setSelect(subTerrestrialDivisionProperty.portProperty().topiaId()). - addEquals(subTerrestrialDivisionProperty.observationUnitCode(), observationUnitCode); + String observationUnitCode = filter.getSampleRow().getObservationUnit().getObservationUnitCode(); - if (logger.isDebugEnabled()) { - logger.debug("subquery to find ports given an observation unit code: " + subquery); - } + WaoQueryHelper.TerrestrialDivisionProperty subTerrestrialDivisionProperty = + WaoQueryHelper.newTerrestrialDivisionProperty("TD2"); - query.addSubQuery(WaoQueryHelper.format( - "$1 IN (?)", boatProperty.portOfRegistryProperty().topiaId()), subquery); + TopiaQuery subquery = WaoQueryHelper.createQuery(subTerrestrialDivisionProperty). + setSelect(subTerrestrialDivisionProperty.portProperty().topiaId()). + addEquals(subTerrestrialDivisionProperty.observationUnitCode(), observationUnitCode); + if (logger.isDebugEnabled()) { + logger.debug("subquery to find ports given an observation unit code: " + subquery); + } + + query.addSubQuery(WaoQueryHelper.format( + "$1 IN (?)", boatProperty.portOfRegistryProperty().topiaId()), subquery); + + } else if (filter.getSampleRow().isPhoneCall()) { + // We will filter according to the fleet of the + // sample row, we want to get all the boats we can + // found in the same fleet as the boat associated to the + // sample row + query.addEquals(boatProperty.fleet(), + filter.getSampleRow().getBoat() + .getFleet()); + } } } else { applySamplingFilter(filter);
participants (1)
-
bleny@users.labs.libre-entreprise.org