Class 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
    • Constructor Detail

      • 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​(RankProfileRegistry rankProfileRegistry,
                                  com.yahoo.search.query.profile.QueryProfileRegistry queryProfileRegistry,
                                  com.yahoo.config.model.api.ModelContext.Properties properties)
      • 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)
    • Method Detail

      • addSchemaFile

        public Schema addSchemaFile​(String fileName)
                             throws IOException,
                                    ParseException
        Adds a schema to this application.
        Parameters:
        fileName - the name of the file to import
        Returns:
        the name of the imported object
        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
      • 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.
      • 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.
      • getSchemaList

        public List<Schema> getSchemaList()
        Convenience method to return a list of all built Schema objects.
        Returns:
        the list of built searches
      • 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:
        add(Schema)
      • 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:
        add(Schema)
      • 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()