r2045 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity: . domain
Author: jcouteau Date: 2009-03-31 08:33:52 +0000 (Tue, 31 Mar 2009) New Revision: 2045 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/Factor.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 Log: real clone() method for domains 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-03-30 14:18:23 UTC (rev 2044) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/Domain.java 2009-03-31 08:33:52 UTC (rev 2045) @@ -61,4 +61,12 @@ * @param visitor */ public void accept(DomainVisitor visitor); + + /** + * Clone the domain + * + * @return the domain cloned + */ + + public Domain<E> 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-03-30 14:18:23 UTC (rev 2044) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/Factor.java 2009-03-31 08:33:52 UTC (rev 2045) @@ -22,27 +22,29 @@ import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain; import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain; +import fr.ifremer.isisfish.simulator.sensitivity.domain.EquationContinuousDomain; +import fr.ifremer.isisfish.simulator.sensitivity.domain.MatrixContinuousDomain; import fr.ifremer.isisfish.simulator.sensitivity.visitor.FactorVisitor; /** * Facteur de variation des parametres de simulation. - * - * @param <E> type des valeurs gérées par le facteur * - * La classe doit être {@link Serializable} avec ses valeurs - * pour permettre l'export XML. + * @param <E> + * type des valeurs gérées par le facteur * + * La classe doit être {@link Serializable} avec ses valeurs pour permettre + * l'export XML. + * * @author chatellier * @version $Revision: 1.0 $ * - * Last update : $Date: 19 févr. 2009 $ - * By : $Author: chatellier $ + * Last update : $Date: 19 févr. 2009 $ By : $Author: chatellier $ */ public class Factor<E extends Serializable> implements Serializable, Cloneable { /** serialVersionUID. */ private static final long serialVersionUID = 1643804268013964453L; - + /** * Nom du facteur. */ @@ -52,35 +54,32 @@ * Commentaire du facteur. */ protected String comment; - + /** * Domaine du facteur. * - * Ensemble des valeurs possibles a prendre en compte. - * La clé est un label qui permet d'identifier la valeur. + * Ensemble des valeurs possibles a prendre en compte. La clé est un label + * qui permet d'identifier la valeur. * - * Le domain peut etre : - * - discret : i.e un ensemble de valeurs - * - continu : i.e, une borne min, max - * + * Le domain peut etre : - discret : i.e un ensemble de valeurs - continu : + * i.e, une borne min, max + * * @see ContinuousDomain * @see DiscreteDomain */ protected Domain<E> domain; - + /** * Factor value. */ protected E value; - + /** - * Path permettant d'identifier l'objet et - * la propriete de l'objet a mettre a jour. + * Path permettant d'identifier l'objet et la propriete de l'objet a mettre + * a jour. * - * Par exemple: - * topiaID#gear - * aura pour effet de recuperer l'objet correspondant - * au topiaID fournit et d'appeler le propriete + * Par exemple: topiaID#gear aura pour effet de recuperer l'objet + * correspondant au topiaID fournit et d'appeler le propriete * <tt>setGear(value)</tt> dessus. */ protected String path; @@ -93,17 +92,18 @@ protected Factor() { } - + /** * Constructor with name. * - * @param name factor name + * @param name + * factor name */ public Factor(String name) { this(); this.name = name; } - + /** * Get name. * @@ -116,7 +116,8 @@ /** * Set name. * - * @param name the name to set + * @param name + * the name to set */ public void setName(String name) { this.name = name; @@ -124,7 +125,7 @@ /** * Get comment. - * + * * @return the comment */ public String getComment() { @@ -133,8 +134,9 @@ /** * Set comment. - * - * @param the comment to set + * + * @param the + * comment to set */ public void setComment(String comment) { this.comment = comment; @@ -152,7 +154,8 @@ /** * Set domain. * - * @param domain the domain to set + * @param domain + * the domain to set */ public void setDomain(Domain<E> domain) { this.domain = domain; @@ -169,17 +172,19 @@ /** * Set value. - * - * @param value new value + * + * @param value + * new value */ public void setValue(E value) { this.value = value; } - + /** * Set value for label. - * - * @param valueIdentifier new value identifier to get + * + * @param valueIdentifier + * new value identifier to get */ public void setValueForIdentifier(Serializable valueIdentifier) { value = domain.getValueForIdentifier(valueIdentifier); @@ -197,7 +202,8 @@ /** * Set path. * - * @param path the path to set + * @param path + * the path to set */ public void setPath(String path) { this.path = path; @@ -213,7 +219,7 @@ visitor.visit(this, domain); visitor.end(this); } - + /** * {@inheritDoc} */ @@ -221,18 +227,18 @@ public Object clone() { Factor<E> f = new Factor<E>(); - // FIXME make real clone() for domain - f.domain = domain; + + f.domain = domain.clone(); f.name = name; f.path = path; // FIXME make real clone() for value f.value = value; - + return f; } @Override - public String toString(){ + public String toString() { return name; } } 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-03-30 14:18:23 UTC (rev 2044) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/ContinuousDomain.java 2009-03-31 08:33:52 UTC (rev 2045) @@ -134,4 +134,12 @@ public void setCardinality(int cardinality) { this.cardinality = cardinality; } + + public ContinuousDomain<E> clone(){ + ContinuousDomain<E> cloned = new ContinuousDomain<E>(); + cloned.setCardinality(this.cardinality); + cloned.setMaxBound(this.maxBound); + cloned.setMinBound(this.minBound); + return cloned; + } } 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-03-30 14:18:23 UTC (rev 2044) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/DiscreteDomain.java 2009-03-31 08:33:52 UTC (rev 2045) @@ -102,4 +102,11 @@ } visitor.end(this); } + + public DiscreteDomain<E> clone(){ + DiscreteDomain<E> cloned = new DiscreteDomain<E>(); + 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-03-30 14:18:23 UTC (rev 2044) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/EquationContinuousDomain.java 2009-03-31 08:33:52 UTC (rev 2045) @@ -53,6 +53,9 @@ /** Valeur de reference in percent */ protected Double referenceValue; + + /** Value used to create the equation */ + protected Double value; /** * Empty constructor. @@ -164,6 +167,9 @@ * only. Here : return identifier. */ public E getValueForIdentifier(Serializable identifier) { + + this.value = Double.valueOf((String)identifier); + if (operator.equals("+")) { return (E) ((Double) (referenceValue + ((referenceValue + coefficient) * ((2 * Double .valueOf((String) identifier)) - 1)))); @@ -179,4 +185,37 @@ } return (E) identifier; } + + /** + * Get value used to create the equation. + * + * @return the value + */ + public Double getValue() { + return this.value; + } + + /** + * Set value used to create the equation. + * + * @param value + * the value to set + */ + public void setValue(Double value) { + this.value = value; + } + + public EquationContinuousDomain<E> clone(){ + EquationContinuousDomain<E> cloned = new EquationContinuousDomain<E>(); + cloned.setCardinality(this.cardinality); + cloned.setMaxBound(this.maxBound); + cloned.setMinBound(this.minBound); + cloned.setCoefficient(this.coefficient); + cloned.setOperator(this.operator); + cloned.setValue(this.value); + cloned.setReferenceValue(this.referenceValue); + cloned.setVariableName(this.variableName); + return cloned; + } + } 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-03-30 14:18:23 UTC (rev 2044) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/domain/MatrixContinuousDomain.java 2009-03-31 08:33:52 UTC (rev 2045) @@ -50,6 +50,9 @@ /** Operation. (=,+,-,/) */ protected String operator; + + /** Value used to create the matrix */ + protected double value; /** * Empty constructor. @@ -137,6 +140,8 @@ * In continuous domain, just return identifier */ public E getValueForIdentifier(final Serializable identifier) { + this.value = Double.valueOf((String)identifier); + System.out.println("Value : "+this.value); if (operator.equals("+")) { this.matrix.map(new MapFunction() { public double apply(double val) { @@ -168,4 +173,35 @@ } return (E) this.matrix; } + + /** + * Get value used to create the matrix. + * + * @return the value + */ + public Double getValue() { + return this.value; + } + + /** + * Set value used to create the matrix. + * + * @param value + * the value to set + */ + public void setValue(Double value) { + this.value = value; + } + + public MatrixContinuousDomain<E> clone(){ + MatrixContinuousDomain<E> cloned = new MatrixContinuousDomain<E>(); + cloned.setCardinality(this.cardinality); + cloned.setMaxBound(this.maxBound); + cloned.setMinBound(this.minBound); + cloned.setCoefficient(this.coefficient); + cloned.setMatrix(this.matrix); + cloned.setOperator(this.operator); + cloned.setValue(this.value); + return cloned; + } }
participants (1)
-
jcouteau@users.labs.libre-entreprise.org