Commit 0bad01bb authored by Poulet Camille's avatar Poulet Camille
Browse files

Implement MigrateFromOffshoreToInshore

Deplacement of prespawning adults from offshore basin to inshore basin
Showing with 69 additions and 0 deletions
+69 -0
package species;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import environment.Basin;
import environment.InshoreBasin;
import environment.OffshoreBasin;
import environment.RiverBasin;
import environment.Time;
import environment.Time.Season;
import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess;
import java.io.BufferedWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import miscellaneous.Duo;
import species.DiadromousFish.Stage;
import org.openide.util.lookup.ServiceProvider;
@ServiceProvider(service = AquaNismsGroupProcess.class)
public class MigrateFromOffshoreToInshore extends AquaNismsGroupProcess<DiadromousFish, DiadromousFishGroup> {
private Season migrationSeasonToReachInshore = Season.SPRING;
public static void main(String[] args) {
System.out.println((new XStream(new DomDriver()))
.toXML(new MigrateFromOffshoreToInshore()));
}
@Override
public void doProcess(DiadromousFishGroup group) {
Time time = group.getEnvironment().getTime();
Basin destination = null;
if (group.getEnvironment().getTime().getSeason(group.getPilot()) == migrationSeasonToReachInshore){
for ( OffshoreBasin winteringOffshoreBasin : group.getEnvironment().getWinteringOffshoreBasins()){
List<DiadromousFish> fishInWinteringOffshoreBasin = winteringOffshoreBasin.getFishs(group);
if (fishInWinteringOffshoreBasin != null) {
ListIterator<DiadromousFish> fishIterator = fishInWinteringOffshoreBasin.listIterator();
while (fishIterator.hasNext()) {
DiadromousFish fish = fishIterator.next();
destination = ((RiverBasin) fish.getMemorisedBasin()).getConnectedInshoreBasin();
// add fish with its new position to destination basin
fish.setPosition(destination);
destination.addFish(fish, group);
// remove fish from the present basin (with the listIterator to speed up !)
fishIterator.remove();
}
}
}
}
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment