diff --git a/data/input/northeastamerica/RIO_obs_NEA.xml b/data/input/northeastamerica/RIO_obs_NEA.xml index 2bcf2541753e71ea6aeb72d3bb8cf67bd535ea7a..8e241cba58bc342a3735662fc9edc2cfc573b412 100644 --- a/data/input/northeastamerica/RIO_obs_NEA.xml +++ b/data/input/northeastamerica/RIO_obs_NEA.xml @@ -1,6 +1,10 @@ <hashtable> <entry> - <java-class>fr.cemagref.simaqualife.kernel.AquaticWorld</java-class> + <!-- + + <java-class>fr.cemagref.simaqualife.kernel.AquaticWorld</java-class>--> + <java-class>environment.RIOBasinNetworkWithContinent</java-class> + <fr.cemagref.observation.kernel.ObservablesHandler> <observers> <environment.RIOBasinNetworkObserverWithContinent> diff --git a/src/main/java/environment/RIOBasinNetwork.java b/src/main/java/environment/RIOBasinNetwork.java index 7d10bfb591d8cb2c39ac9121fab682d9a2dc609d..382149f89d152c08835748388410de6a89654c9f 100644 --- a/src/main/java/environment/RIOBasinNetwork.java +++ b/src/main/java/environment/RIOBasinNetwork.java @@ -5,7 +5,6 @@ import java.util.List; import java.util.Map; import environment.OffshoreBasin.OffshoreBasinFunction; -import fr.cemagref.observation.kernel.ObservablesHandler; import fr.cemagref.simaqualife.kernel.AquaNismsGroup; import fr.cemagref.simaqualife.kernel.util.TransientParameters.InitTransientParameters; import fr.cemagref.simaqualife.pilot.Pilot; @@ -32,22 +31,12 @@ public abstract class RIOBasinNetwork extends BasinNetwork { protected transient Time time; - protected static transient ObservablesHandler cobservable; - - - public ObservablesHandler getCobservable() { - return cobservable; - } - @Override @InitTransientParameters public void initTransientParameters(Pilot pilot) { time = new Time(); - if (cobservable == null) { - cobservable = pilot.addObservable(this.getClass()); - } } diff --git a/src/main/java/environment/RIOBasinNetworkWithContinent.java b/src/main/java/environment/RIOBasinNetworkWithContinent.java index a34674ef6fdfec671f08ba0341de7bea692e4702..990a67f83422532404809eb7a73fec1d7805a58e 100644 --- a/src/main/java/environment/RIOBasinNetworkWithContinent.java +++ b/src/main/java/environment/RIOBasinNetworkWithContinent.java @@ -24,6 +24,7 @@ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; import environment.OffshoreBasin.OffshoreBasinFunction; +import fr.cemagref.observation.kernel.ObservablesHandler; import fr.cemagref.simaqualife.kernel.util.TransientParameters.InitTransientParameters; import fr.cemagref.simaqualife.pilot.Pilot; import miscellaneous.QueueMemoryMap; @@ -55,6 +56,13 @@ public class RIOBasinNetworkWithContinent extends RIOBasinNetwork { private transient Map<String, Path2D.Double> mapContinent; + protected transient ObservablesHandler cobservable; + + + public ObservablesHandler getCobservable() { + return cobservable; + } + class Record implements Comparable<Record> { private int order; @@ -215,6 +223,10 @@ public class RIOBasinNetworkWithContinent extends RIOBasinNetwork { super.initTransientParameters(pilot); + if (cobservable == null) { + cobservable = pilot.addObservable(this.getClass()); + } + FileReader reader; Scanner scanner; diff --git a/src/main/java/species/DisperseAndMigrateToRiverWithMultiNomDistriAndDeathBasin.java b/src/main/java/species/DisperseAndMigrateToRiverWithMultiNomDistriAndDeathBasin.java index 2b2d10266404b423c4203aed6182e27ea74fe030..f231f1ababdec40a0a87c3a96396c6ba25148cab 100644 --- a/src/main/java/species/DisperseAndMigrateToRiverWithMultiNomDistriAndDeathBasin.java +++ b/src/main/java/species/DisperseAndMigrateToRiverWithMultiNomDistriAndDeathBasin.java @@ -13,6 +13,7 @@ import com.thoughtworks.xstream.io.xml.DomDriver; import environment.InshoreBasin; import environment.RIOBasinNetwork; +import environment.RIOBasinNetworkWithContinent; import environment.RiverBasin; import environment.Time; import environment.Time.Season; @@ -247,14 +248,16 @@ public class DisperseAndMigrateToRiverWithMultiNomDistriAndDeathBasin extends Di } } } + System.out.println(this.getClass().getSimpleName()); System.out.println(" total abundance in river basins: " + group.getFishEffective()); - System.out.println("female spawners: " + group.getFemaleSpawnerEffective() + " \tmale spawners: " + System.out.println(" female spawners: " + group.getFemaleSpawnerEffective() + " \tmale spawners: " + group.getMaleSpawnerEffective()); // -------------------------------------------------------------------------------------------------- // update the observers // ------------------------------------------------------------------------------------------------------ - group.getEnvironment().getCobservable().fireChanges(group.getEnvironment(), pilot.getCurrentTime()); + ((RIOBasinNetworkWithContinent) group.getEnvironment()).getCobservable().fireChanges((group.getEnvironment()), + pilot.getCurrentTime()); } } } diff --git a/src/main/java/species/MigrateBetweenOffshores.java b/src/main/java/species/MigrateBetweenOffshores.java index 4fda5d9af9e1480c8fd5cdc93cbf66c5b15d39ba..b2425034c638162172211fff1bc9ad607991cfbc 100644 --- a/src/main/java/species/MigrateBetweenOffshores.java +++ b/src/main/java/species/MigrateBetweenOffshores.java @@ -10,6 +10,7 @@ import com.thoughtworks.xstream.io.xml.DomDriver; import environment.Basin; import environment.OffshoreBasin; +import environment.RIOBasinNetworkWithContinent; import environment.RiverBasin; import environment.Time.Season; import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess; @@ -65,7 +66,9 @@ public class MigrateBetweenOffshores extends AquaNismsGroupProcess<DiadromousFis // -------------------------------------------------------------------------------------------------- // update the observers // ------------------------------------------------------------------------------------------------------ - group.getEnvironment().getCobservable().fireChanges(group.getEnvironment(), pilot.getCurrentTime()); + ((RIOBasinNetworkWithContinent) group.getEnvironment()).getCobservable().fireChanges((group.getEnvironment()), + pilot.getCurrentTime()); + } else if (group.getEnvironment().getTime().getSeason(group.getPilot()) == migrationSeasonToReachSummeringOffshore) { for (OffshoreBasin winteringOffshoreBasin : group.getEnvironment().getWinteringOffshoreBasins()) { @@ -93,7 +96,8 @@ public class MigrateBetweenOffshores extends AquaNismsGroupProcess<DiadromousFis // -------------------------------------------------------------------------------------------------- // update the observers // ------------------------------------------------------------------------------------------------------ - group.getEnvironment().getCobservable().fireChanges(group.getEnvironment(), pilot.getCurrentTime()); + ((RIOBasinNetworkWithContinent) group.getEnvironment()).getCobservable().fireChanges((group.getEnvironment()), + pilot.getCurrentTime()); } } } \ No newline at end of file