1 /* 2 * #%L 3 * SUMARiS 4 * %% 5 * Copyright (C) 2019 SUMARiS Consortium 6 * %% 7 * This program is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as 9 * published by the Free Software Foundation, either version 3 of the 10 * License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public 18 * License along with this program. If not, see 19 * <http://www.gnu.org/licenses/gpl-3.0.html>. 20 * #L% 21 */ 22 23 package net.sumaris.rdf.service; 24 25 import net.sumaris.rdf.dao.cache.RdfCacheNames; 26 import org.apache.jena.ontology.OntModel; 27 import org.apache.jena.rdf.model.Model; 28 import org.springframework.cache.annotation.Cacheable; 29 import org.springframework.transaction.annotation.Transactional; 30 31 import javax.annotation.Nullable; 32 33 @Transactional(readOnly = true) 34 public interface RdfExportService { 35 36 OntModel createOntModel(String uri); 37 38 @Cacheable(cacheNames = RdfCacheNames.ONTOLOGY_BY_NAME, key="#domain + #options.hashCode()", condition = " #options != null", unless = "#result == null") 39 OntModel getOntModelWithClasses(String domain, @Nullable RdfExportOptions options); 40 41 //@Cacheable(cacheNames = RdfCacheNames.ONTOLOGY_BY_NAME, key="#modelSuffix + #options.hashCode()", unless = "#result == null || #options == null") 42 //OntModel getOntologyByDomainAndClass(String modelSuffix, String className, @Nullable RdfModelExportOptions options); 43 44 Model getOntModelWithInstances(String domain, RdfExportOptions options); 45 }