/** * */ package iamrescue.belief.provenance; import iamrescue.agent.ISimulationTimer; import java.util.ArrayList; import java.util.Collection; import java.util.Map; import javolution.util.FastMap; import rescuecore2.worldmodel.EntityID; /** * @author Sebastian * */ public class ProvenanceStore implements IProvenanceStore { private Map<EntityID, Map<String, IProvenanceInformation>> provenance = new FastMap<EntityID, Map<String, IProvenanceInformation>>(); public ProvenanceStore() { } /* * (non-Javadoc) * * @see * belief.provenance.IProvenanceStore#getProvenance(rescuecore2.worldmodel * .EntityID, rescuecore2.standard.entities.StandardPropertyURN) */ @Override public IProvenanceInformation getProvenance(EntityID id, String propertyURN) { Map<String, IProvenanceInformation> map = provenance.get(id); if (map != null) return map.get(propertyURN); else return null; } /* * (non-Javadoc) * * @see * belief.provenance.IProvenanceStore#storeProvenance(rescuecore2.worldmodel * .EntityID, belief.provenance.ProvenanceLogEntry) */ @Override public void storeProvenance(EntityID id, ProvenanceLogEntry entry) { Map<String, IProvenanceInformation> map = provenance.get(id); if (map == null) { map = new FastMap<String, IProvenanceInformation>(); provenance.put(id, map); } String propertyURN = entry.getProperty().getURN(); IProvenanceInformation provenanceInformation = map.get(propertyURN); if (provenanceInformation == null) { provenanceInformation = new FastProvenanceInformation(); map.put(propertyURN, provenanceInformation); } provenanceInformation.addEntry(entry); } @Override public Collection<String> getKnownProperties(EntityID id) { Map<String, IProvenanceInformation> map = provenance.get(id); if (map == null) { return new ArrayList<String>(); } else { return map.keySet(); } } }