Class ApplicationBuilder

java.lang.Object
com.yahoo.schema.ApplicationBuilder

public class ApplicationBuilder extends Object
Application builder. Usage: 1) Add all schemas, using the addXXX() methods, 2) provide the available rank types and rank expressions, using the setRankXXX() methods, 3) invoke the build(boolean) method
Author:
bratseth
  • Constructor Details

    • ApplicationBuilder

      public ApplicationBuilder()
      For testing only
    • ApplicationBuilder

      public ApplicationBuilder(com.yahoo.config.application.api.DeployLogger deployLogger)
      For testing only
    • ApplicationBuilder

      public ApplicationBuilder(com.yahoo.config.application.api.DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry)
      For testing only
    • ApplicationBuilder

      public ApplicationBuilder(boolean documentsOnly)
      Used for generating documents for typed access to document fields in Java
    • ApplicationBuilder

      public ApplicationBuilder(com.yahoo.config.application.api.ApplicationPackage app, com.yahoo.config.application.api.DeployLogger deployLogger)
      For testing only
    • ApplicationBuilder

      public ApplicationBuilder(com.yahoo.config.application.api.ApplicationPackage app, com.yahoo.config.application.api.DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry)
      For testing only
    • ApplicationBuilder

      public ApplicationBuilder(RankProfileRegistry rankProfileRegistry)
      For testing only
    • ApplicationBuilder

      public ApplicationBuilder(RankProfileRegistry rankProfileRegistry, com.yahoo.search.query.profile.QueryProfileRegistry queryProfileRegistry)
      For testing only
    • ApplicationBuilder

      public ApplicationBuilder(com.yahoo.config.model.api.ModelContext.Properties properties)
      For testing only
    • ApplicationBuilder

      public ApplicationBuilder(RankProfileRegistry rankProfileRegistry, com.yahoo.search.query.profile.QueryProfileRegistry queryProfileRegistry, com.yahoo.config.model.api.ModelContext.Properties properties)
      For testing only
    • ApplicationBuilder

      public ApplicationBuilder(com.yahoo.config.application.api.ApplicationPackage app, com.yahoo.config.application.api.FileRegistry fileRegistry, com.yahoo.config.application.api.DeployLogger deployLogger, com.yahoo.config.model.api.ModelContext.Properties properties, RankProfileRegistry rankProfileRegistry, com.yahoo.search.query.profile.QueryProfileRegistry queryProfileRegistry)
      Regular constructor
  • Method Details

    • addSchemaFile

      public void addSchemaFile(String fileName) throws IOException, ParseException
      Adds a schema to this application.
      Parameters:
      fileName - the name of the file to import
      Throws:
      IOException - thrown if the file can not be read for some reason
      ParseException - thrown if the file does not contain a valid search definition
    • addSchema

      public void addSchema(com.yahoo.io.reader.NamedReader reader)
      Reads and parses the schema string provided by the given reader. Once all schemas have been imported, call build(boolean).
      Parameters:
      reader - the reader whose content to import
    • addSchema

      public void addSchema(String schemaString) throws ParseException
      Adds a schema to this
      Parameters:
      schemaString - the content of the schema
      Throws:
      ParseException
    • add

      public Schema add(Schema schema)
      Registers the given schema to the application to be built during build(boolean). A Schema object is considered to be "raw" if it has not already been processed. This is the case for most programmatically constructed schemas used in unit tests.
      Parameters:
      schema - the object to import
      Throws:
      IllegalArgumentException - if the given search object has already been processed
    • build

      public Application build(boolean validate)
      Processes and finalizes the schemas of this.
      Throws:
      IllegalStateException - thrown if this method has already been called
    • processorsToSkip

      public Set<Class<? extends Processor>> processorsToSkip()
      Returns a modifiable set of processors we should skip for these schemas. Useful for testing.
    • getSchema

      public Schema getSchema()
      Convenience method to call getSchema(String) when there is only a single Schema object built. This method will never return null.
      Returns:
      the built object
      Throws:
      IllegalStateException - if there is not exactly one search.
    • getModel

      public DocumentModel getModel()
    • getSchema

      public Schema getSchema(String name)
      Returns the built Schema object that has the given name. If the name is unknown, this method will simply return null.
      Parameters:
      name - the name of the schema to return, or null to return the only one or throw an exception if there are multiple to choose from
      Returns:
      the built object, or null if none with this name
      Throws:
      IllegalStateException - if build(boolean) has not been called.
    • application

      public Application application()
    • getSchemaList

      public List<Schema> getSchemaList()
      Convenience method to return a list of all built Schema objects.
      Returns:
      the list of built searches
    • createFromString

      public static ApplicationBuilder createFromString(String sd) throws ParseException
      Convenience factory method to import and build a Schema object from a string.
      Parameters:
      sd - the string to build from
      Returns:
      the built ApplicationBuilder object
      Throws:
      ParseException - thrown if there is a problem parsing the string
    • createFromString

      public static ApplicationBuilder createFromString(String sd, com.yahoo.config.application.api.DeployLogger logger) throws ParseException
      Throws:
      ParseException
    • createFromStrings

      public static ApplicationBuilder createFromStrings(com.yahoo.config.application.api.DeployLogger logger, String... schemas) throws ParseException
      Throws:
      ParseException
    • createFromFile

      public static ApplicationBuilder createFromFile(String fileName) throws IOException, ParseException
      Convenience factory method to import and build a Schema object from a file. Only for testing.
      Parameters:
      fileName - the file to build from
      Returns:
      the built ApplicationBuilder object
      Throws:
      IOException - if there was a problem reading the file.
      ParseException - if there was a problem parsing the file content.
    • createFromFiles

      public static ApplicationBuilder createFromFiles(Collection<String> fileNames) throws IOException, ParseException
      Convenience factory methods to create a SearchBuilder from multiple SD files. Only for testing.
      Throws:
      IOException
      ParseException
    • createFromFile

      public static ApplicationBuilder createFromFile(String fileName, com.yahoo.config.application.api.DeployLogger logger) throws IOException, ParseException
      Throws:
      IOException
      ParseException
    • createFromDirectory

      public static ApplicationBuilder createFromDirectory(String dir, com.yahoo.config.application.api.FileRegistry fileRegistry, com.yahoo.config.application.api.DeployLogger logger, com.yahoo.config.model.api.ModelContext.Properties properties) throws IOException, ParseException
      Throws:
      IOException
      ParseException
    • createFromDirectory

      public static ApplicationBuilder createFromDirectory(String dir, com.yahoo.config.application.api.FileRegistry fileRegistry, com.yahoo.config.application.api.DeployLogger logger, com.yahoo.config.model.api.ModelContext.Properties properties, RankProfileRegistry rankProfileRegistry) throws IOException, ParseException
      Throws:
      IOException
      ParseException
    • buildFromFile

      public static Schema buildFromFile(String fileName) throws IOException, ParseException
      Convenience factory method to import and build a Schema object from a file. Only for testing.
      Parameters:
      fileName - the file to build from
      Returns:
      the built Schema object
      Throws:
      IOException - thrown if there was a problem reading the file
      ParseException - thrown if there was a problem parsing the file content
    • buildFromFile

      public static Schema buildFromFile(String fileName, RankProfileRegistry rankProfileRegistry, com.yahoo.search.query.profile.QueryProfileRegistry queryProfileRegistry) throws IOException, ParseException
      Convenience factory method to import and build a Schema object from a file.
      Parameters:
      fileName - the file to build from
      rankProfileRegistry - registry for rank profiles
      Returns:
      the built Schema object
      Throws:
      IOException - thrown if there was a problem reading the file
      ParseException - thrown if there was a problem parsing the file content
    • buildFromFile

      public static Schema buildFromFile(String fileName, com.yahoo.config.application.api.DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, com.yahoo.search.query.profile.QueryProfileRegistry queryProfileRegistry) throws IOException, ParseException
      Convenience factory method to import and build a Schema from a file.
      Parameters:
      fileName - the file to build from
      deployLogger - logger for deploy messages
      rankProfileRegistry - registry for rank profiles
      Returns:
      the built Schema object
      Throws:
      IOException - thrown if there was a problem reading the file
      ParseException - thrown if there was a problem parsing the file content
    • createFromRawSchema

      public static ApplicationBuilder createFromRawSchema(Schema rawSchema, RankProfileRegistry rankProfileRegistry, com.yahoo.search.query.profile.QueryProfileRegistry queryProfileRegistry)
      Convenience factory method to import and build a Schema object from a raw object.
      Parameters:
      rawSchema - the raw object to build from
      Returns:
      the built ApplicationBuilder object
      See Also:
    • buildFromRawSchema

      public static Schema buildFromRawSchema(Schema rawSchema, RankProfileRegistry rankProfileRegistry, com.yahoo.search.query.profile.QueryProfileRegistry queryProfileRegistry)
      Convenience factory method to import and build a Schema object from a raw object.
      Parameters:
      rawSchema - the raw object to build from
      Returns:
      the built Schema object
      See Also:
    • getRankProfileRegistry

      public RankProfileRegistry getRankProfileRegistry()
    • getQueryProfileRegistry

      public com.yahoo.search.query.profile.QueryProfileRegistry getQueryProfileRegistry()
    • getProperties

      public com.yahoo.config.model.api.ModelContext.Properties getProperties()
    • getDeployLogger

      public com.yahoo.config.application.api.DeployLogger getDeployLogger()