This is an automated email from the git hooks/post-receive script. New commit to branch feature/7463-3 in repository observe. See http://git.codelutin.com/observe.git commit 53860184823192f4c4ac206e7790e8ed268ed473 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Sep 9 15:25:11 2015 +0200 Test de generation des rapports en mode REST + correction Ajout des annotayions @PostRequest et @DeleteRequest pour utiliser les méthodes POST ou DELETE dans les requêtes REST (refs #7463) --- .../v1/actions/report/ReportServiceController.java | 12 +- .../src/main/filters/observe-reports.properties | 10 +- .../services/service/ReferentialService.java | 5 + .../consolidate/ConsolidateDataService.java | 2 + .../service/actions/report/ReportBuilder.java | 49 +-- .../service/actions/report/ReportService.java | 14 +- .../actions/report/model/ReportOperation.java | 107 ----- .../actions/report/model/ReportRequest.java | 407 ------------------- .../report/model/operations/ExecuteRequests.java | 120 ------ .../report/model/operations/GroupByLength.java | 111 ------ .../actions/report/model/operations/SumColumn.java | 129 ------ .../report/model/operations/SumIntColumn.java | 129 ------ .../actions/report/model/operations/SumIntRow.java | 129 ------ .../actions/report/model/operations/SumRow.java | 129 ------ .../service/actions/validate/ValidateService.java | 3 + .../longline/ActivityLongLineEncouterService.java | 2 + .../ActivityLongLineSensorUsedService.java | 2 + .../service/longline/ActivityLonglineService.java | 4 + .../longline/GearUseFeaturesLonglineService.java | 4 + .../service/longline/SetLonglineCatchService.java | 2 + .../SetLonglineDetailCompositionService.java | 2 + .../SetLonglineGlobalCompositionService.java | 2 + .../service/longline/SetLonglineService.java | 4 + .../services/service/longline/TdrService.java | 2 + .../service/longline/TripLonglineService.java | 4 + .../seine/ActivitySeineObservedSystemService.java | 2 + .../service/seine/ActivitySeineService.java | 4 + .../service/seine/FloatingObjectService.java | 4 + .../service/seine/GearUseFeaturesSeineService.java | 4 + .../service/seine/NonTargetCatchService.java | 2 + .../service/seine/NonTargetSampleService.java | 2 + .../seine/ObjectObservedSpeciesService.java | 2 + .../service/seine/ObjectSchoolEstimateService.java | 2 + .../services/service/seine/RouteService.java | 4 + .../service/seine/SchoolEstimateService.java | 2 + .../services/service/seine/SetSeineService.java | 4 + .../services/service/seine/TargetCatchService.java | 2 + .../service/seine/TargetSampleService.java | 2 + .../seine/TransmittingBuoyOperationService.java | 2 + .../services/service/seine/TripSeineService.java | 4 + .../fr/ird/observe/services/spi/DeleteRequest.java | 14 + .../fr/ird/observe/services/spi/PostRequest.java | 14 + .../service/actions/report/ReportBuilderTest.java | 11 +- .../services/dto/actions/report}/DataMatrix.java | 2 +- .../services/dto/actions/report}/Report.java | 2 +- .../dto/actions/report/ReportOperation.java | 41 ++ .../services/dto/actions/report/ReportRequest.java | 187 +++++++++ .../dto/actions/report}/ReportVariable.java | 32 +- .../services/dto/gson/ObserveDtoGsonSupplier.java | 2 + .../services/dto/gson/ReportVariableAdapter.java | 55 +++ .../services/ObserveServiceFactoryRest.java | 11 +- .../report/AbstractReportServiceRestTest.java | 28 +- .../report/ReportAccessoryCatchRestTest.java | 9 +- .../service/actions/report/ReportServiceTopia.java | 441 ++++++++++++++++++++- .../report/AbstractReportServiceTopiaTest.java | 8 +- .../actions/report/ReportAccessoryCatch2Test.java | 2 +- .../report/ReportAccessoryCatchByGroup2Test.java | 2 +- .../report/ReportAccessoryCatchByGroupTest.java | 7 +- .../actions/report/ReportAccessoryCatchTest.java | 7 +- .../report/ReportActivityWithCommentTest.java | 6 +- .../actions/report/ReportAllActivitysTest.java | 7 +- .../actions/report/ReportDailySetAndCatchTest.java | 6 +- .../service/actions/report/ReportDcpUsageTest.java | 6 +- .../report/ReportSetByAssociation2Test.java | 2 +- .../actions/report/ReportSetByAssociationTest.java | 6 +- .../report/ReportTargetCatchByAssociationTest.java | 6 +- .../ReportTargetDiscardedByAssociationTest.java | 6 +- 67 files changed, 914 insertions(+), 1432 deletions(-) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/report/ReportServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/report/ReportServiceController.java index f41c17f..c93a58d 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/report/ReportServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/report/ReportServiceController.java @@ -1,12 +1,9 @@ package fr.ird.observe.application.web.controller.v1.actions.report; import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; +import fr.ird.observe.services.dto.actions.report.DataMatrix; +import fr.ird.observe.services.dto.actions.report.Report; import fr.ird.observe.services.service.actions.report.ReportService; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; - -import java.util.List; -import java.util.Map; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com @@ -26,9 +23,4 @@ public class ReportServiceController extends ObserveAuthenticatedServiceControll public DataMatrix executeReport(Report report, String tripId) { return service.executeReport(report, tripId); } - - @Override - public <R> List<R> executeRequest(String request, Map<String, Object> params) { - return service.executeRequest(request, params); - } } diff --git a/observe-services-api/src/main/filters/observe-reports.properties b/observe-services-api/src/main/filters/observe-reports.properties index 732b367..c39af69 100644 --- a/observe-services-api/src/main/filters/observe-reports.properties +++ b/observe-services-api/src/main/filters/observe-reports.properties @@ -682,7 +682,7 @@ report.nonTargetDistributionLengths.name=Distribution des tailles par esp\u00e8c report.nonTargetDistributionLengths.description=Afficher la nombre d'individus mesur\u00e9s par classe de taille pour les esp\u00e8ces non cibl\u00e9es report.nonTargetDistributionLengths.columns=Classe de taille,Effectif report.nonTargetDistributionLengths.operations.1=GroupByLength -report.nonTargetDistributionLengths.variable.speciesId=fr.ird.observe.entities.referentiel.Species|\ +report.nonTargetDistributionLengths.variable.speciesId=fr.ird.observe.services.dto.referential.SpeciesDto|\ Select distinct ntl.species \ From TripSeineImpl t \ Join t.route r \ @@ -710,7 +710,7 @@ report.targetStoredDistributionLengthsLD1.name=Distribution des tailles des capt report.targetStoredDistributionLengthsLD1.description=Afficher le nombre d'individus captur\u00e9s, mesur\u00e9s par classe de taille LD1 pour les esp\u00e8ces cibl\u00e9es report.targetStoredDistributionLengthsLD1.columns=Classe de taille,Effectif report.targetStoredDistributionLengthsLD1.operations.1=GroupByLength -report.targetStoredDistributionLengthsLD1.variable.speciesId=fr.ird.observe.entities.referentiel.Species|\ +report.targetStoredDistributionLengthsLD1.variable.speciesId=fr.ird.observe.services.dto.referential.SpeciesDto|\ Select distinct tl.species \ From TripSeineImpl t \ Join t.route r \ @@ -742,7 +742,7 @@ report.targetDiscardedDistributionLengthsLD1.name=Distribution des tailles des r report.targetDiscardedDistributionLengthsLD1.description=Afficher la nombre d'individus rejet\u00e9s, mesur\u00e9s par classe de taille LD1 pour les esp\u00e8ces cibl\u00e9es report.targetDiscardedDistributionLengthsLD1.columns=Classe de taille,Effectif report.targetDiscardedDistributionLengthsLD1.operations.1=GroupByLength -report.targetDiscardedDistributionLengthsLD1.variable.speciesId=fr.ird.observe.entities.referentiel.Species|\ +report.targetDiscardedDistributionLengthsLD1.variable.speciesId=fr.ird.observe.services.dto.referential.SpeciesDto|\ Select distinct tl.species \ From TripSeineImpl t \ Join t.route r \ @@ -774,7 +774,7 @@ report.targetStoredDistributionLengthsLF.name=Distribution des tailles des captu report.targetStoredDistributionLengthsLF.description=Afficher le nombre d'individus captur\u00e9s, mesur\u00e9s par classe de taille LF pour les esp\u00e8ces cibl\u00e9es report.targetStoredDistributionLengthsLF.columns=Classe de taille,Effectif report.targetStoredDistributionLengthsLF.operations.1=GroupByLength -report.targetStoredDistributionLengthsLF.variable.speciesId=fr.ird.observe.entities.referentiel.Species|\ +report.targetStoredDistributionLengthsLF.variable.speciesId=fr.ird.observe.services.dto.referential.SpeciesDto|\ Select distinct tl.species \ From TripSeineImpl t \ Join t.route r \ @@ -806,7 +806,7 @@ report.targetDiscardedDistributionLengthsLF.name=Distribution des tailles des re report.targetDiscardedDistributionLengthsLF.description=Afficher le nombre d'individus rejet\u00e9s, mesur\u00e9s par classe de taille LF pour les esp\u00e8ces cibl\u00e9es report.targetDiscardedDistributionLengthsLF.columns=Classe de taille,Effectif report.targetDiscardedDistributionLengthsLF.operations.1=GroupByLength -report.targetDiscardedDistributionLengthsLF.variable.speciesId=fr.ird.observe.entities.referentiel.Species|\ +report.targetDiscardedDistributionLengthsLF.variable.speciesId=fr.ird.observe.services.dto.referential.SpeciesDto|\ Select distinct tl.species \ From TripSeineImpl t \ Join t.route r \ diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java index f33f58c..53a957b 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java @@ -4,6 +4,8 @@ import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.spi.DeleteRequest; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadReferentialPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteReferentialPermission; @@ -31,14 +33,17 @@ public interface ReferentialService extends ObserveService { @WriteReferentialPermission @Write + @PostRequest <R extends ReferentialDto> String save(FormDto<R> form); @WriteReferentialPermission @Write + @DeleteRequest <R extends ReferentialDto> void delete(Class<R> type, String id) throws DataNotFoundException; @WriteReferentialPermission @Write + @DeleteRequest <R extends ReferentialDto> void delete(Class<R> type, Collection<String> ids) throws DataNotFoundException; } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/consolidate/ConsolidateDataService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/consolidate/ConsolidateDataService.java index 861ba27..5390472 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/consolidate/ConsolidateDataService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/consolidate/ConsolidateDataService.java @@ -2,6 +2,7 @@ package fr.ird.observe.services.service.actions.consolidate; import com.google.common.collect.ImmutableSet; import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.WriteDataPermission; @@ -24,6 +25,7 @@ public interface ConsolidateDataService extends ObserveService{ */ @ReadDataPermission @WriteDataPermission + @PostRequest ImmutableSet<ConsolidateTripSeineDataResult> consolidateTripSeines(ConsolidateTripSeineDataRequest consolidateTripSeineDataRequest); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/ReportBuilder.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/ReportBuilder.java index 55b40b3..8fb69de 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/ReportBuilder.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/ReportBuilder.java @@ -22,10 +22,10 @@ package fr.ird.observe.services.service.actions.report; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportOperation; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; -import fr.ird.observe.services.service.actions.report.model.ReportVariable; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.dto.actions.report.ReportOperation; +import fr.ird.observe.services.dto.actions.report.ReportRequest; +import fr.ird.observe.services.dto.actions.report.ReportVariable; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.SortedProperties; @@ -40,7 +40,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Properties; -import java.util.ServiceLoader; import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -76,34 +75,6 @@ public class ReportBuilder { /** les operations connues par le système */ protected static Map<String, Class<?>> operations; - public static Map<String, Class<?>> getOperations() { - if (operations == null) { - operations = new TreeMap<String, Class<?>>(); - ServiceLoader<ReportOperation> loader = - ServiceLoader.load(ReportOperation.class); - for (ReportOperation op : loader) { - if (log.isInfoEnabled()) { - log.info("Detected operations : " + op.getOperationName()); - } - operations.put(op.getOperationName(), op.getClass()); - } - } - return operations; - } - - public static ReportOperation newOperation(String operationsName) { - Class<?> operationsType = getOperations().get(operationsName); - if (operationsType == null) { - throw new IllegalArgumentException("No such operations [" + operationsName + "], available operationss : " + getOperations().keySet()); - } - try { - Object result = operationsType.newInstance(); - return (ReportOperation) result; - } catch (Exception e) { - throw new IllegalStateException("Could not instanciate operations [" + operationsType + "]", e); - } - } - public List<String> getReportNames() { return reportNames; } @@ -354,7 +325,7 @@ public class ReportBuilder { String operationsDef = requestDico.get(id); - ReportOperation def = getOperation(operationsDef); + ReportOperation def = ReportOperation.valueOf(operationsDef); if (log.isInfoEnabled()) { log.info("Detects a operations : " + def); } @@ -457,16 +428,6 @@ public class ReportBuilder { return result.toArray(new ReportVariable[result.size()]); } - protected ReportOperation getOperation(String operationsDef) { - - // pour le moment, une operations n'a qu'une seule valeur : celle - // du lastName de l'opération - String operationsName = operationsDef; - - ReportOperation def = newOperation(operationsName); - return def; - } - protected String getValue(Map<String, String> dico, String key) { String value = dico.get(key); diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/ReportService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/ReportService.java index ac8ebeb..86df43f 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/ReportService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/ReportService.java @@ -1,14 +1,12 @@ package fr.ird.observe.services.service.actions.report; import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; +import fr.ird.observe.services.dto.actions.report.DataMatrix; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.ReadReferentialPermission; -import java.util.List; -import java.util.Map; - /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ @@ -16,13 +14,11 @@ public interface ReportService extends ObserveService { @ReadDataPermission @ReadReferentialPermission + @PostRequest Report populateVariables(Report report, String tripId); @ReadDataPermission @ReadReferentialPermission + @PostRequest DataMatrix executeReport(Report report, String tripId); - - @ReadDataPermission - @ReadReferentialPermission - <R> List<R> executeRequest(String request, Map<String, Object> params); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/ReportOperation.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/ReportOperation.java deleted file mode 100644 index c507bab..0000000 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/ReportOperation.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * #%L - * ObServe :: Business - * %% - * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.services.service.actions.report.model; - -import fr.ird.observe.services.dto.ObserveDto; -import fr.ird.observe.services.service.actions.report.ReportService; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.awt.Dimension; -import java.awt.Point; -import java.io.Serializable; - -/** - * Pour caractériser une opération à lancer dans un report. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public abstract class ReportOperation implements Serializable, ObserveDto { - - private static final long serialVersionUID = 1L; - - /** Logger */ - private static final Log log = LogFactory.getLog(ReportOperation.class); - - public abstract String getOperationName(); - - /** - * Calcule la position où positionner le rsultat dans la matrice sortante. - * - * @param model le report - * @param incoming la matrice entrante - * @return la position de la première cellule - */ - protected abstract Point computeLocation(Report model, - DataMatrix incoming); - - /** - * Calcule la dimension du résultat de l'opération. - * - * @param model le report - * @param incoming la matrice entrante - * @return la dimension des données de l'opération - */ - protected abstract Dimension computeDimension(Report model, - DataMatrix incoming); - - /** - * Pour executer l'opération. - * - * @param reportService le service de raport - * @param model le modèle - * @param tripId l'identifiant du la maré - * @param incoming la matrice entrante - * @return la matrice sortante - * @pour toute erreur de manipulation de base - */ - public abstract DataMatrix execute(ReportService reportService, - Report model, - String tripId, - DataMatrix incoming); - - protected ReportOperation() { - } - - protected DataMatrix createTmpMatrix(Report model, DataMatrix incoming) { - - DataMatrix result = new DataMatrix(); - - // calcul de la position des résultats de l'opération - Point location = computeLocation(model, incoming); - result.setLocation(location); - - // calcul de la taille des résultats de l'opération - Dimension dim = computeDimension(model, incoming); - result.setDimension(dim); - - // creation de la matrice - result.createData(); - - if (log.isDebugEnabled()) { - log.debug("Operation [" + getOperationName() + "] tmp matrix : " + result); - } - return result; - } - -} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/ReportRequest.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/ReportRequest.java deleted file mode 100644 index c25f584..0000000 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/ReportRequest.java +++ /dev/null @@ -1,407 +0,0 @@ -/* - * #%L - * ObServe :: Business - * %% - * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.services.service.actions.report.model; - -import com.google.common.collect.Maps; -import fr.ird.observe.services.dto.ObserveDto; -import fr.ird.observe.services.service.actions.report.ReportService; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.awt.Dimension; -import java.awt.Point; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -/** - * Pour caractériser une requète à lancer dans un report. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class ReportRequest implements Serializable, ObserveDto { - - private static final long serialVersionUID = 1L; - - /** Logger. */ - private static final Log log = LogFactory.getLog(ReportRequest.class); - - public static final String TRIP_ID_VARIABLE = "tripId"; - - /** le layout de la requete. */ - public enum RequestLayout { - /** lorsque les résultats de la requète sont les lignes du résultat. */ - row, - /** lorsque les résultats de la requète sont les colonnes du résultat. */ - column - } - - /** Un repeater optionnel sur la requête. */ - public static class RequestRepeat implements Serializable, ObserveDto { - - protected final String variableName; - - protected final RequestLayout layout; - - private static final long serialVersionUID = 1L; - - public RequestRepeat(String variableName, RequestLayout layout) { - this.variableName = variableName; - this.layout = layout; - } - - public String getVariableName() { - return variableName; - } - - public RequestLayout getLayout() { - return layout; - } - - @Override - public String toString() { - ToStringBuilder builder = new ToStringBuilder(this); - builder.append("variableName", getVariableName()); - builder.append("layout", getLayout()); - return builder.toString(); - } - } - - /** layout de la requète. */ - protected final RequestLayout layout; - - /** la requète à exécuter. */ - protected final String request; - - /** la position de la requète. */ - protected final Point location; - - /** le repeater optionel. */ - protected final RequestRepeat repeat; - - public ReportRequest(RequestLayout layout, - int x, - int y, - String request, - RequestRepeat repeat) { - this.layout = layout; - this.request = request; - this.repeat = repeat; - location = new Point(x, y); - } - - public RequestLayout getLayout() { - return layout; - } - - public int getX() { - return (int) location.getX(); - } - - public int getY() { - return (int) location.getY(); - } - - public Point getLocation() { - return location; - } - - public String getRequest() { - return request; - } - - public RequestRepeat getRepeat() { - return repeat; - } - - public DataMatrix execute(ReportService reportService, - Report report, - String tripId, - ReportVariable repeatValues) { - - DataMatrix result = new DataMatrix(); - - Map<String, Object> params = extractParams(report, tripId); - - for (Object repeatValue : repeatValues.getValues()) { - params.put(repeat.getVariableName(), repeatValue); - DataMatrix tmp = execute(reportService, params); - if (result == null) { - - // premiere requete executee - result = tmp; - result.setX(0); - result.setY(0); - } else { - switch (repeat.getLayout()) { - - case row: - - // on ajoute le resultat a droite de celui deja present - tmp.setX(result.getX() + result.getWidth()); - tmp.setY(result.getY()); - break; - - case column: - - // on ajoute le resultat en dessous de celui deja present - tmp.setX(result.getX()); - tmp.setY(result.getY() + result.getHeight()); - break; - } - result = DataMatrix.merge(result, tmp); - } - } - result.setX(getX()); - result.setY(getY()); - if (log.isDebugEnabled()) { - log.debug("Result location : " + result.getLocation()); - log.debug("Result data :\n" + result.getClipbordContent(true, true)); - } - return result; - } - - public DataMatrix execute(ReportService reportService, - Report report, - String tripId) { - Map<String, Object> params = extractParams(report, tripId); - - DataMatrix dataMatrix = execute(reportService, params); - - return dataMatrix; - - - } - - public static Map<String, Object> extractParams(Report report, String tripId) { - - Map<String, Object> params = Maps.newHashMap(); - - params.put(TRIP_ID_VARIABLE, tripId); - - for (ReportVariable variable : report.getVariables()) { - - String name = variable.getName(); - - Object value = variable.getSelectedValue(); - - params.put(name, value); - - } - return params; - - } - - - protected DataMatrix execute(ReportService reportService, Map<String, Object> params) { - - // création des paramètres : couples (key, value) - if (log.isDebugEnabled()) { - log.debug("Request : " + request); - log.debug("Available params : " + params.keySet()); - log.debug("Params to use : " + params); - } - - // lancement de la requête - List<?> list = reportService.executeRequest(request, params); - if (log.isDebugEnabled()) { - log.debug("Result size : " + list.size()); - } - - // determination des dimensions du résultat - Dimension dimension = computeDimension(list); - if (log.isDebugEnabled()) { - log.debug("Result dimension : " + dimension); - } - - // construction du resultat - DataMatrix result = computeResult(dimension, list); - if (log.isDebugEnabled()) { - log.debug("Result location : " + result.getLocation()); - log.debug("Result data :\n" + result.getClipbordContent(true, true)); - } - return result; - } - - protected DataMatrix computeResult(Dimension dimension, List<?> list) { - - DataMatrix result = new DataMatrix(); - result.setDimension(dimension); - result.createData(); - - // le seul cas différent est le n-* (une ligne correspond à une colonne) - - int y = 0; - int x = 0; - - switch (layout) { - - case row: - - boolean uniqueColumn = result.getWidth() == 1; - - // les lignes du résultat sont les lignes du tableau - - for (Object row : list) { - - if (uniqueColumn) { - - // une seule colonne - result.setValue(0, y, row); - } else { - - x = 0; - Object[] cells = (Object[]) row; - for (Object cell : cells) { - result.setValue(x++, y, cell); - } - } - - // on passage a la ligne suivante - y++; - } - break; - case column: - - // les lignes du résultat sont les colonnes du tableau - - boolean uniqueRow = result.getHeight() == 1; - - for (Object col : list) { - - if (uniqueRow) { - - // une seule ligne - result.setValue(x, 0, col); - } else { - - y = 0; - Object[] cells = (Object[]) col; - for (Object cell : cells) { - result.setValue(x, y++, cell); - } - } - - // on passage a la colonne suivante - x++; - } - break; - } - - // on pousse la position du résultat - result.setX(getX()); - result.setY(getY()); - return result; - } - - protected Dimension computeDimension(List<?> list) { - - int height = 0; - int width = 0; - - switch (layout) { - - case row: - - // le count de result est le lastNamebre de lignes - height = list.size(); - - if (list.isEmpty()) { - - // vu qu'il n'y a pas de résultat, on ne peut rien dire - width = 0; - } else { - - Object o = list.get(0); - - if (o == null || !o.getClass().isArray()) { - - // une seule colonne - width = 1; - } else { - width = ((Object[]) o).length; - } - } - - break; - case column: - - // le count de result est le lastNamebre de colonnes - width = list.size(); - - if (list.isEmpty()) { - - // vu qu'il n'y a pas de résultat, on ne peut rien dire - height = 0; - } else { - - Object o = list.get(0); - - if (o == null || !o.getClass().isArray()) { - - // une seule ligne - height = 1; - } else { - height = ((Object[]) o).length; - } - } - - break; - } - return new Dimension(width, height); - } - - public static Object[] getParams(String request, Map<String, Object> params) { - - // on parcourt la liste de tous les paramètres pour savoir si on doit - // les inclure pour la requête donnée : - List<String> namesToUsed = new ArrayList<String>(); - for (String paramName : params.keySet()) { - if (request.contains(":" + paramName)) { - namesToUsed.add(paramName); - } - } - Object[] datas = new Object[namesToUsed.size() * 2]; - int index = 0; - for (String name : namesToUsed) { - Object value = params.get(name); - datas[index * 2] = name; - datas[index * 2 + 1] = value; - index++; - } - namesToUsed.clear(); - return datas; - } - - @Override - public String toString() { - ToStringBuilder builder = new ToStringBuilder(this); - builder.append("request", getRequest()); - builder.append("layout", getLayout()); - builder.append("location", getLocation()); - builder.append("repeatVariable", getRepeat()); - return builder.toString(); - } -} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/ExecuteRequests.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/ExecuteRequests.java deleted file mode 100644 index 075a7c3..0000000 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/ExecuteRequests.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * #%L - * ObServe :: Business - * %% - * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.services.service.actions.report.model.operations; - -import fr.ird.observe.services.service.actions.report.ReportService; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportOperation; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; -import fr.ird.observe.services.service.actions.report.model.ReportVariable; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.awt.Dimension; -import java.awt.Point; - -/** - * Opération pour lancer les requètes d'un report. - * <p/> - * Cette opération est toujours exécuter en premier lors de la construction - * du résultat d'un report. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class ExecuteRequests extends ReportOperation { - - /** Logger */ - private static final Log log = LogFactory.getLog(ExecuteRequests.class); - - private static final long serialVersionUID = 1L; - - public static final String OPERATION_NAME = "ExecuteRequests"; - - public ExecuteRequests() { - } - - public String getOperationName() { - return OPERATION_NAME; - } - - @Override - public DataMatrix execute(ReportService reportService, - Report report, - String tripId, - DataMatrix incoming) { - - if (log.isDebugEnabled()) { - log.debug("Launch " + this); - } - - ReportRequest[] requests = report.getRequests(); - - DataMatrix[] requestResults = new DataMatrix[requests.length]; - - int i = 0; - for (ReportRequest request : requests) { - - ReportRequest.RequestRepeat repeatVariable = request.getRepeat(); - - DataMatrix result; - - if (repeatVariable == null) { - - // requete simple sans repetition - result = request.execute(reportService, report, tripId); - } else { - - // on a une requete avec repetition - String repeatVariableName = repeatVariable.getVariableName(); - ReportVariable repeat = report.getRepeatVariable(repeatVariableName); - - - result = request.execute(reportService, report, tripId, repeat); - - - } - - requestResults[i++] = result; - } - - int rows = report.getRows(); - int columns = report.getColumns(); - - DataMatrix result = DataMatrix.merge(rows, columns, requestResults); - return result; - } - - @Override - protected Point computeLocation(Report model, DataMatrix incoming) { - Point result = new Point(0, 0); - return result; - } - - @Override - protected Dimension computeDimension(Report model, DataMatrix incoming) { - - Dimension result = new Dimension(0, 0); - return result; - } -} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/GroupByLength.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/GroupByLength.java deleted file mode 100644 index effca69..0000000 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/GroupByLength.java +++ /dev/null @@ -1,111 +0,0 @@ -package fr.ird.observe.services.service.actions.report.model.operations; - -/* - * #%L - * ObServe :: Business - * %% - * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - - -import fr.ird.observe.services.service.actions.report.ReportService; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportOperation; -import org.apache.commons.lang3.mutable.MutableInt; - -import java.awt.Dimension; -import java.awt.Point; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Set; - -/** - * To group by legnth (first column, second row is count). - * - * I don't know how to make this with hibernate the group by + sum does not work :(. - * - * Created on 5/23/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 4.0 - */ -public class GroupByLength extends ReportOperation { - - private static final long serialVersionUID = 1L; - - private static final String OPERATION_NAME = "GroupByLength"; - - @Override - public String getOperationName() { - return OPERATION_NAME; - } - - @Override - protected Point computeLocation(Report model, DataMatrix incoming) { - Point result = new Point(0, incoming.getHeight()); - return result; - } - - @Override - protected Dimension computeDimension(Report model, DataMatrix incoming) { - Set<String> lengths = new HashSet<String>(); - for (int i = 0; i < incoming.getHeight(); i++) { - lengths.add((String) incoming.getValue(0, i)); - } - Dimension result = new Dimension(incoming.getWidth(), lengths.size()); - return result; - } - - @Override - public DataMatrix execute(ReportService reportService, - Report report, - String tripId, - DataMatrix incoming) { - - // Première passe pour grouper par classe de taille - Map<String, MutableInt> data = new LinkedHashMap<String, MutableInt>(); - for (int i = 0, nbRows = incoming.getHeight(); i < nbRows; i++) { - - String length = (String) incoming.getValue(0, i); - Integer count = Integer.valueOf(incoming.getValue(1, i).toString()); - - MutableInt mutableInt = data.get(length); - if (mutableInt == null) { - mutableInt = new MutableInt(); - data.put(length, mutableInt); - } - mutableInt.add(count); - - } - - // Deuxième passe pour remplir la matrice - DataMatrix result = createTmpMatrix(report, incoming); - int row = 0; - for (Map.Entry<String, MutableInt> entry : data.entrySet()) { - String length = entry.getKey(); - MutableInt mutableInt = entry.getValue(); - result.setValue(0, row, length); - result.setValue(1, row, mutableInt.intValue()); - row++; - } - - return result; - } -} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/SumColumn.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/SumColumn.java deleted file mode 100644 index eb88fd2..0000000 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/SumColumn.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * #%L - * ObServe :: Business - * %% - * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.services.service.actions.report.model.operations; - - -import fr.ird.observe.services.service.actions.report.ReportService; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportOperation; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.awt.Dimension; -import java.awt.Point; -import java.io.Serializable; - -/** - * Opération pour calculer la somme de toutes les cellules d'une colonne. - * <p/> - * Le résultat de l'opération vient se placer dans une nouvelle ligne en bas - * du tableau. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class SumColumn extends ReportOperation { - - /** Logger */ - private static final Log log = - LogFactory.getLog(SumColumn.class); - - private static final long serialVersionUID = 1L; - - private static final String OPERATION_NAME = "SumColumn"; - - - public SumColumn() { - } - - public String getOperationName() { - return OPERATION_NAME; - } - - @Override - public DataMatrix execute(ReportService reportService, - Report report, - String tripId, - DataMatrix incoming) { - - if (log.isDebugEnabled()) { - log.debug("Launch " + this); - } - - // construction du resultat - - DataMatrix tmpMatrix = createTmpMatrix(report, incoming); - - for (int i = 0, nbColumns = incoming.getWidth(); i < nbColumns; i++) { - - Object result = getColumnData(i, incoming); - tmpMatrix.setValue(i, 0, result); - if (log.isDebugEnabled()) { - log.debug("objectOperation [" + i + ",0] = " + result); - } - } - - DataMatrix result = DataMatrix.merge(incoming, tmpMatrix); - return result; - } - - protected Object getColumnData(int column, DataMatrix incoming) { - Double result = 0d; - - int nbRows = incoming.getHeight(); - - for (int row = 0; row < nbRows; row++) { - Serializable o = incoming.getValue(column, row); - - if (o == null || "null".equals(o)) { - o = 0; - } - Double d; - try { - d = Double.valueOf(o.toString()); - } catch (NumberFormatException e) { - // une des données de la colonne n'est pas un count - // on sort directement - if (log.isDebugEnabled()) { - log.debug("Could not convert " + o + " to number", e); - } - return "-"; - } - result += d; - } - - return result; - } - - @Override - protected Point computeLocation(Report model, DataMatrix incoming) { - Point result = new Point(0, incoming.getHeight()); - return result; - } - - @Override - protected Dimension computeDimension(Report model, DataMatrix incoming) { - Dimension result = new Dimension(incoming.getWidth(), 1); - return result; - } -} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/SumIntColumn.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/SumIntColumn.java deleted file mode 100644 index 364a07a..0000000 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/SumIntColumn.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * #%L - * ObServe :: Business - * %% - * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.services.service.actions.report.model.operations; - - -import fr.ird.observe.services.service.actions.report.ReportService; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportOperation; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.awt.Dimension; -import java.awt.Point; -import java.io.Serializable; - -/** - * Opération pour calculer la somme entière de toutes les cellules d'une colonne. - * <p/> - * Le résultat de l'opération vient se placer dans une nouvelle ligne en bas - * du tableau. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class SumIntColumn extends ReportOperation { - - /** Logger */ - private static final Log log = - LogFactory.getLog(SumIntColumn.class); - - private static final long serialVersionUID = 1L; - - private static final String OPERATION_NAME = "SumIntColumn"; - - - public SumIntColumn() { - } - - public String getOperationName() { - return OPERATION_NAME; - } - - @Override - public DataMatrix execute(ReportService reportService, - Report report, - String tripId, - DataMatrix incoming) { - - if (log.isDebugEnabled()) { - log.debug("Launch " + this); - } - - // construction du resultat - - DataMatrix tmpMatrix = createTmpMatrix(report, incoming); - - for (int i = 0, nbColumns = incoming.getWidth(); i < nbColumns; i++) { - - Object result = getColumnData(i, incoming); - tmpMatrix.setValue(i, 0, result); - if (log.isDebugEnabled()) { - log.debug("objectOperation [" + i + ",0] = " + result); - } - } - - DataMatrix result = DataMatrix.merge(incoming, tmpMatrix); - return result; - } - - protected Object getColumnData(int column, DataMatrix incoming) { - Double result = 0d; - - int nbRows = incoming.getHeight(); - - for (int row = 0; row < nbRows; row++) { - Serializable o = incoming.getValue(column, row); - - if (o == null || "null".equals(o)) { - o = 0; - } - Double d; - try { - d = Double.valueOf(o.toString()); - } catch (NumberFormatException e) { - // une des données de la colonne n'est pas un count - // on sort directement - if (log.isDebugEnabled()) { - log.debug("Could not convert " + o + " to number", e); - } - return "-"; - } - result += d; - } - - return result.intValue(); - } - - @Override - protected Point computeLocation(Report model, DataMatrix incoming) { - Point result = new Point(0, incoming.getHeight()); - return result; - } - - @Override - protected Dimension computeDimension(Report model, DataMatrix incoming) { - Dimension result = new Dimension(incoming.getWidth(), 1); - return result; - } -} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/SumIntRow.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/SumIntRow.java deleted file mode 100644 index 66d2038..0000000 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/SumIntRow.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * #%L - * ObServe :: Business - * %% - * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.services.service.actions.report.model.operations; - - -import fr.ird.observe.services.service.actions.report.ReportService; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportOperation; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.awt.Dimension; -import java.awt.Point; -import java.io.Serializable; - -/** - * Opération pour calculer la somme entière de toutes les cellules d'une ligne. - * <p/> - * Le résultat de l'opération vient se placer dans une nouvelle colonne à - * droite du tableau. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class SumIntRow extends ReportOperation { - - /** Logger */ - private static final Log log = LogFactory.getLog(SumIntRow.class); - - public static final String OPERATION_NAME = "SumIntRow"; - - private static final long serialVersionUID = 1L; - - public SumIntRow() { - } - - public String getOperationName() { - return OPERATION_NAME; - } - - @Override - public DataMatrix execute(ReportService reportService, - Report report, - String tripId, - DataMatrix incoming) { - if (log.isDebugEnabled()) { - log.debug("Launch " + this); - } - - // construction du result - - DataMatrix tmpMatrix = createTmpMatrix(report, incoming); - - for (int i = 0, nbRows = incoming.getHeight(); i < nbRows; i++) { - - Object result = getRowData(i, incoming); - tmpMatrix.setValue(0, i, result); - if (log.isDebugEnabled()) { - log.debug("objectOperation [0, " + i + "] = " + result); - } - } - - DataMatrix result = DataMatrix.merge(incoming, tmpMatrix); - return result; - } - - - protected Object getRowData(int row, DataMatrix incoming) { - - Double result = 0d; - - int nbColumns = incoming.getWidth(); - - for (int col = 0; col < nbColumns; col++) { - Serializable o = incoming.getValue(col, row); - - if (o == null || "null".equals(o)) { - o = 0; - } - Double d; - try { - d = Double.valueOf(o.toString()); - } catch (NumberFormatException e) { - // une des données de la colonne n'est pas un count - // on sort directement - if (log.isDebugEnabled()) { - log.debug("Could not convert " + o + " to number", e); - } - return "-"; - } - result += d; - } - - return result.intValue(); - } - - @Override - protected Point computeLocation(Report model, DataMatrix incoming) { - Point result = new Point(incoming.getWidth(), 0); - return result; - } - - @Override - protected Dimension computeDimension(Report model, DataMatrix incoming) { - - Dimension result = new Dimension(1, incoming.getHeight()); - return result; - } -} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/SumRow.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/SumRow.java deleted file mode 100644 index 438da89..0000000 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/operations/SumRow.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * #%L - * ObServe :: Business - * %% - * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ -package fr.ird.observe.services.service.actions.report.model.operations; - - -import fr.ird.observe.services.service.actions.report.ReportService; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportOperation; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.awt.Dimension; -import java.awt.Point; -import java.io.Serializable; - -/** - * Opération pour calculer la somme de toutes les cellules d'une ligne. - * <p/> - * Le résultat de l'opération vient se placer dans une nouvelle colonne à - * droite du tableau. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 1.4 - */ -public class SumRow extends ReportOperation { - - /** Logger */ - private static final Log log = LogFactory.getLog(SumRow.class); - - public static final String OPERATION_NAME = "SumRow"; - - private static final long serialVersionUID = 1L; - - public SumRow() { - } - - public String getOperationName() { - return OPERATION_NAME; - } - - @Override - public DataMatrix execute(ReportService reportService, - Report report, - String tripId, - DataMatrix incoming) { - if (log.isDebugEnabled()) { - log.debug("Launch " + this); - } - - // construction du result - - DataMatrix tmpMatrix = createTmpMatrix(report, incoming); - - for (int i = 0, nbRows = incoming.getHeight(); i < nbRows; i++) { - - Object result = getRowData(i, incoming); - tmpMatrix.setValue(0, i, result); - if (log.isDebugEnabled()) { - log.debug("objectOperation [0, " + i + "] = " + result); - } - } - - DataMatrix result = DataMatrix.merge(incoming, tmpMatrix); - return result; - } - - - protected Object getRowData(int row, DataMatrix incoming) { - - Double result = 0d; - - int nbColumns = incoming.getWidth(); - - for (int col = 0; col < nbColumns; col++) { - Serializable o = incoming.getValue(col, row); - - if (o == null || "null".equals(o)) { - o = 0; - } - Double d; - try { - d = Double.valueOf(o.toString()); - } catch (NumberFormatException e) { - // une des données de la colonne n'est pas un count - // on sort directement - if (log.isDebugEnabled()) { - log.debug("Could not convert " + o + " to number", e); - } - return "-"; - } - result += d; - } - - return result; - } - - @Override - protected Point computeLocation(Report model, DataMatrix incoming) { - Point result = new Point(incoming.getWidth(), 0); - return result; - } - - @Override - protected Dimension computeDimension(Report model, DataMatrix incoming) { - - Dimension result = new Dimension(1, incoming.getHeight()); - return result; - } -} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateService.java index 29837f3..610c6e3 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.actions.validate; import com.google.common.collect.ImmutableSet; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.spi.NoDataAccess; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.ReadReferentialPermission; @@ -21,10 +22,12 @@ public interface ValidateService extends ObserveService { ImmutableSet<String> getAvailableContextNames(); @ReadReferentialPermission + @PostRequest ValidateReferentialsResult validateReferentials(ValidateReferentialsRequest request); @ReadDataPermission @ReadReferentialPermission + @PostRequest ValidateDataResult validateData(ValidateDataRequest request); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterService.java index 722bc1b..51d14cd 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.ActivityLonglineEncouterDto; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -20,6 +21,7 @@ public interface ActivityLongLineEncouterService extends ObserveService { @WriteDataPermission @Write + @PostRequest String save(FormDto<ActivityLonglineEncouterDto> form); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedService.java index d370554..34d9b79 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.ActivityLonglineSensorUsedDto; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -20,6 +21,7 @@ public interface ActivityLongLineSensorUsedService extends ObserveService { @WriteDataPermission @Write + @PostRequest String save(FormDto<ActivityLonglineSensorUsedDto> form); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java index 486153e..8fbce7c 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java @@ -4,6 +4,8 @@ import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.ActivityLonglineStubDto; +import fr.ird.observe.services.spi.DeleteRequest; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -29,9 +31,11 @@ public interface ActivityLonglineService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(String tripLonglineId, FormDto<ActivityLonglineDto> form); @Write @WriteDataPermission + @DeleteRequest void delete(String tripLonglineId, String activityLonglineId); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/GearUseFeaturesLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/GearUseFeaturesLonglineService.java index e3e6bb9..52a57d9 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/GearUseFeaturesLonglineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/GearUseFeaturesLonglineService.java @@ -3,6 +3,8 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; +import fr.ird.observe.services.spi.DeleteRequest; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -28,10 +30,12 @@ public interface GearUseFeaturesLonglineService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(String tripLonglineId, FormDto<GearUseFeaturesLonglineDto> form); @Write @WriteDataPermission + @DeleteRequest void delete(String tripLonglineId, String gearUseFeaturesLonglineId); diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchService.java index 9788054..b233190 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -20,6 +21,7 @@ public interface SetLonglineCatchService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(FormDto<SetLonglineCatchDto> form); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionService.java index 266dc42..ed66781 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.SetLonglineDetailCompositionDto; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -20,6 +21,7 @@ public interface SetLonglineDetailCompositionService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(FormDto<SetLonglineDetailCompositionDto> form); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionService.java index 6d21dc3..5e6a387 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -20,6 +21,7 @@ public interface SetLonglineGlobalCompositionService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(FormDto<SetLonglineGlobalCompositionDto> form); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java index ba67ee9..6d0f340 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java @@ -3,6 +3,8 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.SetLonglineDto; +import fr.ird.observe.services.spi.DeleteRequest; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -23,10 +25,12 @@ public interface SetLonglineService extends ObserveService { @WriteDataPermission @Write + @PostRequest String save(String activityLonglineId, FormDto<SetLonglineDto> form); @Write @WriteDataPermission + @DeleteRequest void delete(String activityLonglineId, String setLonglineId); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TdrService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TdrService.java index 340b4f2..5138b61 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TdrService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TdrService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.SetLonglineTdrDto; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -20,6 +21,7 @@ public interface TdrService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(FormDto<SetLonglineTdrDto> form); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java index 2ad90f8..245acad 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java @@ -4,6 +4,8 @@ import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineStubDto; +import fr.ird.observe.services.spi.DeleteRequest; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -29,10 +31,12 @@ public interface TripLonglineService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(FormDto<TripLonglineDto> form); @Write @WriteDataPermission + @DeleteRequest void delete(String tripLonglineId); } \ No newline at end of file diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineObservedSystemService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineObservedSystemService.java index 16b1e49..4f9a3bd 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineObservedSystemService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineObservedSystemService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.ActivitySeineObservedSystemDto; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -20,6 +21,7 @@ public interface ActivitySeineObservedSystemService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(FormDto<ActivitySeineObservedSystemDto> form); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java index d29d88c..a06b19c 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java @@ -4,6 +4,8 @@ import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.ActivitySeineStubDto; +import fr.ird.observe.services.spi.DeleteRequest; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -29,9 +31,11 @@ public interface ActivitySeineService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(String routeId, FormDto<ActivitySeineDto> form); @Write @WriteDataPermission + @DeleteRequest void delete(String routeId, String activitySeineId); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/FloatingObjectService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/FloatingObjectService.java index ab63ca5..308445b 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/FloatingObjectService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/FloatingObjectService.java @@ -4,6 +4,8 @@ import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.services.dto.seine.FloatingObjectStubDto; +import fr.ird.observe.services.spi.DeleteRequest; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -29,10 +31,12 @@ public interface FloatingObjectService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(String activitySeineId, FormDto<FloatingObjectDto> form); @Write @WriteDataPermission + @DeleteRequest void delete(String activitySeineId, String floatingObjectId); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java index 2f3a599..49e8b19 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java @@ -3,6 +3,8 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; +import fr.ird.observe.services.spi.DeleteRequest; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -28,10 +30,12 @@ public interface GearUseFeaturesSeineService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(String tripSeineId, FormDto<GearUseFeaturesSeineDto> form); @Write @WriteDataPermission + @DeleteRequest void delete(String tripSeineId, String gearUseFeaturesSeineId); diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchService.java index 116fa1c..b4e28ea 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDto; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -20,5 +21,6 @@ public interface NonTargetCatchService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(FormDto<SetSeineNonTargetCatchDto> form); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java index 2fdb72a..a56b570 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.NonTargetSampleDto; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -23,6 +24,7 @@ public interface NonTargetSampleService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(String setSeineId, FormDto<NonTargetSampleDto> form); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectObservedSpeciesService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectObservedSpeciesService.java index 0a8aed5..493b9a1 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectObservedSpeciesService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectObservedSpeciesService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.FloatingObjectObservedSpeciesDto; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -20,6 +21,7 @@ public interface ObjectObservedSpeciesService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(FormDto<FloatingObjectObservedSpeciesDto> form); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectSchoolEstimateService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectSchoolEstimateService.java index 145716d..2cc7ff5 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectSchoolEstimateService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectSchoolEstimateService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.FloatingObjectSchoolEstimateDto; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -20,5 +21,6 @@ public interface ObjectSchoolEstimateService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(FormDto<FloatingObjectSchoolEstimateDto> form); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java index 0ce1a77..10c0e24 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java @@ -4,6 +4,8 @@ import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.dto.seine.RouteStubDto; +import fr.ird.observe.services.spi.DeleteRequest; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -29,10 +31,12 @@ public interface RouteService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(String tripSeineId, FormDto<RouteDto> form); @Write @WriteDataPermission + @DeleteRequest void delete(String tripSeineId, String routeId); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateService.java index 8641d23..3b0f1a4 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateDto; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -20,6 +21,7 @@ public interface SchoolEstimateService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(FormDto<SetSeineSchoolEstimateDto> form); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java index 628d950..274095d 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java @@ -3,6 +3,8 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.services.spi.DeleteRequest; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -23,10 +25,12 @@ public interface SetSeineService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(String activitySeineId, FormDto<SetSeineDto> form); @Write @WriteDataPermission + @DeleteRequest void delete(String activitySeineId, String setSeineId); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetCatchService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetCatchService.java index 5bcc92f..9c18783 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetCatchService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetCatchService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -20,5 +21,6 @@ public interface TargetCatchService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(FormDto<SetSeineTargetCatchDto> form); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java index a6d7157..6afdec4 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.TargetSampleDto; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -23,6 +24,7 @@ public interface TargetSampleService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(String setSeineId, FormDto<TargetSampleDto> form); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TransmittingBuoyOperationService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TransmittingBuoyOperationService.java index f12399a..aff73a6 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TransmittingBuoyOperationService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TransmittingBuoyOperationService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.FloatingObjectTransmittingBuoyDto; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -20,6 +21,7 @@ public interface TransmittingBuoyOperationService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(FormDto<FloatingObjectTransmittingBuoyDto> form); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java index ac71130..a5494bb 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java @@ -4,6 +4,8 @@ import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.dto.seine.TripSeineStubDto; +import fr.ird.observe.services.spi.DeleteRequest; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; @@ -29,10 +31,12 @@ public interface TripSeineService extends ObserveService { @Write @WriteDataPermission + @PostRequest String save(FormDto<TripSeineDto> form); @Write @WriteDataPermission + @DeleteRequest void delete(String tripSeineId); } \ No newline at end of file diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/spi/DeleteRequest.java b/observe-services-api/src/main/java/fr/ird/observe/services/spi/DeleteRequest.java new file mode 100644 index 0000000..73f0c16 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/spi/DeleteRequest.java @@ -0,0 +1,14 @@ +package fr.ird.observe.services.spi; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface DeleteRequest { +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/spi/PostRequest.java b/observe-services-api/src/main/java/fr/ird/observe/services/spi/PostRequest.java new file mode 100644 index 0000000..440490b --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/spi/PostRequest.java @@ -0,0 +1,14 @@ +package fr.ird.observe.services.spi; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface PostRequest { +} diff --git a/observe-services-api/src/test/java/fr/ird/observe/services/service/actions/report/ReportBuilderTest.java b/observe-services-api/src/test/java/fr/ird/observe/services/service/actions/report/ReportBuilderTest.java index d63920f..2db2d0e 100644 --- a/observe-services-api/src/test/java/fr/ird/observe/services/service/actions/report/ReportBuilderTest.java +++ b/observe-services-api/src/test/java/fr/ird/observe/services/service/actions/report/ReportBuilderTest.java @@ -1,10 +1,10 @@ package fr.ird.observe.services.service.actions.report; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.dto.actions.report.ReportOperation; +import fr.ird.observe.services.dto.actions.report.ReportRequest; +import fr.ird.observe.services.dto.actions.report.ReportVariable; import fr.ird.observe.services.dto.referential.SpeciesGroupDto; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportOperation; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; -import fr.ird.observe.services.service.actions.report.model.ReportVariable; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -99,8 +99,7 @@ public class ReportBuilderTest { Assert.assertEquals(1, report2.getOperations().length); ReportOperation operation = report2.getOperations()[0]; - Assert.assertNotNull(operation); - Assert.assertEquals("SumRow", operation.getOperationName()); + Assert.assertEquals(ReportOperation.SumRow, operation); Assert.assertEquals(2, report2.getRequests().length); diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/DataMatrix.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/actions/report/DataMatrix.java similarity index 99% rename from observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/DataMatrix.java rename to observe-services-model/src/main/java/fr/ird/observe/services/dto/actions/report/DataMatrix.java index a9599f4..05c32a6 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/DataMatrix.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/actions/report/DataMatrix.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.services.service.actions.report.model; +package fr.ird.observe.services.dto.actions.report; import fr.ird.observe.services.dto.ObserveDto; import org.apache.commons.lang3.builder.ToStringBuilder; diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/Report.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/actions/report/Report.java similarity index 98% rename from observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/Report.java rename to observe-services-model/src/main/java/fr/ird/observe/services/dto/actions/report/Report.java index d62d5e5..5e76144 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/Report.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/actions/report/Report.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.services.service.actions.report.model; +package fr.ird.observe.services.dto.actions.report; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/actions/report/ReportOperation.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/actions/report/ReportOperation.java new file mode 100644 index 0000000..87a6499 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/actions/report/ReportOperation.java @@ -0,0 +1,41 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.services.dto.actions.report; + +import fr.ird.observe.services.dto.ObserveDto; + +/** + * Pour caractériser une opération à lancer dans un report. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.4 + */ +public enum ReportOperation implements ObserveDto { + + ExecuteRequests, + GroupByLength, + SumColumn, + SumIntColumn, + SumIntRow, + SumRow; + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/actions/report/ReportRequest.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/actions/report/ReportRequest.java new file mode 100644 index 0000000..b21dfcf --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/actions/report/ReportRequest.java @@ -0,0 +1,187 @@ +/* + * #%L + * ObServe :: Business + * %% + * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +package fr.ird.observe.services.dto.actions.report; + +import com.google.common.collect.Maps; +import fr.ird.observe.services.dto.ObserveDto; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.Point; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * Pour caractériser une requète à lancer dans un report. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 1.4 + */ +public class ReportRequest implements Serializable, ObserveDto { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = LogFactory.getLog(ReportRequest.class); + + public static final String TRIP_ID_VARIABLE = "tripId"; + + /** le layout de la requete. */ + public enum RequestLayout { + /** lorsque les résultats de la requète sont les lignes du résultat. */ + row, + /** lorsque les résultats de la requète sont les colonnes du résultat. */ + column + } + + /** Un repeater optionnel sur la requête. */ + public static class RequestRepeat implements Serializable, ObserveDto { + + protected final String variableName; + + protected final RequestLayout layout; + + private static final long serialVersionUID = 1L; + + public RequestRepeat(String variableName, RequestLayout layout) { + this.variableName = variableName; + this.layout = layout; + } + + public String getVariableName() { + return variableName; + } + + public RequestLayout getLayout() { + return layout; + } + + @Override + public String toString() { + ToStringBuilder builder = new ToStringBuilder(this); + builder.append("variableName", getVariableName()); + builder.append("layout", getLayout()); + return builder.toString(); + } + } + + /** layout de la requète. */ + protected final RequestLayout layout; + + /** la requète à exécuter. */ + protected final String request; + + /** la position de la requète. */ + protected final Point location; + + /** le repeater optionel. */ + protected final RequestRepeat repeat; + + public ReportRequest(RequestLayout layout, + int x, + int y, + String request, + RequestRepeat repeat) { + this.layout = layout; + this.request = request; + this.repeat = repeat; + location = new Point(x, y); + } + + public RequestLayout getLayout() { + return layout; + } + + public int getX() { + return (int) location.getX(); + } + + public int getY() { + return (int) location.getY(); + } + + public Point getLocation() { + return location; + } + + public String getRequest() { + return request; + } + + public RequestRepeat getRepeat() { + return repeat; + } + + public static Map<String, Object> extractParams(Report report, String tripId) { + + Map<String, Object> params = Maps.newHashMap(); + + params.put(TRIP_ID_VARIABLE, tripId); + + for (ReportVariable variable : report.getVariables()) { + + String name = variable.getName(); + + Object value = variable.getSelectedValue(); + + params.put(name, value); + + } + return params; + + } + + public static Object[] getParams(String request, Map<String, Object> params) { + + // on parcourt la liste de tous les paramètres pour savoir si on doit + // les inclure pour la requête donnée : + List<String> namesToUsed = new ArrayList<String>(); + for (String paramName : params.keySet()) { + if (request.contains(":" + paramName)) { + namesToUsed.add(paramName); + } + } + Object[] datas = new Object[namesToUsed.size() * 2]; + int index = 0; + for (String name : namesToUsed) { + Object value = params.get(name); + datas[index * 2] = name; + datas[index * 2 + 1] = value; + index++; + } + namesToUsed.clear(); + return datas; + } + + @Override + public String toString() { + ToStringBuilder builder = new ToStringBuilder(this); + builder.append("request", getRequest()); + builder.append("layout", getLayout()); + builder.append("location", getLocation()); + builder.append("repeatVariable", getRepeat()); + return builder.toString(); + } +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/ReportVariable.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/actions/report/ReportVariable.java similarity index 66% rename from observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/ReportVariable.java rename to observe-services-model/src/main/java/fr/ird/observe/services/dto/actions/report/ReportVariable.java index bce8e27..47747cd 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/report/model/ReportVariable.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/actions/report/ReportVariable.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -package fr.ird.observe.services.service.actions.report.model; +package fr.ird.observe.services.dto.actions.report; import fr.ird.observe.services.dto.ObserveDto; @@ -32,21 +32,31 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.7 */ -public class ReportVariable implements Serializable, ObserveDto { +public class ReportVariable<V> implements Serializable, ObserveDto { + + public final static String PROPERTY_NAME = "name"; + + public final static String PROPERTY_TYPE = "type"; + + public final static String PROPERTY_REQUEST = "request"; + + public final static String PROPERTY_VALUES = "values"; + + public final static String PROPERTY_SELECTED_VALUE = "selectedValue"; private static final long serialVersionUID = 1L; protected String name; - protected Class type; + protected Class<V> type; protected String request; - protected Set values; + protected Set<V> values; - protected Object selectedValue; + protected V selectedValue; - public ReportVariable(String name, Class type, String request) { + public ReportVariable(String name, Class<V> type, String request) { this.name = name; this.type = type; this.request = request; @@ -56,7 +66,7 @@ public class ReportVariable implements Serializable, ObserveDto { return name; } - public Class<?> getType() { + public Class<V> getType() { return type; } @@ -64,19 +74,19 @@ public class ReportVariable implements Serializable, ObserveDto { return request; } - public Set getValues() { + public Set<V> getValues() { return values; } - public void setValues(Set values) { + public void setValues(Set<V> values) { this.values = values; } - public Object getSelectedValue() { + public V getSelectedValue() { return selectedValue; } - public void setSelectedValue(Object selectedValue) { + public void setSelectedValue(V selectedValue) { this.selectedValue = selectedValue; } } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java index 426c9c7..b732268 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java @@ -7,6 +7,7 @@ import com.google.common.collect.ImmutableSet; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.actions.report.ReportVariable; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import java.sql.Timestamp; @@ -70,6 +71,7 @@ public class ObserveDtoGsonSupplier implements Supplier<Gson> { gsonBuilder.registerTypeAdapter(ImmutableMap.class, new ImmutableMapAdapter()); gsonBuilder.registerTypeAdapter(ReferenceDto.class, new ReferenceDtoAdapter()); gsonBuilder.registerTypeAdapter(ReferentialReferenceDto.class, new ReferentialReferenceDtoAdapter()); + gsonBuilder.registerTypeAdapter(ReportVariable.class, new ReportVariableAdapter()); gsonBuilder.enableComplexMapKeySerialization(); } return gsonBuilder; diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReportVariableAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReportVariableAdapter.java new file mode 100644 index 0000000..ad614ec --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReportVariableAdapter.java @@ -0,0 +1,55 @@ +package fr.ird.observe.services.dto.gson; + +import com.google.common.collect.Sets; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.actions.report.ReportVariable; + +import java.lang.reflect.Type; +import java.util.Set; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class ReportVariableAdapter implements JsonDeserializer<ReportVariable> { + + @Override + public ReportVariable deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + JsonObject reportVariableJson = json.getAsJsonObject(); + + String name = context.deserialize(reportVariableJson.get(ReportVariable.PROPERTY_NAME), String.class); + Class<?> type = context.deserialize(reportVariableJson.get(ReportVariable.PROPERTY_TYPE), Class.class); + String request = context.deserialize(reportVariableJson.get(ReportVariable.PROPERTY_REQUEST), String.class); + + ReportVariable reportVariable = new ReportVariable<>(name, type, request); + + Class valueType = type; + + if (IdDto.class.isAssignableFrom(type)) { + valueType = ReferenceDto.class; + } + + JsonElement valuesJson = reportVariableJson.get(ReportVariable.PROPERTY_VALUES); + + if (valuesJson != null) { + Set values = Sets.newHashSet(); + for (JsonElement valueJson : valuesJson.getAsJsonArray()) { + Object value = context.deserialize(valueJson, valueType); + values.add(value); + } + + reportVariable.setValues(values); + } + + Object selectedValue = context.deserialize(reportVariableJson.get(ReportVariable.PROPERTY_SELECTED_VALUE), valueType); + + reportVariable.setSelectedValue(selectedValue); + + return reportVariable; + } +} diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java b/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java index cb40777..79f6e21 100644 --- a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java +++ b/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java @@ -21,7 +21,8 @@ import fr.ird.observe.services.http.ObserveRequestMethod; import fr.ird.observe.services.http.ObserveResponse; import fr.ird.observe.services.http.ObserveResponseBuilder; import fr.ird.observe.services.service.DataSourceService; -import fr.ird.observe.services.spi.Write; +import fr.ird.observe.services.spi.DeleteRequest; +import fr.ird.observe.services.spi.PostRequest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -246,10 +247,12 @@ public class ObserveServiceFactoryRest extends ObserveServiceFactorySupport impl addParameters(requestBuilder, method, args); addHeaders(requestBuilder); - //FIXME On devrait utiliser des annotations POST, PUT et DELETE - boolean writeData = method.isAnnotationPresent(Write.class); - if (writeData) { + boolean post = method.isAnnotationPresent(PostRequest.class); + boolean delete = method.isAnnotationPresent(DeleteRequest.class); + if (post) { requestBuilder.setRequestMethod(ObserveRequestMethod.POST); + } else if (delete) { + requestBuilder.setRequestMethod(ObserveRequestMethod.DELETE); } else { requestBuilder.setRequestMethod(ObserveRequestMethod.GET); } diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/AbstractReportServiceTopiaTest.java b/observe-services-rest/src/test/java/fr/ird/observe/services/service/actions/report/AbstractReportServiceRestTest.java similarity index 89% copy from observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/AbstractReportServiceTopiaTest.java copy to observe-services-rest/src/test/java/fr/ird/observe/services/service/actions/report/AbstractReportServiceRestTest.java index 302845c..826d10b 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/AbstractReportServiceTopiaTest.java +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/service/actions/report/AbstractReportServiceRestTest.java @@ -22,14 +22,13 @@ package fr.ird.observe.services.service.actions.report; -import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import fr.ird.observe.services.dto.ReferenceDtos; -import fr.ird.observe.services.service.AbstractServiceTopiaTest; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; -import fr.ird.observe.services.service.actions.report.model.ReportVariable; +import fr.ird.observe.services.dto.actions.report.DataMatrix; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.dto.actions.report.ReportRequest; +import fr.ird.observe.services.dto.actions.report.ReportVariable; +import fr.ird.observe.services.service.AbstractServiceRestTest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; @@ -41,7 +40,6 @@ import java.net.URL; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; /** * Classe abstraite de test d'un report. @@ -52,10 +50,10 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 1.9 */ -public abstract class AbstractReportServiceTopiaTest extends AbstractServiceTopiaTest { +public abstract class AbstractReportServiceRestTest extends AbstractServiceRestTest { /** Logger */ - private static final Log log = LogFactory.getLog(AbstractReportServiceTopiaTest.class); + private static final Log log = LogFactory.getLog(AbstractReportServiceRestTest.class); protected ReportService service; @@ -67,16 +65,6 @@ public abstract class AbstractReportServiceTopiaTest extends AbstractServiceTopi protected abstract String getReportId(); - @Override - public String getScriptName() { - return "dataForTestSeine"; - } - - @Override - public Set<String> getTestNamesChangeDataBase() { - return ImmutableSet.of(); - } - @Before public final void setUp() throws Exception { @@ -160,7 +148,7 @@ public abstract class AbstractReportServiceTopiaTest extends AbstractServiceTopi if (reports == null) { URL reportLocation = - AbstractReportServiceTopiaTest.class.getResource("/observe-reports.properties"); + AbstractReportServiceRestTest.class.getResource("/observe-reports.properties"); if (log.isInfoEnabled()) { log.info("Loading reports from " + reportLocation); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchTest.java b/observe-services-rest/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchRestTest.java similarity index 95% copy from observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchTest.java copy to observe-services-rest/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchRestTest.java index dbfe11c..971a311 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchTest.java +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchRestTest.java @@ -22,10 +22,9 @@ package fr.ird.observe.services.service.actions.report; -import fr.ird.observe.services.service.actions.report.AbstractReportServiceTopiaTest; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; +import fr.ird.observe.services.dto.actions.report.DataMatrix; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.dto.actions.report.ReportRequest; import org.junit.Assert; /** @@ -34,7 +33,7 @@ import org.junit.Assert; * @author Tony Chemit - chemit@codelutin.com * @since 1.9 */ -public class ReportAccessoryCatchTest extends AbstractReportServiceTopiaTest { +public class ReportAccessoryCatchRestTest extends AbstractReportServiceRestTest { @Override protected void testReportSyntax(Report report) { diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/report/ReportServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/report/ReportServiceTopia.java index 00a26de..a10871b 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/report/ReportServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/report/ReportServiceTopia.java @@ -6,19 +6,25 @@ import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportOperation; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; -import fr.ird.observe.services.service.actions.report.model.ReportVariable; -import fr.ird.observe.services.service.actions.report.model.operations.ExecuteRequests; +import fr.ird.observe.services.dto.actions.report.DataMatrix; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.dto.actions.report.ReportOperation; +import fr.ird.observe.services.dto.actions.report.ReportRequest; +import fr.ird.observe.services.dto.actions.report.ReportVariable; +import org.apache.commons.lang3.mutable.MutableInt; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntity; +import java.awt.Dimension; +import java.awt.Point; +import java.io.Serializable; +import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.TreeMap; /** @@ -103,13 +109,9 @@ public class ReportServiceTopia extends ObserveServiceTopia implements ReportSer } - - // creation de la première opération qui exécute les requètes - ReportOperation firstRequest = ReportBuilder.newOperation(ExecuteRequests.OPERATION_NAME); - // lancement de la première opération et la matrice de resultat - DataMatrix result = firstRequest.execute( - this, + DataMatrix result = executeReportOperation( + ReportOperation.ExecuteRequests, report, tripId, new DataMatrix()); @@ -121,8 +123,8 @@ public class ReportServiceTopia extends ObserveServiceTopia implements ReportSer if (log.isDebugEnabled()) { log.debug("Apply objectOperation " + objectOperation + " to " + tmp); } - result = objectOperation.execute( - this, + result = executeReportOperation( + objectOperation, report, tripId, tmp); @@ -133,8 +135,413 @@ public class ReportServiceTopia extends ObserveServiceTopia implements ReportSer return result; } - @Override - public <R> List<R> executeRequest(String request, Map<String, Object> params) { + private DataMatrix executeReportOperation(ReportOperation executeRequests, Report report, String tripId, DataMatrix incoming) { + + DataMatrix result = incoming; + + switch (executeRequests) { + case ExecuteRequests: { + + ReportRequest[] requests = report.getRequests(); + + DataMatrix[] requestResults = new DataMatrix[requests.length]; + + int i = 0; + for (ReportRequest request : requests) { + + ReportRequest.RequestRepeat repeatVariable = request.getRepeat(); + + if (repeatVariable == null) { + + // requete simple sans repetition + result = executeReportRequest(request, report, tripId); + } else { + + // on a une requete avec repetition + String repeatVariableName = repeatVariable.getVariableName(); + ReportVariable repeat = report.getRepeatVariable(repeatVariableName); + + + result = executeReportRequest(request, report, tripId, repeat); + + + } + + requestResults[i++] = result; + } + + int rows = report.getRows(); + int columns = report.getColumns(); + + result = DataMatrix.merge(rows, columns, requestResults); + } break; + + case GroupByLength: { + // Première passe pour grouper par classe de taille + Map<String, MutableInt> data = new LinkedHashMap<String, MutableInt>(); + for (int row = 0, nbRows = incoming.getHeight(); row < nbRows; row++) { + + String length = (String) incoming.getValue(0, row); + Integer count = Integer.valueOf(incoming.getValue(1, row).toString()); + + MutableInt mutableInt = data.get(length); + if (mutableInt == null) { + mutableInt = new MutableInt(); + data.put(length, mutableInt); + } + mutableInt.add(count); + + } + + // Deuxième passe pour remplir la matrice + Set<String> lengths = new HashSet<String>(); + for (int row = 0; row < incoming.getHeight(); row++) { + lengths.add((String) incoming.getValue(0, row)); + } + + result = createTmpMatrix(0, incoming.getHeight(), incoming.getWidth(), lengths.size()); + int row = 0; + for (Map.Entry<String, MutableInt> entry : data.entrySet()) { + String length = entry.getKey(); + MutableInt mutableInt = entry.getValue(); + result.setValue(0, row, length); + result.setValue(1, row, mutableInt.intValue()); + row++; + } + } break; + + case SumColumn: + case SumIntColumn: { + + DataMatrix tmpMatrix = createTmpMatrix(0, incoming.getHeight(), incoming.getWidth(), 1); + + for (int column = 0, nbColumns = incoming.getWidth(); column < nbColumns; column++) { + + Object sumColumn = getSumColumn(column, incoming); + if (ReportOperation.SumIntColumn.equals(executeRequests) && sumColumn instanceof Number) { + sumColumn = ((Number) sumColumn).intValue(); + } + tmpMatrix.setValue(column, 0, sumColumn); + if (log.isDebugEnabled()) { + log.debug("objectOperation [" + column + ",0] = " + sumColumn); + } + } + + result = DataMatrix.merge(incoming, tmpMatrix); + } break; + case SumRow: + case SumIntRow: { + + DataMatrix tmpMatrix = createTmpMatrix(incoming.getWidth(), 0, 1, incoming.getHeight()); + + for (int row = 0, nbRows = incoming.getHeight(); row < nbRows; row++) { + + Object sumRow = getSumRow(row, incoming); + if (ReportOperation.SumIntRow.equals(executeRequests) && sumRow instanceof Number) { + sumRow = ((Number) sumRow).intValue(); + } + tmpMatrix.setValue(0, row, sumRow); + if (log.isDebugEnabled()) { + log.debug("objectOperation [0, " + row + "] = " + sumRow); + } + } + + result = DataMatrix.merge(incoming, tmpMatrix); + + } break; + } + + return result; + } + + protected Object getSumColumn(int column, DataMatrix incoming) { + Double result = 0d; + + int nbRows = incoming.getHeight(); + + for (int row = 0; row < nbRows; row++) { + Serializable o = incoming.getValue(column, row); + + if (o == null || "null".equals(o)) { + o = 0; + } + Double d; + try { + d = Double.valueOf(o.toString()); + } catch (NumberFormatException e) { + // une des données de la colonne n'est pas un count + // on sort directement + if (log.isDebugEnabled()) { + log.debug("Could not convert " + o + " to number", e); + } + return "-"; + } + result += d; + } + + return result; + } + + protected Object getSumRow(int row, DataMatrix incoming) { + + Double result = 0d; + + int nbColumns = incoming.getWidth(); + + for (int col = 0; col < nbColumns; col++) { + Serializable o = incoming.getValue(col, row); + + if (o == null || "null".equals(o)) { + o = 0; + } + Double d; + try { + d = Double.valueOf(o.toString()); + } catch (NumberFormatException e) { + // une des données de la colonne n'est pas un count + // on sort directement + if (log.isDebugEnabled()) { + log.debug("Could not convert " + o + " to number", e); + } + return "-"; + } + result += d; + } + + return result; + } + + + private DataMatrix createTmpMatrix(int positionX, int positionY, int width, int height) { + + DataMatrix result = new DataMatrix(); + + // calcul de la position des résultats de l'opération + Point location = new Point(positionX, positionY); + result.setLocation(location); + + // calcul de la taille des résultats de l'opération + Dimension dim = new Dimension(width, height); + result.setDimension(dim); + + // creation de la matrice + result.createData(); + + return result; + } + + public DataMatrix executeReportRequest(ReportRequest request, Report report, String tripId, ReportVariable repeatValues) { + + DataMatrix result = new DataMatrix(); + + Map<String, Object> params = request.extractParams(report, tripId); + + for (Object repeatValue : repeatValues.getValues()) { + params.put(request.getRepeat().getVariableName(), repeatValue); + DataMatrix tmp = executeReportRequest(request, params); + if (result == null) { + + // premiere requete executee + result = tmp; + result.setX(0); + result.setY(0); + } else { + switch (request.getRepeat().getLayout()) { + + case row: + + // on ajoute le resultat a droite de celui deja present + tmp.setX(result.getX() + result.getWidth()); + tmp.setY(result.getY()); + break; + + case column: + + // on ajoute le resultat en dessous de celui deja present + tmp.setX(result.getX()); + tmp.setY(result.getY() + result.getHeight()); + break; + } + result = DataMatrix.merge(result, tmp); + } + } + result.setX(request.getX()); + result.setY(request.getY()); + if (log.isDebugEnabled()) { + log.debug("Result location : " + result.getLocation()); + log.debug("Result data :\n" + result.getClipbordContent(true, true)); + } + return result; + } + + public DataMatrix executeReportRequest(ReportRequest request, Report report, String tripId) { + Map<String, Object> params = request.extractParams(report, tripId); + + DataMatrix dataMatrix = executeReportRequest(request, params); + + return dataMatrix; + + } + + protected DataMatrix executeReportRequest(ReportRequest reportRequest, Map<String, Object> params) { + + // création des paramètres : couples (key, value) + if (log.isDebugEnabled()) { + log.debug("Request : " + reportRequest.getRequest()); + log.debug("Available params : " + params.keySet()); + log.debug("Params to use : " + params); + } + + // lancement de la requête + List<?> list = executeRequest(reportRequest.getRequest(), params); + if (log.isDebugEnabled()) { + log.debug("Result size : " + list.size()); + } + + // determination des dimensions du résultat + Dimension dimension = computeDimension(reportRequest, list); + if (log.isDebugEnabled()) { + log.debug("Result dimension : " + dimension); + } + + // construction du resultat + DataMatrix result = computeResult(reportRequest, dimension, list); + if (log.isDebugEnabled()) { + log.debug("Result location : " + result.getLocation()); + log.debug("Result data :\n" + result.getClipbordContent(true, true)); + } + return result; + } + + protected DataMatrix computeResult(ReportRequest request, Dimension dimension, List<?> list) { + + DataMatrix result = new DataMatrix(); + result.setDimension(dimension); + result.createData(); + + // le seul cas différent est le n-* (une ligne correspond à une colonne) + + int y = 0; + int x = 0; + + switch (request.getLayout()) { + + case row: + + boolean uniqueColumn = result.getWidth() == 1; + + // les lignes du résultat sont les lignes du tableau + + for (Object row : list) { + + if (uniqueColumn) { + + // une seule colonne + result.setValue(0, y, row); + } else { + + x = 0; + Object[] cells = (Object[]) row; + for (Object cell : cells) { + result.setValue(x++, y, cell); + } + } + + // on passage a la ligne suivante + y++; + } + break; + case column: + + // les lignes du résultat sont les colonnes du tableau + + boolean uniqueRow = result.getHeight() == 1; + + for (Object col : list) { + + if (uniqueRow) { + + // une seule ligne + result.setValue(x, 0, col); + } else { + + y = 0; + Object[] cells = (Object[]) col; + for (Object cell : cells) { + result.setValue(x, y++, cell); + } + } + + // on passage a la colonne suivante + x++; + } + break; + } + + // on pousse la position du résultat + result.setX(request.getX()); + result.setY(request.getY()); + return result; + } + + protected Dimension computeDimension(ReportRequest request, List<?> list) { + + int height = 0; + int width = 0; + + switch (request.getLayout()) { + + case row: + + // le count de result est le lastNamebre de lignes + height = list.size(); + + if (list.isEmpty()) { + + // vu qu'il n'y a pas de résultat, on ne peut rien dire + width = 0; + } else { + + Object o = list.get(0); + + if (o == null || !o.getClass().isArray()) { + + // une seule colonne + width = 1; + } else { + width = ((Object[]) o).length; + } + } + + break; + case column: + + // le count de result est le lastNamebre de colonnes + width = list.size(); + + if (list.isEmpty()) { + + // vu qu'il n'y a pas de résultat, on ne peut rien dire + height = 0; + } else { + + Object o = list.get(0); + + if (o == null || !o.getClass().isArray()) { + + // une seule ligne + height = 1; + } else { + height = ((Object[]) o).length; + } + } + + break; + } + return new Dimension(width, height); + } + + protected <R> List<R> executeRequest(String request, Map<String, Object> params) { // si il y a des references de DTO dans les valeur des paramètres on les remplace par leur id // on copie pour ne pas modifier le paramètre de la méthode @@ -200,8 +607,6 @@ public class ReportServiceTopia extends ObserveServiceTopia implements ReportSer variable.setValues(values); } - - } } diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/AbstractReportServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/AbstractReportServiceTopiaTest.java index 302845c..e250b36 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/AbstractReportServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/AbstractReportServiceTopiaTest.java @@ -25,11 +25,11 @@ package fr.ird.observe.services.service.actions.report; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import fr.ird.observe.services.dto.ReferenceDtos; +import fr.ird.observe.services.dto.actions.report.DataMatrix; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.dto.actions.report.ReportRequest; +import fr.ird.observe.services.dto.actions.report.ReportVariable; import fr.ird.observe.services.service.AbstractServiceTopiaTest; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; -import fr.ird.observe.services.service.actions.report.model.ReportVariable; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatch2Test.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatch2Test.java index 0d821da..31c48b8 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatch2Test.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatch2Test.java @@ -22,7 +22,7 @@ package fr.ird.observe.services.service.actions.report; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; +import fr.ird.observe.services.dto.actions.report.DataMatrix; /** * Test du report {@code discardedAccessoire}. diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchByGroup2Test.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchByGroup2Test.java index 09c5776..a0a5a4e 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchByGroup2Test.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchByGroup2Test.java @@ -22,7 +22,7 @@ package fr.ird.observe.services.service.actions.report; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; +import fr.ird.observe.services.dto.actions.report.DataMatrix; /** * Pour tester le report {@code discardedAccessoireByGroup} diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchByGroupTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchByGroupTest.java index 21fa2c1..2f9851c 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchByGroupTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchByGroupTest.java @@ -21,10 +21,9 @@ */ package fr.ird.observe.services.service.actions.report; -import fr.ird.observe.services.service.actions.report.AbstractReportServiceTopiaTest; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; +import fr.ird.observe.services.dto.actions.report.DataMatrix; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.dto.actions.report.ReportRequest; import org.junit.Assert; /** diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchTest.java index dbfe11c..fc6c124 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAccessoryCatchTest.java @@ -22,10 +22,9 @@ package fr.ird.observe.services.service.actions.report; -import fr.ird.observe.services.service.actions.report.AbstractReportServiceTopiaTest; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; +import fr.ird.observe.services.dto.actions.report.DataMatrix; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.dto.actions.report.ReportRequest; import org.junit.Assert; /** diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportActivityWithCommentTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportActivityWithCommentTest.java index 39e6e80..6547513 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportActivityWithCommentTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportActivityWithCommentTest.java @@ -21,9 +21,9 @@ */ package fr.ird.observe.services.service.actions.report; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; +import fr.ird.observe.services.dto.actions.report.DataMatrix; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.dto.actions.report.ReportRequest; import org.junit.Assert; diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAllActivitysTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAllActivitysTest.java index 969788f..435812e 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAllActivitysTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportAllActivitysTest.java @@ -22,10 +22,9 @@ package fr.ird.observe.services.service.actions.report; * #L% */ -import fr.ird.observe.services.service.actions.report.AbstractReportServiceTopiaTest; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; +import fr.ird.observe.services.dto.actions.report.DataMatrix; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.dto.actions.report.ReportRequest; import org.junit.Assert; /** diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportDailySetAndCatchTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportDailySetAndCatchTest.java index 0b07b83..e647329 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportDailySetAndCatchTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportDailySetAndCatchTest.java @@ -22,9 +22,9 @@ package fr.ird.observe.services.service.actions.report; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; +import fr.ird.observe.services.dto.actions.report.DataMatrix; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.dto.actions.report.ReportRequest; import org.junit.Assert; /** diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportDcpUsageTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportDcpUsageTest.java index 530d467..82b1e7a 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportDcpUsageTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportDcpUsageTest.java @@ -21,9 +21,9 @@ */ package fr.ird.observe.services.service.actions.report; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; +import fr.ird.observe.services.dto.actions.report.DataMatrix; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.dto.actions.report.ReportRequest; import org.junit.Assert; /** diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportSetByAssociation2Test.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportSetByAssociation2Test.java index 18c1b48..c20e07b 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportSetByAssociation2Test.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportSetByAssociation2Test.java @@ -22,7 +22,7 @@ package fr.ird.observe.services.service.actions.report; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; +import fr.ird.observe.services.dto.actions.report.DataMatrix; import org.junit.Ignore; /** diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportSetByAssociationTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportSetByAssociationTest.java index d29f976..0b9900e 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportSetByAssociationTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportSetByAssociationTest.java @@ -21,9 +21,9 @@ */ package fr.ird.observe.services.service.actions.report; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; +import fr.ird.observe.services.dto.actions.report.DataMatrix; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.dto.actions.report.ReportRequest; import org.junit.Assert; /** diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportTargetCatchByAssociationTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportTargetCatchByAssociationTest.java index e75dd69..c27a4ca 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportTargetCatchByAssociationTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportTargetCatchByAssociationTest.java @@ -21,9 +21,9 @@ */ package fr.ird.observe.services.service.actions.report; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; +import fr.ird.observe.services.dto.actions.report.DataMatrix; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.dto.actions.report.ReportRequest; import org.junit.Assert; /** diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportTargetDiscardedByAssociationTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportTargetDiscardedByAssociationTest.java index 7d1ca56..66c45b6 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportTargetDiscardedByAssociationTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/actions/report/ReportTargetDiscardedByAssociationTest.java @@ -21,9 +21,9 @@ */ package fr.ird.observe.services.service.actions.report; -import fr.ird.observe.services.service.actions.report.model.DataMatrix; -import fr.ird.observe.services.service.actions.report.model.Report; -import fr.ird.observe.services.service.actions.report.model.ReportRequest; +import fr.ird.observe.services.dto.actions.report.DataMatrix; +import fr.ird.observe.services.dto.actions.report.Report; +import fr.ird.observe.services.dto.actions.report.ReportRequest; import org.junit.Assert; /** -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.