Author: chatellier
Date: 2010-01-22 15:37:21 +0000 (Fri, 22 Jan 2010)
New Revision: 2935
Added:
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/entity/PersistenceConventionTest.java
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationImpl.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationSeasonInfoImpl.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/SelectivityImpl.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/SetOfVesselsImpl.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/StrategyImpl.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/TargetSpeciesImpl.java
Log:
Change all equation content setter on entity to a common convention. add a test on it.
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java 2010-01-22 15:24:53 UTC (rev 2934)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java 2010-01-22 15:37:21 UTC (rev 2935)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2006 - 2009
+ * Copyright (C) 2006 - 2010
* Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -502,13 +502,13 @@
pop3.setName(getStringValue(pop, "nom"));
pop3.setGeographicId(getStringValue(pop, "idGeographique"));
pop3.setPlusGroup(getBoolValue(pop, "classePlus"));
- pop3.setEquationGrowth(getEquationStringValue(pop, "croissance"));
+ pop3.setGrowthContent(getEquationStringValue(pop, "croissance"));
convertEquation(pop3.getGrowth(), getStringValue(pop, "croissance"));
- pop3.setEquationGrowthReverse(getEquationStringValue(pop, "inverseCroissance"));
+ pop3.setGrowthReverseContent(getEquationStringValue(pop, "inverseCroissance"));
convertEquation(pop3.getGrowthReverse(), getStringValue(pop, "inverseCroissance"));
- pop3.setEquationNaturalDeathRate(getEquationStringValue(pop, "mortaliteNaturelleEquation"));
+ pop3.setNaturalDeathRateContent(getEquationStringValue(pop, "mortaliteNaturelleEquation"));
convertEquation(pop3.getNaturalDeathRate(), getStringValue(pop, "mortaliteNaturelleEquation"));
- pop3.setEquationReproductionEquation(getEquationStringValue(pop, "equationReproduction"));
+ pop3.setReproductionEquationContent(getEquationStringValue(pop, "equationReproduction"));
convertEquation(pop3.getReproductionEquation(), getStringValue(pop, "equationReproduction"));
pop3.setMonthGapBetweenReproRecrutement(getIntValue(pop, "nbMoisEntreReproRecrutement"));
pop3.setRecruitmentDistribution(getMatrixValue(pop, "etalementRecrutement")); //TODO la semantique devrait etre: sem.add(_("isisfish.common.month", i));
@@ -580,12 +580,12 @@
eqMeanWeight +=
" default: return 0;\n" +
" }\n";
- pop3.setEquationMeanWeight(eqMeanWeight);
+ pop3.setMeanWeightContent(eqMeanWeight);
eqPrice +=
" default: return 0;\n" +
" }\n";
- pop3.setEquationPrice(eqPrice);
+ pop3.setPriceContent(eqPrice);
String seasonComment = "";
List<Node> infoSaisons = getListValue(pop, "infoSaison");
@@ -620,11 +620,11 @@
season.setReproductionDistribution(mat);
if (season.getUseEquationMigration()) {
- season.setMigrationEquationAsString(getEquationStringValue(infoSaison, "migrationEquation"));
+ season.setMigrationEquationContent(getEquationStringValue(infoSaison, "migrationEquation"));
convertEquation(season.getMigrationEquation(), getStringValue(infoSaison, "migrationEquation"));
- season.setEmigrationEquationAsString(getEquationStringValue(infoSaison, "emigrationEquation"));
+ season.setEmigrationEquationContent(getEquationStringValue(infoSaison, "emigrationEquation"));
convertEquation(season.getEmigrationEquation(), getStringValue(infoSaison, "emigrationEquation"));
- season.setImmigrationEquationAsString(getEquationStringValue(infoSaison, "immigrationEquation"));
+ season.setImmigrationEquationContent(getEquationStringValue(infoSaison, "immigrationEquation"));
convertEquation(season.getImmigrationEquation(), getStringValue(infoSaison, "immigrationEquation"));
} else {
mat = season.getMigrationMatrix().copy();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationImpl.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationImpl.java 2010-01-22 15:24:53 UTC (rev 2934)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationImpl.java 2010-01-22 15:37:21 UTC (rev 2935)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2006 - 2009
+ * Copyright (C) 2006 - 2010
* Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -87,7 +87,8 @@
}
/**
- * override to change name of equation
+ * Override to change name of equation.
+ *
* @see fr.ifremer.isisfish.entities.PopulationAbstract#setName(java.lang.String)
*/
@Override
@@ -124,7 +125,7 @@
}
}
- public void setEquationReproductionEquation(String content) {
+ public void setReproductionEquationContent(String content) {
try {
Equation eq = getReproductionEquation();
@@ -156,7 +157,7 @@
}
}
- public void setEquationGrowth(String content) {
+ public void setGrowthContent(String content) {
try {
Equation eq = getGrowth();
@@ -188,7 +189,7 @@
}
}
- public void setEquationGrowthReverse(String content) {
+ public void setGrowthReverseContent(String content) {
try {
Equation eq = getGrowthReverse();
@@ -220,7 +221,7 @@
}
}
- public void setEquationNaturalDeathRate(String content) {
+ public void setNaturalDeathRateContent(String content) {
try {
Equation eq = getNaturalDeathRate();
@@ -252,7 +253,7 @@
}
}
- public void setEquationMeanWeight(String content) {
+ public void setMeanWeightContent(String content) {
try {
Equation eq = getMeanWeight();
@@ -284,7 +285,7 @@
}
}
- public void setEquationPrice(String content) {
+ public void setPriceContent(String content) {
try {
Equation eq = getPrice();
@@ -480,14 +481,14 @@
List[] newsems = new List[]{getPopulationGroup(),
getPopulationSeasonInfo(),};
- MatrixND newmat = MatrixFactory.getInstance().create(
- n_("isisfish.population.capturability"),
- newsems,
- new String[] { n_("isisfish.population.group"),
+ MatrixND newmat = MatrixFactory.getInstance().create(
+ n_("isisfish.population.capturability"),
+ newsems,
+ new String[] { n_("isisfish.population.group"),
n_("isisfish.population.season") });
newmat.paste(value);
value = newmat;
- }
+ }
super.setCapturability(value);
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationSeasonInfoImpl.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationSeasonInfoImpl.java 2010-01-22 15:24:53 UTC (rev 2934)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationSeasonInfoImpl.java 2010-01-22 15:37:21 UTC (rev 2935)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2006 - 2009
+ * Copyright (C) 2006 - 2010
* Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -681,7 +681,7 @@
return mat;
}
- public void setMigrationEquationAsString(String content) {
+ public void setMigrationEquationContent(String content) {
try {
Equation eq = getMigrationEquation();
@@ -715,7 +715,7 @@
}
}
- public void setEmigrationEquationAsString(String content) {
+ public void setEmigrationEquationContent(String content) {
try {
Equation eq = getEmigrationEquation();
@@ -749,7 +749,7 @@
}
}
- public void setImmigrationEquationAsString(String content) {
+ public void setImmigrationEquationContent(String content) {
try {
Equation eq = getImmigrationEquation();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/SelectivityImpl.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/SelectivityImpl.java 2010-01-22 15:24:53 UTC (rev 2934)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/SelectivityImpl.java 2010-01-22 15:37:21 UTC (rev 2935)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2006 - 2009
+ * Copyright (C) 2006 - 2010
* Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -19,6 +19,8 @@
package fr.ifremer.isisfish.entities;
+import static org.nuiton.i18n.I18n._;
+
import org.nuiton.topia.TopiaException;
import fr.ifremer.isisfish.IsisFishDAOHelper;
@@ -42,7 +44,7 @@
/** serialVersionUID. */
private static final long serialVersionUID = 1L;
- /* (non-Javadoc)
+ /*
* @see fr.ifremer.isisfish.entities.Selectivity#getCoefficient(double, double, fr.ifremer.isisfish.entities.Metier)
*/
public double getCoefficient(Population pop, PopulationGroup group,
@@ -57,7 +59,7 @@
return result;
}
- /* (non-Javadoc)
+ /*
* @see fr.ifremer.isisfish.entities.SelectivityAbstract#getEquation()
*/
@Override
@@ -80,6 +82,32 @@
return super.getEquation();
}
+ /**
+ * Equation content setter for Equation.
+ *
+ * @param content content to set
+ */
+ public void setEquationContent(String content) {
+ try {
+ Equation eq = getEquation();
+
+ // can't be null
+
+ // Fire
+ String _oldValue = eq.getContent();
+ fireOnPreWrite("content", _oldValue, content);
+
+ eq.setContent(content);
+ eq.update();
+
+ fireOnPostWrite("content", _oldValue, content);
+
+ } catch (TopiaException eee) {
+ throw new IsisFishRuntimeException(
+ _("isisfish.error.change.equation"), eee);
+ }
+ }
+
/* (non-Javadoc)
* @see fr.ifremer.isisfish.entities.SelectivityAbstract#setGear(fr.ifremer.isisfish.entities.Gear)
*/
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/SetOfVesselsImpl.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/SetOfVesselsImpl.java 2010-01-22 15:24:53 UTC (rev 2934)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/SetOfVesselsImpl.java 2010-01-22 15:37:21 UTC (rev 2935)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2006 - 2009
+ * Copyright (C) 2006 - 2010
* Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -104,7 +104,7 @@
return result;
}
- public void setEquationTechnicalEfficiency(String content) {
+ public void setTechnicalEfficiencyEquationContent(String content) {
try {
Equation eq = getTechnicalEfficiencyEquation();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/StrategyImpl.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/StrategyImpl.java 2010-01-22 15:24:53 UTC (rev 2934)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/StrategyImpl.java 2010-01-22 15:37:21 UTC (rev 2935)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2006 - 2009
+ * Copyright (C) 2006 - 2010
* Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -165,7 +165,7 @@
return result;
}
- public void setEquationInactivity(String content) {
+ public void setInactivityEquationContent(String content) {
try {
Equation eq = getInactivityEquation();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/TargetSpeciesImpl.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/TargetSpeciesImpl.java 2010-01-22 15:24:53 UTC (rev 2934)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/TargetSpeciesImpl.java 2010-01-22 15:37:21 UTC (rev 2935)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2006 - 2009
+ * Copyright (C) 2006 - 2010
* Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -74,6 +74,32 @@
return super.getTargetFactorEquation();
}
+ /**
+ * Equation content setter for TargetFactorEquation.
+ *
+ * @param content content to set
+ */
+ public void setTargetFactorEquationContent(String content) {
+ try {
+ Equation eq = getTargetFactorEquation();
+
+ // can't be null
+
+ // Fire
+ String _oldValue = eq.getContent();
+ fireOnPreWrite("content", _oldValue, content);
+
+ eq.setContent(content);
+ eq.update();
+
+ fireOnPostWrite("content", _oldValue, content);
+
+ } catch (TopiaException eee) {
+ throw new IsisFishRuntimeException(
+ _("isisfish.error.change.equation"), eee);
+ }
+ }
+
/* (non-Javadoc)
* @see fr.ifremer.isisfish.entities.TargetSpeciesAbstract#setMetierSeasonInfo(fr.ifremer.isisfish.entities.MetierSeasonInfo)
*/
Added: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/entity/PersistenceConventionTest.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/entity/PersistenceConventionTest.java (rev 0)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/entity/PersistenceConventionTest.java 2010-01-22 15:37:21 UTC (rev 2935)
@@ -0,0 +1,93 @@
+/* *##%
+ * Copyright (C) 2010 Ifremer, Code Lutin, Chatellier Eric
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.entity;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Assert;
+import org.junit.Test;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaEntity;
+
+import fr.ifremer.isisfish.IsisFishDAOHelper;
+import fr.ifremer.isisfish.IsisFishDAOHelper.IsisFishEntityEnum;
+import fr.ifremer.isisfish.entities.Equation;
+
+/**
+ * Test for convention defined on entities.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class PersistenceConventionTest {
+
+ /** Logger for this class. */
+ private static final Log log = LogFactory.getLog(PersistenceConventionTest.class);
+
+ /**
+ * A convention has been defined on all entities for equation getter/setter.
+ *
+ * If getter is :
+ * <pre>Equation getXXX()</pre>
+ * setter has to be
+ * <pre>void setXXXContent(String)</pre>
+ *
+ * @throws TopiaException
+ * @throws NoSuchMethodException
+ * @throws SecurityException
+ */
+ @Test
+ public void testEquationSetterName() throws TopiaException, SecurityException, NoSuchMethodException {
+
+ for (IsisFishEntityEnum entityEnum : IsisFishDAOHelper.IsisFishEntityEnum.values()) {
+ Class<? extends TopiaEntity> entity = entityEnum.getImplementation();
+
+ if (log.isDebugEnabled()) {
+ log.debug("Testing convention on : " + entity);
+ }
+
+ for (Method method : entity.getMethods()) {
+ Class<?> returnType = method.getReturnType();
+
+ // method return an equation, search for getter
+ if (returnType.isAssignableFrom(Equation.class)) {
+ String methodName = method.getName();
+ methodName = methodName.replaceFirst("g", "s") + "Content";
+
+ try {
+ Method methodSet = entity.getMethod(methodName, String.class);
+
+ Assert.assertTrue("Method " + entity.getName() + "#" +
+ methodName + "(" + String.class.getName() + ") is not accessible", Modifier.isPublic(methodSet.getModifiers()));
+ }
+ catch (NoSuchMethodException ex) {
+ Assert.fail("Method " + entity.getName() + "#" +
+ methodName + "(" + String.class.getName() + ") not found");
+ }
+ }
+ }
+ }
+ }
+}
Property changes on: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/entity/PersistenceConventionTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"