summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ImportedModels.java
blob: 72eac2282f446022aa482d67ffa9bc7064bcde9e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.yahoo.searchdefinition.expressiontransforms;

import com.yahoo.searchlib.rankingexpression.integration.ml.ImportedModel;
import com.yahoo.searchlib.rankingexpression.integration.ml.ModelImporter;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

/**
 * Lazily loaded models imported from the models/ directory in the application package
 *
 * @author bratseth
 */
class ImportedModels {

    private final ModelImporter modelImporter;

    /** The cache of already imported models */
    private final Map<String, ImportedModel> importedModels = new HashMap<>();

    ImportedModels(ModelImporter modelImporter) {
        this.modelImporter = modelImporter;
    }

    /**
     * Returns the model at the given location in the application package (lazily loaded),
     *
     * @throws IllegalArgumentException if the model cannot be loaded
     */
    public ImportedModel imported(String modelName, File modelDir) {
        return modelImporter.importModel(modelName, modelDir);
        // return importedModels.computeIfAbsent(modelName, __ -> modelImporter.importModel(modelName, modelDir)); // TODO
    }

}