/**
* Copyright (c) 2015 Lemur Consulting Ltd.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package uk.co.flax.biosolr.elasticsearch.mapper.ontology;
import org.apache.lucene.util.NamedThreadFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import uk.co.flax.biosolr.ontology.core.OntologyHelper;
import uk.co.flax.biosolr.ontology.core.OntologyHelperBuilder;
import uk.co.flax.biosolr.ontology.core.OntologyHelperException;
import java.util.List;
/**
* Factory class to build an appropriate OntologyHelper for
* ElasticSearch.
* <p>
* Created by mlp on 10/12/15.
*
* @author mlp
*/
public class ElasticOntologyHelperFactory {
private static final Logger LOGGER = LoggerFactory.getLogger(ElasticOntologyHelperFactory.class);
private final OntologySettings settings;
public ElasticOntologyHelperFactory(OntologySettings settings) {
this.settings = settings;
}
public OntologyHelper buildOntologyHelper() throws OntologyHelperException {
return new OntologyHelperBuilder()
.ontologyUri(settings.getOntologyUri())
.labelPropertyUris(convertListToArray(settings.getLabelPropertyUris()))
.synonymPropertyUris(convertListToArray(settings.getSynonymPropertyUris()))
.definitionPropertyUris(convertListToArray(settings.getDefinitionPropertyUris()))
.olsBaseUrl(settings.getOlsBaseUrl())
.ontology(settings.getOlsOntology())
.threadpoolSize(settings.getThreadpoolSize())
.pageSize(settings.getPageSize())
.threadFactory(new NamedThreadFactory("olsOntologyHelper"))
.build();
}
private static String[] convertListToArray(List<String> list) {
if (list == null) {
return null;
}
return list.toArray(new String[list.size()]);
}
}