Author: jcouteau Date: 2009-04-17 09:49:29 +0000 (Fri, 17 Apr 2009) New Revision: 2114 Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/ContinuousDomainXMLVisitor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DesignPlanXMLVisitor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DiscreteDomainXMLVisitor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DomXMLParser.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/EquationContinuousDomainXMLVisitor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/FactorXMLVisitor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/MatrixContinuousDomainXMLVisitor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/ScenarioXMLVisitor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/DesignPlan.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/Domain.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/Factor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/Scenario.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/ContinuousDomain.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/DiscreteDomain.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/EquationContinuousDomain.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/MatrixContinuousDomain.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/DesignPlanVisitor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/DomainVisitor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/FactorVisitor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/ScenarioVisitor.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeCellRenderer.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationPreScriptTest.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/FactorTest.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculatorRandomMock.java isis-fish/trunk/src/test/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModelTest.java Log: Refactoring on sensitivity. Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/ContinuousDomainXMLVisitor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/ContinuousDomainXMLVisitor.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/ContinuousDomainXMLVisitor.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -38,11 +38,11 @@ * {@inheritDoc} */ @Override - public void start(Domain<? extends Serializable> domain) { + public void start(Domain domain) { xmlBuffer.append("<domain>"); xmlBuffer.append("<fixed"); - ContinuousDomain<?> cDomain = (ContinuousDomain<?>)domain; + ContinuousDomain cDomain = (ContinuousDomain)domain; xmlBuffer.append(" cardinality=\"" + cDomain.getCardinality() + "\">"); xmlBuffer.append("<range min=\"" + cDomain.getMinBound() + "\" max=\"" + cDomain.getMaxBound() + "\" />"); @@ -52,8 +52,8 @@ * {@inheritDoc} */ @Override - public <E extends Serializable> void visit(Domain<E> domain, - Serializable label, Serializable value) { + public <E extends Serializable, F extends Serializable> void visit(Domain<E,F> domain, + F label, E value) { } @@ -61,7 +61,7 @@ * {@inheritDoc} */ @Override - public void end(Domain<? extends Serializable> domain) { + public void end(Domain domain) { xmlBuffer.append("</fixed>"); xmlBuffer.append("</domain>"); } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DesignPlanXMLVisitor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DesignPlanXMLVisitor.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DesignPlanXMLVisitor.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -71,7 +71,7 @@ */ @Override public void visit(DesignPlan designPlan, - Factor<? extends Serializable> factor) { + Factor factor) { FactorXMLVisitor visitor = new FactorXMLVisitor(); factor.accept(visitor); xmlBuffer.append(visitor.getXML()); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DiscreteDomainXMLVisitor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DiscreteDomainXMLVisitor.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DiscreteDomainXMLVisitor.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -38,11 +38,11 @@ * {@inheritDoc} */ @Override - public void start(Domain<? extends Serializable> domain) { + public void start(Domain domain) { xmlBuffer.append("<domain>"); xmlBuffer.append("<fixed"); - DiscreteDomain<?> dDomain = (DiscreteDomain<?>)domain; + DiscreteDomain dDomain = (DiscreteDomain)domain; xmlBuffer.append(" cardinality=\"" + dDomain.getValues().size() + "\""); xmlBuffer.append(">"); @@ -53,8 +53,8 @@ * {@inheritDoc} */ @Override - public <E extends Serializable> void visit(Domain<E> domain, - Serializable label, Serializable value) { + public <E extends Serializable, F extends Serializable> void visit(Domain<E,F> domain, + F label, E value) { xmlBuffer.append("<value>" + value + "</value>"); } @@ -62,7 +62,7 @@ * {@inheritDoc} */ @Override - public void end(Domain<? extends Serializable> domain) { + public void end(Domain domain) { xmlBuffer.append("</enumeration>"); xmlBuffer.append("</fixed>"); xmlBuffer.append("</domain>"); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DomXMLParser.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DomXMLParser.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/DomXMLParser.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -18,6 +18,7 @@ package fr.ifremer.isisfish.mexico.xml; +import java.io.Serializable; import java.util.List; import org.apache.commons.beanutils.ConvertUtilsBean; @@ -65,18 +66,18 @@ // double if ("real".equals(type)) { - Factor<Double> factor = new Factor<Double>(name); + Factor<Double,Integer> factor = new Factor<Double,Integer>(name); factor.setPath(path); Element fixedElement = factorElement.element("domain").element( "fixed"); // tous les domaines continues if (property.endsWith("continuous")) { Element rangeElement = fixedElement.element("range"); - ContinuousDomain<Double> domain; + ContinuousDomain domain; if(property.equals("matrixcontinuous")) { // matrix specific Element matrixElement = fixedElement.element("matrix"); - MatrixContinuousDomain<Double> mdomain = new MatrixContinuousDomain<Double>(); + MatrixContinuousDomain mdomain = new MatrixContinuousDomain(); mdomain.setCoefficient(Double.valueOf(matrixElement.attributeValue("coefficient"))); mdomain.setOperator(matrixElement.attributeValue("operator")); @@ -90,7 +91,7 @@ else if (property.equals("equationcontinuous")) { // equation specific Element equationElement = fixedElement.element("equation"); - EquationContinuousDomain<Double> edomain = new EquationContinuousDomain<Double>(); + EquationContinuousDomain edomain = new EquationContinuousDomain(); edomain.setCoefficient(Double.valueOf(equationElement.attributeValue("coefficient"))); edomain.setReferenceValue(Double.valueOf(equationElement.attributeValue("reference"))); edomain.setVariableName(equationElement.attributeValue("variable")); @@ -100,7 +101,7 @@ } else { // continous domain - domain = new ContinuousDomain<Double>(); + domain = new ContinuousDomain<Double,Double>(); } domain.setCardinality(Integer.valueOf(fixedElement @@ -112,7 +113,7 @@ .attributeValue("max"))); factor.setDomain(domain); } else if ("discrete".equals(property)) { - DiscreteDomain<Double> domain = new DiscreteDomain<Double>(); + DiscreteDomain<Double,Integer> domain = new DiscreteDomain<Double,Integer>(); List<Element> valueElements = fixedElement.element( "enumeration").elements("value"); int label = 0; @@ -125,18 +126,18 @@ } plan.getFactors().add(factor); } else if ("integer".equals(type)) { - Factor<Integer> factor = new Factor<Integer>(name); + Factor<Integer,Integer> factor = new Factor<Integer,Integer>(name); factor.setPath(path); Element fixedElement = factorElement.element("domain").element( "fixed"); if ("continuous".equals(property)) { - ContinuousDomain<Integer> domain = null; + ContinuousDomain domain = null; Element rangeElement = fixedElement.element("range"); if(property.equals("matrixcontinuous")) { // matrix specific Element matrixElement = fixedElement.element("matrix"); - MatrixContinuousDomain<Integer> mdomain = new MatrixContinuousDomain<Integer>(); + MatrixContinuousDomain mdomain = new MatrixContinuousDomain(); mdomain.setCoefficient(Double.valueOf(matrixElement.attributeValue("coefficient"))); mdomain.setOperator(matrixElement.attributeValue("operator")); @@ -150,7 +151,7 @@ else if (property.equals("equationcontinuous")) { // equation specific Element equationElement = fixedElement.element("equation"); - EquationContinuousDomain<Integer> edomain = new EquationContinuousDomain<Integer>(); + EquationContinuousDomain edomain = new EquationContinuousDomain(); edomain.setCoefficient(Double.valueOf(equationElement.attributeValue("coefficient"))); edomain.setReferenceValue(Double.valueOf(equationElement.attributeValue("reference"))); edomain.setVariableName(equationElement.attributeValue("variable")); @@ -160,7 +161,7 @@ } else { // continous domain - domain = new ContinuousDomain<Integer>(); + domain = new ContinuousDomain<Integer,Integer>(); } domain.setCardinality(Integer.valueOf(fixedElement @@ -172,7 +173,7 @@ .attributeValue("max"))); factor.setDomain(domain); } else if ("discrete".equals(property)) { - DiscreteDomain<Integer> domain = new DiscreteDomain<Integer>(); + DiscreteDomain<Integer,Integer> domain = new DiscreteDomain<Integer,Integer>(); List<Element> valueElements = fixedElement.element( "enumeration").elements("value"); int label = 0; Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/EquationContinuousDomainXMLVisitor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/EquationContinuousDomainXMLVisitor.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/EquationContinuousDomainXMLVisitor.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -38,7 +38,7 @@ * {@inheritDoc} */ @Override - public void start(Domain<? extends Serializable> domain) { + public void start(Domain domain) { super.start(domain); EquationContinuousDomain eDomain = (EquationContinuousDomain)domain; Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/FactorXMLVisitor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/FactorXMLVisitor.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/FactorXMLVisitor.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -65,7 +65,7 @@ * @see fr.ifremer.isisfish.simulator.sensitivity.visitor.FactorVisitor#start(fr.ifremer.isisfish.simulator.sensitivity.Factor) */ @Override - public void start(Factor<? extends Serializable> factor) { + public void start(Factor factor) { xmlBuffer.append("<factor"); xmlBuffer.append(" name=\"" + factor.getName() + "\""); Serializable referenceValueForType = null; @@ -108,7 +108,7 @@ * @see fr.ifremer.isisfish.simulator.sensitivity.visitor.FactorVisitor#visit(fr.ifremer.isisfish.simulator.sensitivity.Domain) */ @Override - public void visit(Factor<? extends Serializable> factor, Domain<? extends Serializable> domain) { + public void visit(Factor factor, Domain domain) { DomainXMLVisitor visitor = null; if (factor.getDomain() instanceof MatrixContinuousDomain) { visitor = new MatrixContinuousDomainXMLVisitor(); @@ -130,7 +130,7 @@ * @see fr.ifremer.isisfish.simulator.sensitivity.visitor.FactorVisitor#end(fr.ifremer.isisfish.simulator.sensitivity.Factor) */ @Override - public void end(Factor<? extends Serializable> factor) { + public void end(Factor factor) { xmlBuffer.append("</factor>"); } } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/MatrixContinuousDomainXMLVisitor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/MatrixContinuousDomainXMLVisitor.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/MatrixContinuousDomainXMLVisitor.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -41,11 +41,11 @@ * {@inheritDoc} */ @Override - public void start(Domain<? extends Serializable> domain) { + public void start(Domain domain) { super.start(domain); ConvertUtilsBean beanUtils = ConverterUtil.getConverter(null); - MatrixContinuousDomain<?> mDomain = (MatrixContinuousDomain<?>)domain; + MatrixContinuousDomain mDomain = (MatrixContinuousDomain)domain; xmlBuffer.append("<matrix coefficient=\"" + mDomain.getCoefficient()+ "\""); xmlBuffer.append(" operator=\"" + mDomain.getOperator() + "\">"); xmlBuffer.append(beanUtils.convert(mDomain.getMatrix())); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/ScenarioXMLVisitor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/ScenarioXMLVisitor.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/xml/ScenarioXMLVisitor.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -72,7 +72,7 @@ * {@inheritDoc} */ @Override - public void visit(Scenario scenario, Factor<? extends Serializable> factor) { + public void visit(Scenario scenario, Factor factor) { FactorXMLVisitor visitor = new FactorXMLVisitor(); factor.accept(visitor); xmlBuffer.append(visitor.getXML()); Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -0,0 +1,167 @@ +package fr.ifremer.isisfish.simulator.sensitivity; + +import java.io.File; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.beanutils.ConvertUtilsBean; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.codelutin.j2r.REngine; +import org.codelutin.j2r.RException; +import org.codelutin.j2r.RProxy; +import org.codelutin.topia.persistence.TopiaEntity; + +import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain; +import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain; +import fr.ifremer.isisfish.util.ConverterUtil; + +public abstract class AbstractSensitivityCalculator implements + SensitivityCalculator { + + /** to use log facility, just put in your code: log.info("..."); */ + private static Log log = LogFactory + .getLog(AbstractSensitivityCalculator.class); + + /* + * Method to create the isis.factors dataframe in R + * @param Design plan of the sensitivity analysis + */ + + public void setIsisFactorsR(DesignPlan plan, File outputdirectory) { + + String nomFacteur = "nomFacteur<-c(%s)"; + String factorNames = ""; + String nominal = "Nominal<-c(%s)"; + String nominalValues = ""; + String continu = "Continu<-c(%s)"; + String continuValues = ""; + String binf = "Binf<-c(%s)"; + String binfValues = ""; + String bsup = "Bsup<-c(%s)"; + String bsupValues = ""; + String attributes = "attributes(isis.factors)<-list(%s\"nomModel\"=\"isis-fish-externeR\")"; + String attributesValues = ""; + String isisfactors = "isis.factors<-data.frame(nomFacteur,Nominal,Continu,Binf,Bsup)"; + + //Create the vectors + List<Factor> factors = plan.getFactors(); + for (int i = 0; i < factors.size(); i++) { + Factor factor = factors.get(i); + if (i != 0) { + factorNames += ","; + nominalValues += ","; + continuValues += ","; + binfValues += ","; + bsupValues += ","; + } + + //Factor names + factorNames += "\"" + factor.getName() + "\""; + + //Nominal values + /*ConvertUtilsBean beanUtils = ConverterUtil.getConverter(null); + String path = factor.getPath(); + String topiaId = path.substring(0,path.lastIndexOf("#")); + String propertyName=path.substring(path.lastIndexOf("#") + 1); + //Object value = beanUtils.convert("${serializedValue}", ${value.class.name}.class); + TopiaEntity entity = db.findByTopiaId(topiaId); + Object value = BeanUtils.getProperty(entity, propertyName);*/ + + nominalValues += 0.0; + + //Continu values, binf values, bsup values and discrete factors attributes + if (factor.getDomain() instanceof ContinuousDomain) { + //Continu values + continuValues += "TRUE"; + + //Binf values + binfValues += ((ContinuousDomain) factor.getDomain()) + .getMinBound(); + + //Bsup values + bsupValues += ((ContinuousDomain) factor.getDomain()) + .getMaxBound(); + + } else { + //Continu values + continuValues += "FALSE"; + + //Binf values + binfValues += "0.0"; + + //Bsup values + bsupValues += ((DiscreteDomain) factor.getDomain()).getValues() + .size(); + + //Attribute values + attributesValues += "\"" + factor.getName() + "\"=list("; + Collection values = ((DiscreteDomain) factor.getDomain()) + .getValues().values(); + for (Iterator j = values.iterator(); j.hasNext();) { + attributesValues += j + ","; + j.next(); + } + attributesValues = attributesValues.substring(0, + attributesValues.length() - 1); + attributesValues += "),"; + } + if (attributesValues.length() != 0) { + attributesValues = attributesValues.substring(0, + attributesValues.length() - 1); + attributesValues += ","; + } + + } + + String Rcall = ""; + + REngine engine = new RProxy(); + try { + log.info("setwd(\"" + outputdirectory.getParent() + "\")"); + engine.voidEval("setwd(\"" + outputdirectory.getParent() + "\")"); + + log.info("load(\".RData\")"); + engine.voidEval("load(\".RData\")"); + + Rcall = String.format(nomFacteur, factorNames); + log.info(Rcall); + engine.voidEval(Rcall); + + Rcall = String.format(nominal, nominalValues); + log.info(Rcall); + engine.voidEval(Rcall); + + Rcall = String.format(continu, continuValues); + log.info(Rcall); + engine.voidEval(Rcall); + + Rcall = String.format(binf, binfValues); + log.info(Rcall); + engine.voidEval(Rcall); + + Rcall = String.format(bsup, bsupValues); + log.info(Rcall); + engine.voidEval(Rcall); + + log.info(isisfactors); + engine.voidEval(isisfactors); + + Rcall = String.format(attributes, attributesValues); + log.info(Rcall); + engine.voidEval(Rcall); + + log.info("save.image()"); + engine.voidEval("save.image()"); + + } catch (RException eee) { + eee.printStackTrace(); + throw new RuntimeException("R evaluation failed", eee); + // Error while retrieving scenario + } + + } + +} Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java ___________________________________________________________________ Name: svn:mergeinfo + Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/DesignPlan.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/DesignPlan.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/DesignPlan.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -40,13 +40,13 @@ private static final long serialVersionUID = 977975461743758075L; /** Liste des facteurs a utiliser */ - protected List<Factor<? extends Serializable>> factors; + protected List<Factor> factors; /** * Constructor. */ public DesignPlan() { - factors = new ArrayList<Factor<? extends Serializable>>(); + factors = new ArrayList<Factor>(); } /** @@ -54,7 +54,7 @@ * * @return factors list */ - public List<Factor<? extends Serializable>> getFactors() { + public List<Factor> getFactors() { return factors; } @@ -63,7 +63,7 @@ * * @param factors the factors list to set */ - public void setFactors(List<Factor<? extends Serializable>> factors) { + public void setFactors(List<Factor> factors) { this.factors = factors; } @@ -74,7 +74,7 @@ */ public void accept(DesignPlanVisitor visitor) { visitor.start(this); - for(Factor<? extends Serializable> factor : factors) { + for(Factor factor : factors) { visitor.visit(this, factor); } visitor.end(this); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/Domain.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/Domain.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/Domain.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -35,6 +35,7 @@ * - continu : i.e, une borne min, max * * @param <E> type des valeurs gérées par le domaine + * @param <F> type des labels * * @see DiscreteDomain * @see ContinuousDomain @@ -45,7 +46,7 @@ * Last update : $Date: 24 févr. 2009 $ * By : $Author: chatellier $ */ -public interface Domain<E extends Serializable> extends Serializable { +public interface Domain<E extends Serializable, F extends Serializable> extends Serializable { /** * Return value associated to identifier. @@ -53,7 +54,7 @@ * @param identifier * @return found value or <tt>null</tt> if not found */ - E getValueForIdentifier(Serializable identifier); + E getValueForIdentifier(F identifier); /** * Accept a new visitor. @@ -68,5 +69,5 @@ * @return the domain cloned */ - public Domain<E> clone(); + public Domain<E, F> clone(); } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/Factor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/Factor.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/Factor.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -31,6 +31,7 @@ * * @param <E> * type des valeurs gérées par le facteur + * @param <F> type des labels * * La classe doit être {@link Serializable} avec ses valeurs pour permettre * l'export XML. @@ -40,7 +41,7 @@ * * Last update : $Date: 19 févr. 2009 $ By : $Author: chatellier $ */ -public class Factor<E extends Serializable> implements Serializable, Cloneable { +public class Factor<E extends Serializable, F extends Serializable> implements Serializable, Cloneable { /** serialVersionUID. */ private static final long serialVersionUID = 1643804268013964453L; @@ -67,7 +68,7 @@ * @see ContinuousDomain * @see DiscreteDomain */ - protected Domain<E> domain; + protected Domain<E,F> domain; /** * Factor value. @@ -147,7 +148,7 @@ * * @return the domain */ - public Domain<E> getDomain() { + public Domain<E,F> getDomain() { return domain; } @@ -157,7 +158,7 @@ * @param domain * the domain to set */ - public void setDomain(Domain<E> domain) { + public void setDomain(Domain<E,F> domain) { this.domain = domain; } @@ -186,7 +187,7 @@ * @param valueIdentifier * new value identifier to get */ - public void setValueForIdentifier(Serializable valueIdentifier) { + public void setValueForIdentifier(F valueIdentifier) { value = domain.getValueForIdentifier(valueIdentifier); } @@ -226,7 +227,7 @@ @Override public Object clone() { - Factor<E> f = new Factor<E>(); + Factor<E,F> f = new Factor<E,F>(); f.domain = domain.clone(); f.name = name; Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/Scenario.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/Scenario.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/Scenario.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -44,13 +44,13 @@ * * Chaque facteur a la {@link Factor#value} a prendre en compte pour la simulation. */ - protected List<Factor<? extends Serializable>> factors; + protected List<Factor> factors; /** * Constructeur. */ public Scenario() { - factors = new ArrayList<Factor<? extends Serializable>>(); + factors = new ArrayList<Factor>(); } /** @@ -61,9 +61,9 @@ * @param factor to copy * @return add success */ - public boolean addFactor(Factor<? extends Serializable> factor) { + public boolean addFactor(Factor factor) { - Factor<? extends Serializable> factorCopy = (Factor<? extends Serializable>) factor + Factor factorCopy = (Factor) factor .clone(); boolean success = factors.add(factorCopy); return success; @@ -75,7 +75,7 @@ * * @return the simulations */ - public List<Factor<? extends Serializable>> getFactors() { + public List<Factor> getFactors() { return factors; } @@ -84,7 +84,7 @@ * * @param factors the simulations factors to set */ - public void setFactors(List<Factor<? extends Serializable>> factors) { + public void setFactors(List<Factor> factors) { this.factors = factors; } @@ -95,7 +95,7 @@ */ public void accept(ScenarioVisitor visitor) { visitor.start(this); - for(Factor<? extends Serializable> factor : factors) { + for(Factor factor : factors) { visitor.visit(this, factor); } visitor.end(this); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/ContinuousDomain.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/ContinuousDomain.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/ContinuousDomain.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -29,6 +29,7 @@ * Composé d'un borne min et max. * * @param <E> type des valeurs gérées par le domaine + * @param <F> type des labels * * @author chatellier * @version $Revision: 1.0 $ @@ -36,7 +37,7 @@ * Last update : $Date: 24 févr. 2009 $ * By : $Author: chatellier $ */ -public class ContinuousDomain<E extends Serializable> implements Domain<E> { +public class ContinuousDomain<E extends Serializable, F extends Serializable> implements Domain<E,F> { /** serialVersionUID. */ private static final long serialVersionUID = -2037768174807839046L; @@ -102,7 +103,7 @@ * * In continuous domain, just return identifier */ - public E getValueForIdentifier(Serializable identifier) { + public E getValueForIdentifier(F identifier) { // FIXME test cast return (E)identifier; } @@ -135,8 +136,8 @@ this.cardinality = cardinality; } - public ContinuousDomain<E> clone(){ - ContinuousDomain<E> cloned = new ContinuousDomain<E>(); + public ContinuousDomain<E,F> clone(){ + ContinuousDomain<E,F> cloned = new ContinuousDomain<E,F>(); cloned.setCardinality(this.cardinality); cloned.setMaxBound(this.maxBound); cloned.setMinBound(this.minBound); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/DiscreteDomain.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/DiscreteDomain.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/DiscreteDomain.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -32,6 +32,7 @@ * Ensemble de valeurs. * * @param <E> type des valeurs gérées par le domaine + * @param <F> type des labels * * @author chatellier * @version $Revision: 1.0 $ @@ -39,7 +40,7 @@ * Last update : $Date: 24 févr. 2009 $ * By : $Author: chatellier $ */ -public class DiscreteDomain<E extends Serializable> implements Domain<E> { +public class DiscreteDomain<E extends Serializable, F extends Serializable> implements Domain<E,F> { /** serialVersionUID. */ private static final long serialVersionUID = -192647757737396585L; @@ -49,13 +50,13 @@ * * Each "E" values is identified by a Serializable identifier. */ - protected SortedMap<Serializable, E> values; + protected SortedMap<F, E> values; /** * Constructor. */ public DiscreteDomain() { - values = new TreeMap<Serializable, E>(); + values = new TreeMap<F, E>(); } /** @@ -63,7 +64,7 @@ * * @return the values */ - public SortedMap<Serializable, E> getValues() { + public SortedMap<F, E> getValues() { return values; } @@ -72,7 +73,7 @@ * * @param values the values */ - public void setValues(SortedMap<Serializable, E> values) { + public void setValues(SortedMap<F, E> values) { this.values = values; } @@ -81,7 +82,7 @@ * * @throws IllegalArgumentException if identifier is not a valid key */ - public E getValueForIdentifier(Serializable identifier) throws IllegalArgumentException{ + public E getValueForIdentifier(F identifier) throws IllegalArgumentException{ if( values == null || !values.containsKey(identifier)) { throw new IllegalArgumentException("Can't get value for identifier " + identifier); @@ -97,14 +98,14 @@ */ public void accept(DomainVisitor visitor) { visitor.start(this); - for(Map.Entry<Serializable, E> value : values.entrySet()) { + for(Map.Entry<F, E> value : values.entrySet()) { visitor.visit(this, value.getKey(), value.getValue()); } visitor.end(this); } - public DiscreteDomain<E> clone(){ - DiscreteDomain<E> cloned = new DiscreteDomain<E>(); + public DiscreteDomain<E,F> clone(){ + DiscreteDomain<E,F> cloned = new DiscreteDomain<E,F>(); cloned.setValues(this.values); return cloned; Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/EquationContinuousDomain.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/EquationContinuousDomain.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/EquationContinuousDomain.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -22,6 +22,8 @@ import org.codelutin.math.matrix.MapFunction; +import fr.ifremer.isisfish.entities.Equation; + /** * Domaine continu portant sur variable pouvant prendre diférente valeur par * rapport à une valeur initiale. @@ -36,8 +38,8 @@ * * Last update : $Date: 24 févr. 2009 $ By : $Author: chatellier $ */ -public class EquationContinuousDomain<E extends Serializable> extends - ContinuousDomain<E> { +public class EquationContinuousDomain extends + ContinuousDomain<Double,Double> { /** serialVersionUID. */ private static final long serialVersionUID = -2037768174807839046L; @@ -166,24 +168,20 @@ * In equation continuous domain, value appear in continuous domain values * only. Here : return identifier. */ - public E getValueForIdentifier(Serializable identifier) { + public Double getValueForIdentifier(Double identifier) { - this.value = Double.valueOf((String)identifier); + this.value = identifier; if (operator.equals("+")) { - return (E) ((Double) (referenceValue + ((referenceValue + coefficient) * ((2 * Double - .valueOf((String) identifier)) - 1)))); + return ((Double) (referenceValue + ((referenceValue + coefficient) * ((2 * value - 1))))); } else if (operator.equals("-")) { - return (E) ((Double) (referenceValue + ((referenceValue - coefficient) * ((2 * Double - .valueOf((String) identifier)) - 1)))); + return ((Double) (referenceValue + ((referenceValue - coefficient) * ((2 * value - 1))))); } else if (operator.equals("*")) { - return (E) ((Double) (referenceValue + ((referenceValue * coefficient) * ((2 * Double - .valueOf((String) identifier)) - 1)))); + return ((Double) (referenceValue + ((referenceValue * coefficient) * ((2 * value - 1))))); } else if (operator.equals("/")) { - return (E) ((Double) (referenceValue + ((referenceValue / coefficient) * ((2 * Double - .valueOf((String) identifier)) - 1)))); + return ((Double) (referenceValue + ((referenceValue / coefficient) * ((2 * value - 1))))); } - return (E) identifier; + return identifier; } /** @@ -205,8 +203,8 @@ this.value = value; } - public EquationContinuousDomain<E> clone(){ - EquationContinuousDomain<E> cloned = new EquationContinuousDomain<E>(); + public EquationContinuousDomain clone(){ + EquationContinuousDomain cloned = new EquationContinuousDomain(); cloned.setCardinality(this.cardinality); cloned.setMaxBound(this.maxBound); cloned.setMinBound(this.minBound); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/MatrixContinuousDomain.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/MatrixContinuousDomain.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/MatrixContinuousDomain.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -36,8 +36,8 @@ * * Last update : $Date: 24 févr. 2009 $ By : $Author: chatellier $ */ -public class MatrixContinuousDomain <E extends Serializable> extends - ContinuousDomain<E> { +public class MatrixContinuousDomain extends + ContinuousDomain<MatrixND, Double> { /** serialVersionUID. */ private static final long serialVersionUID = -2037768174807839046L; @@ -139,38 +139,42 @@ * * In continuous domain, just return identifier */ - public E getValueForIdentifier(final Serializable identifier) { - this.value = Double.valueOf((String)identifier); + public MatrixND getValueForIdentifier(final Serializable identifier) { + return getValueForIdentifier((Double)identifier); + } + /** + * {@inheritDoc}. + * + * In continuous domain, just return identifier + */ + public MatrixND getValueForIdentifier(final Double identifier) { + this.value = identifier; if (operator.equals("+")) { this.matrix.map(new MapFunction() { public double apply(double val) { - return (val + ((val + coefficient) * ((2 * Double - .valueOf((String) identifier)) - 1))); + return (val + ((val + coefficient) * ((2 * value - 1)))); } }); } else if (operator.equals("-")) { this.matrix.map(new MapFunction() { public double apply(double val) { - return (val + ((val - coefficient) * ((2 * Double - .valueOf((String) identifier)) - 1))); + return (val + ((val - coefficient) * ((2 * value - 1)))); } }); } else if (operator.equals("*")) { this.matrix.map(new MapFunction() { public double apply(double val) { - return (val + ((val * coefficient) * ((2 * Double - .valueOf((String) identifier)) - 1))); + return (val + ((val * coefficient) * ((2 * value - 1)))); } }); } else if (operator.equals("/")) { this.matrix.map(new MapFunction() { public double apply(double val) { - return (val + ((val / coefficient) * ((2 * Double - .valueOf((String) identifier)) - 1))); + return (val + ((val / coefficient) * ((2 * value - 1)))); } }); } - return (E) this.matrix; + return this.matrix; } /** @@ -192,8 +196,8 @@ this.value = value; } - public MatrixContinuousDomain<E> clone(){ - MatrixContinuousDomain<E> cloned = new MatrixContinuousDomain<E>(); + public MatrixContinuousDomain clone(){ + MatrixContinuousDomain cloned = new MatrixContinuousDomain(); cloned.setCardinality(this.cardinality); cloned.setMaxBound(this.maxBound); cloned.setMinBound(this.minBound); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/DesignPlanVisitor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/DesignPlanVisitor.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/DesignPlanVisitor.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -47,7 +47,7 @@ * @param designPlan design plan * @param factor factor */ - void visit(DesignPlan designPlan, Factor<? extends Serializable> factor); + void visit(DesignPlan designPlan, Factor factor); /** * End. Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/DomainVisitor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/DomainVisitor.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/DomainVisitor.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -38,7 +38,7 @@ * * @param domain domain */ - void start(Domain<? extends Serializable> domain); + void start(Domain<? extends Serializable, ? extends Serializable> domain); /** * Visit domain value or property. @@ -48,12 +48,12 @@ * @param label value label or property name * @param value value */ - <E extends Serializable> void visit(Domain<E> domain, Serializable label, Serializable value); + <E extends Serializable, F extends Serializable> void visit(Domain<E,F> domain, F label, E value); /** * End. * * @param domain domain */ - void end(Domain<? extends Serializable> domain); + void end(Domain<? extends Serializable, ? extends Serializable> domain); } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/FactorVisitor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/FactorVisitor.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/FactorVisitor.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -39,7 +39,7 @@ * * @param factor factor */ - void start(Factor<? extends Serializable> factor); + void start(Factor factor); /** * Visit domain. @@ -47,12 +47,12 @@ * @param factor factor * @param domain domain */ - void visit(Factor<? extends Serializable> factor, Domain<? extends Serializable> domain); + void visit(Factor factor, Domain domain); /** * End. * * @param factor factor */ - void end(Factor<? extends Serializable> factor); + void end(Factor factor); } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/ScenarioVisitor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/ScenarioVisitor.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/visitor/ScenarioVisitor.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -47,7 +47,7 @@ * @param scenario scenario * @param factor factor */ - void visit(Scenario scenario, Factor<? extends Serializable> factor); + void visit(Scenario scenario, Factor factor); /** * End. Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeCellRenderer.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeCellRenderer.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeCellRenderer.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -61,7 +61,7 @@ c.setText("Facteurs : "); } else if (userObject instanceof Factor) { - Factor<?> factor = (Factor)userObject; + Factor factor = (Factor)userObject; //c = new JLabel(factor.getName()); if (factor.getDomain() instanceof EquationContinuousDomain){ EquationContinuousDomain domain = (EquationContinuousDomain)factor.getDomain(); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModel.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModel.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModel.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -63,7 +63,7 @@ if (userObject instanceof List) { Object localUserObject = ((DefaultMutableTreeNode)root).getUserObject(); - List<Factor<?>> factors = (List<Factor<?>>)localUserObject; + List<Factor> factors = (List<Factor>)localUserObject; value = new DefaultMutableTreeNode(factors.get(index)); } } @@ -85,7 +85,7 @@ if (userObject instanceof List) { Object localUserObject = ((DefaultMutableTreeNode)root).getUserObject(); - List<Factor<?>> factors = (List<Factor<?>>)localUserObject; + List<Factor> factors = (List<Factor>)localUserObject; childCount = factors.size(); } } @@ -109,7 +109,7 @@ if (userObject instanceof List) { Object localUserObject = ((DefaultMutableTreeNode)root).getUserObject(); - List<Factor<?>> factors = (List<Factor<?>>)localUserObject; + List<Factor> factors = (List<Factor>)localUserObject; childIndex = factors.indexOf(childUserObject); } } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2009-04-17 09:49:29 UTC (rev 2114) @@ -142,9 +142,9 @@ return result; } }; - java.util.List<Factor<? extends Serializable>> factors = getSimulAction().getFactors(); + java.util.List<Factor> factors = getSimulAction().getFactors(); - java.util.List<Factor<? extends Serializable>> factorsContinue = new ArrayList<Factor<? extends Serializable>>(); + java.util.List<Factor> factorsContinue = new ArrayList<Factor>(); java.util.List<String> factorsContinueCardinalities = new ArrayList<String>(); for (Factor f : factors){ Domain domain = f.getDomain(); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -111,7 +111,7 @@ protected List<String> oldSimulNames = null; protected String simulName = null; protected SensitivityStorage sensitivityStorage = null; - protected Map<String, Factor<? extends Serializable>> factors = new HashMap<String, Factor<? extends Serializable>>(); + protected Map<String, Factor> factors = new HashMap<String, Factor>(); protected Map<String, JComponent> factorComponent = new HashMap<String, JComponent>(); protected DesignPlan designPlan = new DesignPlan(); protected SensitivityCalculator sensitivityCalculator = null; @@ -871,10 +871,10 @@ } } - public List<Factor<? extends Serializable>> getFactors() { - List<Factor<? extends Serializable>> result = new ArrayList<Factor<? extends Serializable>>(); + public List<Factor> getFactors() { + List<Factor> result = new ArrayList<Factor>(); for (Map.Entry entry : factors.entrySet()) { - result.add((Factor<? extends Serializable>) entry.getValue()); + result.add((Factor) entry.getValue()); } return result; } @@ -885,14 +885,14 @@ designPlan.setFactors(getFactors()); } - public Factor<? extends Serializable> getFactor(String name) { + public Factor getFactor(String name) { return factors.get(name); } public void addContinuousFactor(String name, String comment, String path, Double min, Double max, JComponent c, boolean exist) { Factor f = new Factor(name); - ContinuousDomain<Serializable> domain = new ContinuousDomain<Serializable>(); + ContinuousDomain domain = new ContinuousDomain(); domain.setMinBound(min); domain.setMaxBound(max); f.setDomain(domain); @@ -906,7 +906,7 @@ public void addDiscreteFactor(String name, String comment, String path, List<Serializable> values, JComponent c, boolean exist) { Factor f = new Factor(name); - DiscreteDomain<Serializable> domain = new DiscreteDomain<Serializable>(); + DiscreteDomain domain = new DiscreteDomain(); int i = 0; for (Serializable value : values) { // FIXME test when integer @@ -941,7 +941,7 @@ Double coef, MatrixND matrix, String operateur, JComponent c, boolean exist) { Factor f = new Factor(name); - MatrixContinuousDomain<Serializable> domain = new MatrixContinuousDomain<Serializable>(); + MatrixContinuousDomain domain = new MatrixContinuousDomain(); domain.setMatrix(matrix); domain.setOperator(operateur); domain.setCoefficient(coef); Modified: isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl =================================================================== --- isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/main/resources/templates/script/sensitivity.ftl 2009-04-17 09:49:29 UTC (rev 2114) @@ -28,7 +28,7 @@ * by : $Author: ${author} $ */ @Doc("TODO Doc for ${name} SensitivityCalculator") -public class ${name} implements SensitivityCalculator { +public class ${name} extends AbstractSensitivityCalculator { /** to use log facility, just put in your code: log.info("..."); */ private static Log log = LogFactory.getLog(${name}.class); Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -66,9 +66,9 @@ matrix1.setValue(new int[] { 2, 1 }, -1); // factor 1 - Factor<Double> factorContinuous = new Factor<Double>( + Factor<Double,Double> factorContinuous = new Factor<Double,Double>( "factor 1 (double continuous)"); - ContinuousDomain<Double> domain1 = new ContinuousDomain<Double>(); + ContinuousDomain<Double,Double> domain1 = new ContinuousDomain<Double,Double>(); domain1.setMinBound(0.0); domain1.setMaxBound(50.0); factorContinuous.setDomain(domain1); @@ -76,8 +76,8 @@ .setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521013#0.1715620681984218#maxLength"); // factor 2 - Factor<Double> factorDiscrete = new Factor<Double>("factor 2 (double discrete)"); - DiscreteDomain<Double> domain2 = new DiscreteDomain<Double>(); + Factor<Double,Double> factorDiscrete = new Factor<Double,Double>("factor 2 (double discrete)"); + DiscreteDomain<Double,Double> domain2 = new DiscreteDomain<Double,Double>(); domain2.getValues().put(0.0, 12.3); domain2.getValues().put(1.0, 70.9); domain2.getValues().put(2.0, 21.0); @@ -89,8 +89,8 @@ factorDiscrete.setValue(3.0); // factor 3 - Factor<Integer> factorContinuous2 = new Factor<Integer>("factor 3 (integer discrete)"); - DiscreteDomain<Integer> domain3 = new DiscreteDomain<Integer>(); + Factor<Integer,Double> factorContinuous2 = new Factor<Integer,Double>("factor 3 (integer discrete)"); + DiscreteDomain<Integer,Double> domain3 = new DiscreteDomain<Integer,Double>(); domain3.getValues().put(0.0, 13); domain3.getValues().put(0.0, 14); domain3.getValues().put(0.0, 15); @@ -99,9 +99,9 @@ .setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength"); // factor 4 - Factor<MatrixND> factorMatrixContinuous = new Factor<MatrixND>( + Factor<MatrixND,Double> factorMatrixContinuous = new Factor<MatrixND,Double>( "factor 4 (MatrixContinuous)"); - MatrixContinuousDomain<MatrixND> domain4 = new MatrixContinuousDomain<MatrixND>(); + MatrixContinuousDomain domain4 = new MatrixContinuousDomain(); domain4.setCoefficient(0.1); domain4.setMatrix(matrix1); domain4.setOperator("-"); @@ -110,9 +110,9 @@ .setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521076#0.6526656643346673#minLength"); // factor 5 - Factor<Double> factorEquationContinuous = new Factor<Double>( + Factor<Double,Double> factorEquationContinuous = new Factor<Double,Double>( "factor 5 (EquationContinuous)"); - EquationContinuousDomain<Double> domain5 = new EquationContinuousDomain<Double>(); + EquationContinuousDomain domain5 = new EquationContinuousDomain(); domain5.setCoefficient(0.1); domain5.setReferenceValue(45.0); domain5.setVariableName("L1"); Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationPreScriptTest.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationPreScriptTest.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/SimulationPreScriptTest.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -128,8 +128,8 @@ childStorageContext.commitTransaction(); // factor - Factor<Integer> factor = new Factor<Integer>("testint"); - ContinuousDomain<Integer> domain = new ContinuousDomain<Integer>(); + Factor<Integer,Integer> factor = new Factor<Integer,Integer>("testint"); + ContinuousDomain<Integer,Integer> domain = new ContinuousDomain<Integer,Integer>(); domain.setMinBound(0); domain.setMaxBound(50); factor.setDomain(domain); @@ -140,7 +140,7 @@ // scenario Scenario scenario = new Scenario(); - List<Factor<? extends Serializable>> factors = new ArrayList<Factor<? extends Serializable>>(); + List<Factor> factors = new ArrayList<Factor>(); factors.add(factor); scenario.setFactors(factors); @@ -227,16 +227,16 @@ childStorageContext.commitTransaction(); // factor - Factor<MatrixND> factor1 = new Factor<MatrixND>("testmatrix"); - DiscreteDomain<MatrixND> domain1 = new DiscreteDomain<MatrixND>(); + Factor<MatrixND,String> factor1 = new Factor<MatrixND,String>("testmatrix"); + DiscreteDomain<MatrixND,String> domain1 = new DiscreteDomain<MatrixND,String>(); domain1.getValues().put("m1", matrix1); factor1.setDomain(domain1); factor1.setPath("org.codelutin.math.matrix.MatrixND#563456293453#2.456347646#dim"); factor1.setValueForIdentifier("m1"); // factor - Factor<MatrixND> factor2 = new Factor<MatrixND>("testmatrix"); - DiscreteDomain<MatrixND> domain2 = new DiscreteDomain<MatrixND>(); + Factor<MatrixND,String> factor2 = new Factor<MatrixND,String>("testmatrix"); + DiscreteDomain<MatrixND,String> domain2 = new DiscreteDomain<MatrixND,String>(); domain2.getValues().put("m2", matrix1); factor2.setDomain(domain2); factor2.setPath("org.codelutin.math.matrix.MatrixND#563456293453#2.456347646#dim"); @@ -244,7 +244,7 @@ // scenario Scenario scenario = new Scenario(); - List<Factor<? extends Serializable>> factors = new ArrayList<Factor<? extends Serializable>>(); + List<Factor> factors = new ArrayList<Factor>(); factors.add(factor1); factors.add(factor2); scenario.setFactors(factors); @@ -290,21 +290,21 @@ public void testFactorPreScriptEquation() throws IOException, TemplateException, StorageException, TopiaException { // factor - Factor<Double> factorEquation = new Factor<Double>("test equation"); - EquationContinuousDomain<Double> domain1 = new EquationContinuousDomain<Double>(); + Factor<Double,Double> factorEquation = new Factor<Double,Double>("test equation"); + EquationContinuousDomain domain1 = new EquationContinuousDomain(); domain1.setReferenceValue(3.0); domain1.setOperator("-"); domain1.setCoefficient(0.1); domain1.setVariableName("PopulationEquation.K1"); factorEquation.setDomain(domain1); factorEquation.setPath("org.codelutin.equation1#testFactorPreScriptEquation"); - factorEquation.setValueForIdentifier("0.1"); + factorEquation.setValueForIdentifier(0.1); log.info("Script = " + domain1.getClass().getSimpleName()); // scenario Scenario scenario = new Scenario(); - List<Factor<? extends Serializable>> factors = new ArrayList<Factor<? extends Serializable>>(); + List<Factor> factors = new ArrayList<Factor>(); factors.add(factorEquation); scenario.setFactors(factors); Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTest.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -73,8 +73,8 @@ DesignPlan designPlan = new DesignPlan(); // factor 1 - Factor<Double> factor1 = new Factor<Double>("factor 1 (double)"); - ContinuousDomain<Double> domain1 = new ContinuousDomain<Double>(); + Factor<Double,Double> factor1 = new Factor<Double,Double>("factor 1 (double)"); + ContinuousDomain<Double,Double> domain1 = new ContinuousDomain<Double,Double>(); domain1.setMinBound(0.0); domain1.setMaxBound(50.0); domain1.setCardinality(4); @@ -94,8 +94,8 @@ factor2.setPath("fr.ifremer.isisfish.entities.PopulationGroup#1156461521064#0.022976136053553198#minLength");*/ // factor 3 - Factor<Double> factor3 = new Factor<Double>("factor 3 (double)"); - ContinuousDomain<Double> domain3 = new ContinuousDomain<Double>(); + Factor<Double,Double> factor3 = new Factor<Double,Double>("factor 3 (double)"); + ContinuousDomain<Double,Double> domain3 = new ContinuousDomain<Double,Double>(); domain3.setMinBound(12.0); domain3.setMaxBound(99.0); domain3.setCardinality(4); @@ -139,8 +139,8 @@ matrix2.setValue(new int[] { 2, 1 }, -1); // factor 1 - Factor<MatrixND> factor1 = new Factor<MatrixND>("factor 1 (matrixND)"); - DiscreteDomain<MatrixND> domain1 = new DiscreteDomain<MatrixND>(); + Factor<MatrixND,Double> factor1 = new Factor<MatrixND,Double>("factor 1 (matrixND)"); + DiscreteDomain<MatrixND,Double> domain1 = new DiscreteDomain<MatrixND,Double>(); domain1.getValues().put(0.0, matrix1); domain1.getValues().put(1.0, matrix2); factor1.setDomain(domain1); Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/FactorTest.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/FactorTest.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/FactorTest.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -50,8 +50,8 @@ @Test public void testIntFactor() { - Factor<Integer> factor = new Factor<Integer>("testint"); - ContinuousDomain<Integer> domain = new ContinuousDomain<Integer>(); + Factor<Integer,Integer> factor = new Factor<Integer,Integer>("testint"); + ContinuousDomain<Integer,Integer> domain = new ContinuousDomain<Integer,Integer>(); domain.setMinBound(0); domain.setMaxBound(50); factor.setDomain(domain); @@ -94,8 +94,8 @@ matrix2.setValue(new int[] { 1, 2 }, -13000); // factor - Factor<MatrixND> factor = new Factor<MatrixND>("testmatrix"); - DiscreteDomain<MatrixND> domain = new DiscreteDomain<MatrixND>(); + Factor<MatrixND,String> factor = new Factor<MatrixND,String>("testmatrix"); + DiscreteDomain<MatrixND,String> domain = new DiscreteDomain<MatrixND,String>(); domain.getValues().put("m1", matrix1); domain.getValues().put("m2", matrix2); factor.setDomain(domain); @@ -138,15 +138,15 @@ matrix1.setValue(new int[] { 2, 1 }, -1); // factor - Factor<MatrixND> factor = new Factor<MatrixND>("testmatrix"); - MatrixContinuousDomain<MatrixND> domain = new MatrixContinuousDomain<MatrixND>(); + Factor<MatrixND,Double> factor = new Factor<MatrixND,Double>("testmatrix"); + MatrixContinuousDomain domain = new MatrixContinuousDomain (); domain.setMatrix(matrix1); domain.setCoefficient(0.1); domain.setOperator("*"); factor.setDomain(domain); factor .setPath("org.codelutin.math.matrix.MatrixND#563456293453#2.456347646#dim"); - factor.setValueForIdentifier("0.1"); + factor.setValueForIdentifier(0.1); Assert.assertEquals(0.92, factor.getValue().getValue(new int[] { 0, 0 }),0.0000001); Assert.assertEquals(2.76, factor.getValue().getValue(new int[] { 2, 0 }),0.0000001); @@ -166,21 +166,21 @@ // factor 2 - Factor<MatrixND> factor2 = new Factor<MatrixND>("testmatrix"); - MatrixContinuousDomain<MatrixND> domain2 = new MatrixContinuousDomain<MatrixND>(); + Factor<MatrixND,Double> factor2 = new Factor<MatrixND,Double>("testmatrix"); + MatrixContinuousDomain domain2 = new MatrixContinuousDomain(); domain2.setMatrix(matrix2); domain2.setCoefficient(0.1); domain2.setOperator("/"); factor2.setDomain(domain2); factor2 .setPath("org.codelutin.math.matrix.MatrixND#563456293453#2.456347646#dim"); - factor2.setValueForIdentifier("0.1"); + factor2.setValueForIdentifier(0.1); // val + ((val / coefficient) * ((2 * Double // .valueOf((String) identifier)) - 1)) - Assert.assertEquals(-7, factor2.getValue().getValue(new int[] { 0, 0 }),0.0000001); - Assert.assertEquals(-21, factor2.getValue().getValue(new int[] { 2, 0 }),0.0000001); + Assert.assertEquals(-7.0, factor2.getValue().getValue(new int[] { 0, 0 }),0.0000001); + Assert.assertEquals(-21.0, factor2.getValue().getValue(new int[] { 2, 0 }),0.0000001); Assert.assertEquals(0,((ContinuousDomain)factor.getDomain()).getMinBound(),0); Assert.assertEquals(1,((ContinuousDomain)factor.getDomain()).getMaxBound(),0); @@ -195,15 +195,15 @@ matrix3.setValue(new int[] { 2, 1 }, -1); // factor 3 - Factor<MatrixND> factor3 = new Factor<MatrixND>("testmatrix"); - MatrixContinuousDomain<MatrixND> domain3 = new MatrixContinuousDomain<MatrixND>(); + Factor<MatrixND,Double> factor3 = new Factor<MatrixND,Double>("testmatrix"); + MatrixContinuousDomain domain3 = new MatrixContinuousDomain(); domain3.setMatrix(matrix3); domain3.setCoefficient(0.1); domain3.setOperator("-"); factor3.setDomain(domain3); factor3 .setPath("org.codelutin.math.matrix.MatrixND#563456293453#2.456347646#dim"); - factor3.setValueForIdentifier("0.1"); + factor3.setValueForIdentifier(0.1); Assert.assertEquals(0.28, factor3.getValue().getValue(new int[] { 0, 0 }),0.0000001); Assert.assertEquals(0.68, factor3.getValue().getValue(new int[] { 2, 0 }),0.0000001); @@ -221,30 +221,21 @@ matrix4.setValue(new int[] { 2, 1 }, -1); // factor 3 - Factor<MatrixND> factor4 = new Factor<MatrixND>("testmatrix"); - MatrixContinuousDomain<MatrixND> domain4 = new MatrixContinuousDomain<MatrixND>(); + Factor<MatrixND,Double> factor4 = new Factor<MatrixND,Double>("testmatrix"); + MatrixContinuousDomain domain4 = new MatrixContinuousDomain(); domain4.setMatrix(matrix4); domain4.setCoefficient(0.1); domain4.setOperator("+"); factor4.setDomain(domain4); factor4 .setPath("org.codelutin.math.matrix.MatrixND#563456293453#2.456347646#dim"); - factor4.setValueForIdentifier("0.1"); + factor4.setValueForIdentifier(0.1); Assert.assertEquals(0.12, factor4.getValue().getValue(new int[] { 0, 0 }),0.0000001); Assert.assertEquals(0.52, factor4.getValue().getValue(new int[] { 2, 0 }),0.0000001); Assert.assertEquals(0,((ContinuousDomain)factor.getDomain()).getMinBound(),0); Assert.assertEquals(1,((ContinuousDomain)factor.getDomain()).getMaxBound(),0); - try { - factor.setValueForIdentifier("blah blah"); - Assert.fail("Can't set identifier not present in domain"); - } catch (IllegalArgumentException e) { - if (log.isInfoEnabled()) { - log.info("Exception normally thrown"); - } - } - if (log.isInfoEnabled()) { log.info("factor#toString() = " + factor); } @@ -259,8 +250,8 @@ public void testEquationContinuousFactor() { // factor - Factor<Double> factor = new Factor<Double>("testequation"); - EquationContinuousDomain<Double> domain = new EquationContinuousDomain<Double>(); + Factor<Double,Double> factor = new Factor<Double,Double>("testequation"); + EquationContinuousDomain domain = new EquationContinuousDomain(); domain.setCoefficient(0.1); domain.setOperator("*"); domain.setVariableName("Linf"); @@ -268,7 +259,7 @@ factor.setDomain(domain); factor .setPath("org.codelutin.math.matrix.MatrixND#563456293453#2.456347646#dim"); - factor.setValueForIdentifier("0.1"); + factor.setValueForIdentifier(0.1); Assert.assertEquals(2.76, factor.getValue(),0.0000001); Assert.assertEquals(0,((ContinuousDomain)factor.getDomain()).getMinBound(),0); @@ -278,8 +269,8 @@ // factor 2 - Factor<Double> factor2 = new Factor<Double>("testequation"); - EquationContinuousDomain<Double> domain2 = new EquationContinuousDomain<Double>(); + Factor<Double,Double> factor2 = new Factor<Double,Double>("testequation"); + EquationContinuousDomain domain2 = new EquationContinuousDomain(); domain2.setCoefficient(0.1); domain2.setOperator("/"); domain2.setVariableName("Linf"); @@ -287,15 +278,15 @@ factor2.setDomain(domain2); factor2 .setPath("org.codelutin.math.matrix.MatrixND#563456293453#2.456347646#dim"); - factor2.setValueForIdentifier("0.1"); + factor2.setValueForIdentifier(0.1); Assert.assertEquals(-21, Double.valueOf(factor2.getValue()),0.0000001); Assert.assertEquals(0,((ContinuousDomain)factor.getDomain()).getMinBound(),0); Assert.assertEquals(1,((ContinuousDomain)factor.getDomain()).getMaxBound(),0); // factor 3 - Factor<Double> factor3 = new Factor<Double>("testequation"); - EquationContinuousDomain<Double> domain3 = new EquationContinuousDomain<Double>(); + Factor<Double,Double> factor3 = new Factor<Double,Double>("testequation"); + EquationContinuousDomain domain3 = new EquationContinuousDomain(); domain3.setCoefficient(0.1); domain3.setOperator("+"); domain3.setVariableName("Linf"); @@ -303,15 +294,15 @@ factor3.setDomain(domain3); factor3 .setPath("org.codelutin.math.matrix.MatrixND#563456293453#2.456347646#dim"); - factor3.setValueForIdentifier("0.1"); + factor3.setValueForIdentifier(0.1); Assert.assertEquals(0.52, Double.valueOf(factor3.getValue()),0.0000001); Assert.assertEquals(0,((ContinuousDomain)factor.getDomain()).getMinBound(),0); Assert.assertEquals(1,((ContinuousDomain)factor.getDomain()).getMaxBound(),0); // factor 4 - Factor<Double> factor4 = new Factor<Double>("testequation"); - EquationContinuousDomain<Double> domain4 = new EquationContinuousDomain<Double>(); + Factor<Double,Double> factor4 = new Factor<Double,Double>("testequation"); + EquationContinuousDomain domain4 = new EquationContinuousDomain(); domain4.setCoefficient(0.1); domain4.setOperator("-"); domain4.setVariableName("Linf"); @@ -319,21 +310,12 @@ factor4.setDomain(domain4); factor4 .setPath("org.codelutin.math.matrix.MatrixND#563456293453#2.456347646#dim"); - factor4.setValueForIdentifier("0.1"); + factor4.setValueForIdentifier(0.1); Assert.assertEquals(0.68, Double.valueOf(factor4.getValue()),0.0000001); Assert.assertEquals(0,((ContinuousDomain)factor.getDomain()).getMinBound(),0); Assert.assertEquals(1,((ContinuousDomain)factor.getDomain()).getMaxBound(),0); - try { - factor.setValueForIdentifier("blah blah"); - Assert.fail("Can't set identifier not present in domain"); - } catch (IllegalArgumentException e) { - if (log.isInfoEnabled()) { - log.info("Exception normally thrown"); - } - } - if (log.isInfoEnabled()) { log.info("factor#toString() = " + factor); } Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculatorRandomMock.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculatorRandomMock.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculatorRandomMock.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -90,17 +90,17 @@ // return result SensitivityScenarios sensitivityScenarios = new SensitivityScenarios(); - List<Factor<? extends Serializable>> factors = plan.getFactors(); + List<Factor> factors = plan.getFactors(); for (int i = 0; i < factors.size() * 2; ++i) { Scenario scenario = new Scenario(); // choose a 0 < number < factors.size() int pickedFactor = (int) (Math.random() * factors.size()); - Factor<? extends Serializable> factor = factors.get(pickedFactor); + Factor factor = factors.get(pickedFactor); - Domain<? extends Serializable> domain = factor.getDomain(); + Domain domain = factor.getDomain(); if (domain instanceof MatrixContinuousDomain) { - MatrixContinuousDomain<MatrixND> cDomain = (MatrixContinuousDomain<MatrixND>) domain; + MatrixContinuousDomain cDomain = (MatrixContinuousDomain) domain; Double minValue = cDomain.getMinBound(); Double maxValue = cDomain.getMaxBound(); @@ -109,7 +109,7 @@ factor.setValueForIdentifier(maxValue.toString()); scenario.addFactor(factor); } else if (domain instanceof EquationContinuousDomain) { - EquationContinuousDomain<Double> cDomain = (EquationContinuousDomain<Double>) domain; + EquationContinuousDomain cDomain = (EquationContinuousDomain) domain; Double minValue = cDomain.getMinBound(); Double maxValue = cDomain.getMaxBound(); @@ -118,7 +118,7 @@ factor.setValueForIdentifier(maxValue.toString()); scenario.addFactor(factor); } else if (domain instanceof ContinuousDomain) { - ContinuousDomain<? extends Serializable> cDomain = (ContinuousDomain<? extends Serializable>) domain; + ContinuousDomain cDomain = (ContinuousDomain) domain; Double minValue = cDomain.getMinBound(); Double maxValue = cDomain.getMaxBound(); @@ -127,7 +127,7 @@ factor.setValueForIdentifier(maxValue); scenario.addFactor(factor); } else { - DiscreteDomain<? extends Serializable> dDomain = (DiscreteDomain<? extends Serializable>) domain; + DiscreteDomain<? extends Serializable,? extends Serializable> dDomain = (DiscreteDomain) domain; for (Serializable sValue : dDomain.getValues().keySet()) { factor.setValueForIdentifier(sValue); scenario.addFactor(factor); Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModelTest.java =================================================================== --- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModelTest.java 2009-04-16 13:46:33 UTC (rev 2113) +++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModelTest.java 2009-04-17 09:49:29 UTC (rev 2114) @@ -63,10 +63,10 @@ * * @return la liste des facteur */ - protected List<Factor<? extends Serializable>> getFactors() { + protected List<Factor> getFactors() { - Factor<Integer> factor1 = new Factor<Integer>("testint"); - ContinuousDomain<Integer> domain1 = new ContinuousDomain<Integer>(); + Factor<Integer,Integer> factor1 = new Factor<Integer,Integer>("testint"); + ContinuousDomain<Integer,Integer> domain1 = new ContinuousDomain<Integer,Integer>(); domain1.setMinBound(0); domain1.setMaxBound(50); factor1.setDomain(domain1); @@ -94,15 +94,15 @@ matrix2.setValue(new int[] { 1, 2 }, -13000); // factor - Factor<MatrixND> factor2 = new Factor<MatrixND>("testmatrix"); - DiscreteDomain<MatrixND> domain2 = new DiscreteDomain<MatrixND>(); + Factor<MatrixND,String> factor2 = new Factor<MatrixND,String>("testmatrix"); + DiscreteDomain<MatrixND,String> domain2 = new DiscreteDomain<MatrixND,String>(); domain2.getValues().put("m1", matrix1); domain2.getValues().put("m2", matrix2); factor2.setDomain(domain2); factor2.setPath("org.codelutin.math.matrix.MatrixND#563456293453#2.456347646#dim"); factor2.setValueForIdentifier("m2"); - List<Factor<? extends Serializable>> factors1 = new ArrayList<Factor<? extends Serializable>>(); + List<Factor> factors1 = new ArrayList<Factor>(); factors1.add(factor1); factors1.add(factor2);