r676 - in trunk: sammoa-application/src/main/java/fr/ulr/sammoa/application sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence sammoa-ui-swing sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/action sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/persistence
Author: sbavencoff Date: 2014-05-22 11:01:35 +0200 (Thu, 22 May 2014) New Revision: 676 Url: http://forge.codelutin.com/projects/sammoa/repository/revisions/676 Log: refs #4768 : optimise validation action Added: trunk/sammoa-ui-swing/profiling.xml Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ValidationService.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java trunk/sammoa-ui-swing/pom.xml trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/action/ValidTransectAction.java trunk/sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/persistence/Observation-validation-error-validation.xml Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ValidationService.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ValidationService.java 2014-05-20 08:44:47 UTC (rev 675) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ValidationService.java 2014-05-22 09:01:35 UTC (rev 676) @@ -76,8 +76,6 @@ tx.commit(); - } catch (TopiaException ex) { - throw new TopiaException(ex); } finally { endTransaction(tx); } @@ -100,9 +98,6 @@ transectFlight.setValid(valid); return result; - - } catch (TopiaException ex) { - throw new TopiaException(ex); } finally { endTransaction(tx); } @@ -125,8 +120,6 @@ route.setValid(valid); return result; - } catch (TopiaException ex) { - throw new TopiaException(ex); } finally { endTransaction(tx); } @@ -150,8 +143,6 @@ observation.setValid(valid); return result; - } catch (TopiaException ex) { - throw new TopiaException(ex); } finally { endTransaction(tx); } Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java 2014-05-20 08:44:47 UTC (rev 675) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java 2014-05-22 09:01:35 UTC (rev 676) @@ -235,25 +235,40 @@ private static class InRoutePredicate implements Predicate<Observation> { - protected Route route; + protected Date begin; - protected Iterable<Route> routes; + protected Date end; - protected boolean ignoreDeleted; - public InRoutePredicate(Route route, Iterable<Route> routes, boolean ignoreDeleted) { Preconditions.checkNotNull(route); Preconditions.checkNotNull(routes); - this.route = route; - this.routes = routes; - this.ignoreDeleted = ignoreDeleted; + + if (ignoreDeleted) { + routes = Routes.filterNotDeleted(routes); + } + + Route previousRoute = route; + if (ignoreDeleted && route.isDeleted()) { + previousRoute = Routes.findPrevious(routes, route); + } + if (previousRoute == null) { + previousRoute = Routes.findNext(routes, route); + } + + Preconditions.checkNotNull(previousRoute); + + Route nextRoute = Routes.findNext(routes, previousRoute); + + begin = previousRoute.getBeginTime(); + end = nextRoute != null ? nextRoute.getBeginTime() : null; + } @Override public boolean apply(Observation input) { - return Observations.inRoute(input, route, routes, ignoreDeleted); + return Dates.inInterval(input.getObservationTime(), begin, end); } } Modified: trunk/sammoa-ui-swing/pom.xml =================================================================== --- trunk/sammoa-ui-swing/pom.xml 2014-05-20 08:44:47 UTC (rev 675) +++ trunk/sammoa-ui-swing/pom.xml 2014-05-22 09:01:35 UTC (rev 676) @@ -134,6 +134,16 @@ <artifactId>jxlayer</artifactId> </dependency> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-decorator</artifactId> + </dependency> + + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-config</artifactId> + </dependency> + <!-- swing widgets --> <dependency> <groupId>org.nuiton</groupId> @@ -353,7 +363,7 @@ <configuration> <archive> <manifest> - <useUniqueVersions>true</useUniqueVersions> + <useUniqueVersions>false</useUniqueVersions> <addClasspath>true</addClasspath> <classpathPrefix>./lib/</classpathPrefix> </manifest> Added: trunk/sammoa-ui-swing/profiling.xml =================================================================== --- trunk/sammoa-ui-swing/profiling.xml (rev 0) +++ trunk/sammoa-ui-swing/profiling.xml 2014-05-22 09:01:35 UTC (rev 676) @@ -0,0 +1,15 @@ +<!DOCTYPE aspectj PUBLIC + "-//AspectJ//DTD//EN" + "http://www.eclipse.org/aspectj/dtd/aspectj.dtd"> +<aspectj> + <weaver options="-verbose"/> + <aspects> + <concrete-aspect name="org.nuiton.profiling.NuitonTraceTestAspect" + extends="org.nuiton.profiling.NuitonTrace"> + <pointcut name="executeMethod" + expression=" + execution(* org.nuiton..*(..)) + || execution(* fr.ulr.sammoa..*(..))"/> + </concrete-aspect> + </aspects> +</aspectj> \ No newline at end of file Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/action/ValidTransectAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/action/ValidTransectAction.java 2014-05-20 08:44:47 UTC (rev 675) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/action/ValidTransectAction.java 2014-05-22 09:01:35 UTC (rev 676) @@ -99,7 +99,7 @@ boolean hasDeletedObservation = false; for (Route route : routes) { hasDeletedObservation |= Observations.isAnyDeletedFromRoute( - getModel().getObservations(), route, routes); + getModel().getObservations(), route, getModel().getRoutes()); } if (!hasDeletedObservation Modified: trunk/sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/persistence/Observation-validation-error-validation.xml =================================================================== --- trunk/sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/persistence/Observation-validation-error-validation.xml 2014-05-20 08:44:47 UTC (rev 675) +++ trunk/sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/persistence/Observation-validation-error-validation.xml 2014-05-22 09:01:35 UTC (rev 676) @@ -44,12 +44,9 @@ <message>sammoa.validator.observation.species.required</message> </field-validator> - <field-validator type="speciesCode" short-circuit="true"> - <param name="keys">code</param> - <param name="mode">AT_LEAST_ONE</param> - <param name="useSensitiveContext">true</param> + <field-validator type="fieldexpression" short-circuit="true"> <param name="expression"> - <![CDATA[ species.code == current.code ]]></param> + <![CDATA[ !species.localCreation ]]></param> <message>sammoa.validator.observation.unknown.species##${species.code}</message> </field-validator>
participants (1)
-
sbavencoff@users.forge.codelutin.com