package com.plectix.simulator.stories.weakcompression.util; import java.util.Map; import java.util.TreeMap; import java.util.Map.Entry; import com.plectix.simulator.io.SimulationDataOutputUtil; import com.plectix.simulator.simulator.KappaSystem; import com.plectix.simulator.staticanalysis.stories.MarkOfEvent; import com.plectix.simulator.staticanalysis.stories.storage.AtomicEvent; import com.plectix.simulator.staticanalysis.stories.storage.Event; import com.plectix.simulator.staticanalysis.stories.storage.StoryStorageException; import com.plectix.simulator.staticanalysis.stories.storage.WireHashKey; import com.plectix.simulator.staticanalysis.stories.storage.WireStorageInterface; public class StoragePrinter { private WireStorageInterface storage; private KappaSystem kappaSystem; private TreeMap<Long, MarkOfEvent> first; public StoragePrinter(WireStorageInterface storage, KappaSystem kappaSystem) { this.storage = storage; this.kappaSystem = kappaSystem; } public void printWire(WireHashKey wireHashKey, TreeMap<Long, AtomicEvent<?>> value) { for (Entry<Long, AtomicEvent<?>> entry : value.entrySet()) { System.err.println(entry.getKey() + "\t (" + entry.getValue().getState() + ")" + entry.getValue().getType() + ":\t" + entry.getValue().getContainer().getMark()); } } public void printResult(Map<Long, MarkOfEvent> exMap, boolean b) { if (b) { if (exMap == null) System.out.println("BEGIN"); System.out.println("STORAGE WAS:"); for (Event event : storage.getEvents()) { System.out.println(event.getStepId() + "\t" + event.getRuleId() + "\t" + event.getMark() + "\t" + ((event.getRuleId() != -1) ? SimulationDataOutputUtil.getData( kappaSystem.getRuleById(event.getRuleId()), true) : "initial event") + "\t" + ((event.getRuleId() != -1) ? kappaSystem.getRuleById( event.getRuleId()).getName() : "init")); } System.out.println("map WAS:"); for (Entry<Long, MarkOfEvent> entry : first.entrySet()) { System.out.println(entry.getKey() + "\t" + entry.getValue()); } } if (exMap != null) { System.out.println("map BECOME:"); for (Entry<Long, MarkOfEvent> entry : exMap.entrySet()) { System.out.println(entry.getKey() + "\t" + entry.getValue()); } } else System.out.println("ex map == NULL"); } public void fillFirstMap() throws StoryStorageException { first = new TreeMap<Long, MarkOfEvent>(); for (Event event : storage.getEvents()) { if (event.getMark() != null) { first.put(event.getStepId(), event.getMark()); } else { first.put(event.getStepId(), MarkOfEvent.UNRESOLVED); } } first.put(storage.observableEvent().getStepId(), MarkOfEvent.KEPT); } public TreeMap<Long, MarkOfEvent> getFirst() { return first; } }