Class HeFQUINEngineBuilder

java.lang.Object
se.liu.ida.hefquin.engine.HeFQUINEngineBuilder

public class HeFQUINEngineBuilder extends Object
Builder class that can be used to create a fully-wired instance of HeFQUINEngine.
  • Constructor Details

    • HeFQUINEngineBuilder

      public HeFQUINEngineBuilder()
  • Method Details

    • withFederationCatalog

      public HeFQUINEngineBuilder withFederationCatalog(FederationCatalog fedCat)
      Sets the federation catalog to be used by the engine.
      Parameters:
      fedCat - a federation catalog
      Returns:
      this builder instance for method chaining
    • withFederationCatalog

      public HeFQUINEngineBuilder withFederationCatalog(String fedCatFile)
      Sets the federation catalog to be used by the engine.
      Parameters:
      fedCatFile - a federation catalog file
      Returns:
      this builder instance for method chaining
    • withFederationCatalog

      public HeFQUINEngineBuilder withFederationCatalog(org.apache.jena.rdf.model.Model fedCatModel)
      Sets the federation catalog to be used by the engine.
      Parameters:
      fedCatModel - a federation catalog model
      Returns:
      this builder instance for method chaining
    • withEngineConfiguration

      public HeFQUINEngineBuilder withEngineConfiguration(org.apache.jena.rdf.model.Model engineConf)
      Sets the engine configuration to be used by the engine.
      Parameters:
      engineConf - an engine configuration
      Returns:
      this builder instance for method chaining
    • withEngineConfiguration

      public HeFQUINEngineBuilder withEngineConfiguration(String engineConfFile)
      Sets the engine configuration to be used by the engine.
      Parameters:
      engineConfFile - an engine configuration file
      Returns:
      this builder instance for method chaining
    • withLogicalPlanPrinter

      public HeFQUINEngineBuilder withLogicalPlanPrinter(LogicalPlanPrinter printer)
      Sets the logical plan printer to be used by the engine.
      Parameters:
      printer - a logical plan printer to be used when printing the logical plans after logical plan optimization
      Returns:
      this builder instance for method chaining
    • withPhysicalPlanPrinter

      public HeFQUINEngineBuilder withPhysicalPlanPrinter(PhysicalPlanPrinter printer)
      Sets the physical plan printer to be used by the engine.
      Parameters:
      printer - a physical plan printer
      Returns:
      this builder instance for method chaining
    • withSourceAssignmentPrinter

      public HeFQUINEngineBuilder withSourceAssignmentPrinter(LogicalPlanPrinter printer)
      Sets the source assignment printer to be used by the engine.
      Parameters:
      printer - a logical plan printer to be used when printing a source assignment that is the input to logical plan optimization
      Returns:
      this builder instance for method chaining
    • setSkipExecution

      public HeFQUINEngineBuilder setSkipExecution(boolean skip)
      Sets whether the engine should skip execution after query planning.
      Parameters:
      skip - whether to skip query execution
      Returns:
      this builder instance for method chaining
    • setExperimentRun

      public HeFQUINEngineBuilder setExperimentRun(boolean isExperimentRun)
      Sets whether the engine should treat the current run as part of an experiment.
      Parameters:
      isExperimentRun - whether this is an experimental run
      Returns:
      this builder instance for method chaining
    • build

      public HeFQUINEngine build()
      Returns a HeFQUINEngine instance that is created using the parameters configured via this builder. The federation catalog must be provided via withFederationCatalog, default values will be used for all other components unless specified explicitly.
      Returns:
      an initialized HeFQUINEngine instance
      Throws:
      IllegalStateException - if the federation catalog has not been set