Package com.complexible.stardog.api.admin

# Interface DatabaseBuilder

public interface DatabaseBuilder

Builder class for creating new Stardog databases. Provides the ability to configure the variety of options provided by memory or disk databases at creation time and to bulk load data into the database.

Please note that while memory indexes can be persisted to disk, they are only recommended for small databases or prototypes. If you want a scalable, persistent database, you really ought to be using the disk database.

Since:
  0.7
Version:
  6.0
Author:
  Michael Grove

- ## Method Summary

  Modifier and Type
  Method
  Description
  `DatabaseBuilder`
  `copyServerSide()`
  Specify that any files which are to be bulk loaded should be first copied to the remote server.
  `ConnectionConfiguration`
  `create(Path... theFiles)`
  Create the database using the parameters specified by this builder.
  `ConnectionConfiguration`
  `create(Function<Path,Resource> theContexts, Path... theFiles)`
  Create the database using the parameters specified by this builder.
  `DatabaseBuilder`
  `reporter(PrintStream theStream)`
  Sets the `output` used to print information messages during the bulk load process
  `<V> DatabaseBuilder`
  `set(ConfigProperty<V> theOption, V theValue)`
  Set the given option on this builder
  `DatabaseBuilder`
  `setAll(Metadata theMeta)`
  `set(ConfigProperty, Object)` all of the options in this metadata on this builder

- ## Method Details

  - ### copyServerSide

    DatabaseBuilder copyServerSide()
    Specify that any files which are to be bulk loaded should be first copied to the remote server.

  - ### reporter

    DatabaseBuilder reporter(PrintStream theStream)
    Sets the `output` used to print information messages during the bulk load process
    Parameters:
      `theStream` - the output stream to use
    Returns:
      this object

  - ### set

    <V> DatabaseBuilder set(ConfigProperty<V> theOption, V theValue)
    Set the given option on this builder
    Type Parameters:
      `V` - the option type
    Parameters:
      `theOption` - the option to set
      `theValue` - the value
    Returns:
      this builder object

  - ### setAll

    DatabaseBuilder setAll(Metadata theMeta)
    `set(ConfigProperty, Object)` all of the options in this metadata on this builder
    Parameters:
      `theMeta` - the options to set
    Returns:
      this builder

  - ### create

    ConnectionConfiguration create(Path... theFiles) throws StardogException

    Create the database using the parameters specified by this builder. Any files supplied to this function will be bulk loaded into the database as it is created. The data in the files will be loaded into the default graph unless the files are written in a format that supports named graphs such as Trig.

    The connection configuration returned will contain the relevant information about database name and server URL to obtain a connection, but it will not contain any login credentials; they are not kept after login, so before connecting, you must add the proper credentials to the connection configuration before attempting to connect.

    Parameters:
      `theFiles` - optionally, the files to pre-load into the database
    Returns:
      a valid `ConnectionConfiguration` to connect to the new database
    Throws:
      `StardogException` - if the database could not be created or if there was an error while performing the bulk load

  - ### create

    ConnectionConfiguration create(Function<Path,Resource> theContexts, Path... theFiles) throws StardogException

    Create the database using the parameters specified by this builder. Any files supplied to this function will be bulk loaded into the database as it is created. The parameter `theContexts` can be used to specify a context (named graph) for the triples loaded from a file. When the contents of a file is being loaded into the database, if the file format supports named graphs (e.g. Trig) then the triples will be loaded into named graphs as specified in the file. If the file format does not support named graphs (e.g. RDF/XML, Turtle, etc.) then the `theContexts` mapping is used to find a target context for the triples loaded from that file. If the mapping returns a `null` value then those triples will be loaded into the default graph without a context.

    The connection context returned will contain the relevant information about database name and server URL to obtain a connection, but it will not contain any login credentials; they are not kept after login, so before connecting, you must add the proper credentials to the connection configuration before attempting to connect.

    Parameters:
      `theContexts` - contains the mappings from a file to a context (named graph) that will be used as the target context for the triples read from that file
      `theFiles` - optionally, the files to pre-load into the database
    Returns:
      a valid `ConnectionConfiguration` to connect to the new database
    Throws:
      `StardogException` - if the database could not be created or if there was an error while performing the bulk load