Class InstanceManager<I extends Instance>

java.lang.Object
es.urjc.etsii.grafo.io.InstanceManager<I>
Type Parameters:
I - Instance class

@Service public class InstanceManager<I extends Instance> extends Object
Class to manage instances during the solving lifecycle
  • Field Details

  • Constructor Details

    • InstanceManager

      public InstanceManager(InstanceConfiguration instanceConfiguration, InstanceImporter<I> instanceImporter)
      Build instance manager
      Parameters:
      instanceConfiguration - instance configuration
      instanceImporter - instance importer
  • Method Details

    • getInstanceSolveOrder

      public List<String> getInstanceSolveOrder(String expName)
    • getInstanceSolveOrder

      public List<String> getInstanceSolveOrder(String expName, boolean preload)
      Get which instances have to be solved for a given experiment
      Parameters:
      expName - experiment name as string
      preload - if true load instances to use comparator to sort them, if false uses lexicograph sort by path name
      Returns:
      Ordered list of instance identifiers, that can be later used by the getInstance method. Instances should be solved in the returned order.
    • validateAndSort

      protected List<String> validateAndSort(String expName, List<String> instancePaths)
    • lexicSort

      protected List<String> lexicSort(List<String> instancePaths)
    • validate

      protected void validate(List<I> instances, String expName)
    • getInstance

      public I getInstance(String path)
      Returns an instance given a path
      Parameters:
      path - Path of instance to load
      Returns:
      Loaded instance
    • loadInstance

      protected I loadInstance(String path)
    • purgeCache

      public void purgeCache()
      Purge instance cache
    • getUserImporterImplementation

      public InstanceImporter<I> getUserImporterImplementation()