Class Results

java.lang.Object
modelarium.results.Results
All Implemented Interfaces:
DeepCopyable<Results>
Direct Known Subclasses:
FunctionalResults

public abstract class Results extends Object implements DeepCopyable<Results>
Abstract base class for storing and manipulating simulation results.

Encapsulates agent and environment results, including raw data as well as processed or accumulated values. The class supports transitioning to an immutable state after simulation and includes functionality for connecting/disconnecting underlying result databases.

Subclasses must define how agent property and event data are accumulated.

  • Constructor Details

    • Results

      public Results()
  • Method Details

    • seal

      public void seal()
      Makes this Results instance immutable, preventing further modification.
    • setAgentNames

      public void setAgentNames(AgentSet agents)
      Stores the names of all agents in the model.
      Parameters:
      agents - the set of agents
    • setAgentNames

      public void setAgentNames(List<AgentSet> agentSetList)
      Stores the names of all agents from a list of agent sets.
      Parameters:
      agentSetList - list of agent sets
    • getAgentNames

      public List<String> getAgentNames()
      Returns a list of all agent names involved in the model.
      Returns:
      the list of agent names
    • setAgentResults

      public void setAgentResults(AgentResults agentResults)
      Sets the raw agent results and connects the underlying database.
      Parameters:
      agentResults - the raw agent results
    • setEnvironmentResults

      public void setEnvironmentResults(EnvironmentResults environmentResults)
      Sets the raw environment results and connects the underlying database.
      Parameters:
      environmentResults - the raw environment results
    • deepCopy

      public Results deepCopy()
      Specified by:
      deepCopy in interface DeepCopyable<Results>
    • getAgentPropertyValues

      public List<Object> getAgentPropertyValues(String agentName, String attributeSetName, String propertyName)
    • getAgentPreEventValues

      public List<Boolean> getAgentPreEventValues(String agentName, String attributeSetName, String eventName)
    • getAgentPostEventValues

      public List<Boolean> getAgentPostEventValues(String agentName, String attributeSetName, String eventName)
    • getEnvironmentPropertyValues

      public List<Object> getEnvironmentPropertyValues(String attributeSetName, String propertyName)
    • getEnvironmentPreEventValues

      public List<Boolean> getEnvironmentPreEventValues(String attributeSetName, String eventName)
    • getEnvironmentPostEventValues

      public List<Boolean> getEnvironmentPostEventValues(String attributeSetName, String eventName)
    • getAccumulatedAgentPropertyValues

      public List<Object> getAccumulatedAgentPropertyValues(String attributeSetName, String propertyName)
    • getAccumulatedAgentPreEventValues

      public List<Object> getAccumulatedAgentPreEventValues(String attributeSetName, String eventName)
    • getAccumulatedAgentPostEventValues

      public List<Object> getAccumulatedAgentPostEventValues(String attributeSetName, String eventName)
    • getAccumulatedEnvironmentPropertyValues

      public List<Object> getAccumulatedEnvironmentPropertyValues(String attributeSetName, String propertyName)
    • getAccumulatedEnvironmentPreEventValues

      public List<Object> getAccumulatedEnvironmentPreEventValues(String attributeSetName, String eventName)
    • getAccumulatedEnvironmentPostEventValues

      public List<Object> getAccumulatedEnvironmentPostEventValues(String attributeSetName, String eventName)
    • disconnectRawDatabases

      public void disconnectRawDatabases()
      Disconnects all raw (per-agent and environment) databases if connected.
    • disconnectAccumulatedDatabases

      public void disconnectAccumulatedDatabases()
      Disconnects all accumulated/processed databases if connected.
    • disconnectAllDatabases

      public void disconnectAllDatabases()
      Disconnects all raw and processed databases.
    • accumulateAgentAttributeData

      public void accumulateAgentAttributeData()
      Accumulates agent data over all ticks. Must be called before accessing accumulated values.
    • processEnvironmentAttributeData

      public void processEnvironmentAttributeData()
      Processes the environment data across all ticks. Must be called before accessing processed environment values.
    • mergeWithBeforeAccumulation

      public void mergeWithBeforeAccumulation(Results otherResults)
      Merges agent results from another simulation run prior to accumulation.
      Parameters:
      otherResults - the results to merge into this one
    • accumulateAgentPropertyResults

      protected abstract List<?> accumulateAgentPropertyResults(String attributeSetName, String propertyName, List<?> accumulatedValues, List<?> valuesToBeProcessed)
      Subclasses must define how to accumulate agent property values.
    • accumulateAgentPreEventResults

      protected abstract List<?> accumulateAgentPreEventResults(String attributeSetName, String preEventName, List<?> accumulatedValues, List<Boolean> valuesToBeProcessed)
      Subclasses must define how to accumulate agent pre-event values.
    • accumulateAgentPostEventResults

      protected abstract List<?> accumulateAgentPostEventResults(String attributeSetName, String postEventName, List<?> accumulatedValues, List<Boolean> valuesToBeProcessed)
      Subclasses must define how to accumulate agent post-event values.
    • processEnvironmentPropertyResults

      protected List<?> processEnvironmentPropertyResults(String attributeName, String propertyName, List<?> propertyValues)
    • processEnvironmentPreEventResults

      protected List<?> processEnvironmentPreEventResults(String attributeName, String eventName, List<?> preEventValues)
    • processEnvironmentPostEventResults

      protected List<?> processEnvironmentPostEventResults(String attributeName, String eventName, List<?> postEventValues)