Author: echatellier Date: 2014-04-11 17:09:51 +0200 (Fri, 11 Apr 2014) New Revision: 3948 Url: http://forge.codelutin.com/projects/isis-fish/repository/revisions/3948 Log: Improve groupLength compute Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/entities/PopulationGroupImpl.java Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/entities/PopulationGroupImpl.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/entities/PopulationGroupImpl.java 2014-04-11 13:56:35 UTC (rev 3947) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/entities/PopulationGroupImpl.java 2014-04-11 15:09:51 UTC (rev 3948) @@ -51,6 +51,9 @@ /** serialVersionUID. */ private static final long serialVersionUID = 1L; + /** Equation computing result cache to not compute equation at each call to improve performances. */ + protected transient Double groupLength; + /* * @see fr.ifremer.isisfish.entities.PopulationGroup#getAge() */ @@ -73,16 +76,17 @@ */ @Override public double getLength() { - double result = 0; - if (getPopulation() != null && getPopulation().getSpecies() != null) { - if (!getPopulation().getSpecies().getAgeGroupType()) { - result = (getMinLength() + getMaxLength()) / 2.0; - } else { - result = getPopulation().getLength( - getAge() * Month.NUMBER_OF_MONTH, this); + if (groupLength == null) { + if (getPopulation() != null && getPopulation().getSpecies() != null) { + if (!getPopulation().getSpecies().getAgeGroupType()) { + groupLength = (getMinLength() + getMaxLength()) / 2.0; + } else { + groupLength = getPopulation().getLength( + getAge() * Month.NUMBER_OF_MONTH, this); + } } } - return result; + return groupLength; } @Override
participants (1)
-
echatellier@users.forge.codelutin.com