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"
participants (1)
-
chatellier@users.labs.libre-entreprise.org