View Javadoc
1   /*
2    * Copyright 2018-2022 Medical Information Systems Research Group (https://medical.zcu.cz),
3    * Department of Computer Science and Engineering, University of West Bohemia.
4    * Address: Univerzitni 8, 306 14 Plzen, Czech Republic.
5    *
6    * Author Petr Vcelak (vcelak@kiv.zcu.cz).
7    *
8    * This file is part of MRECore project.
9    *
10   * MRECore is free software: you can redistribute it and/or modify
11   * it under the terms of the GNU General Public License as published by
12   * the Free Software Foundation, either version 3 of the License.
13   *
14   * MRECore is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17   * GNU General Public License for more details.
18   *
19   * You should have received a copy of the GNU General Public License
20   * along with MRECore. If not, see <http://www.gnu.org/licenses/>.
21   */
22  package cz.zcu.mre.service.data;
23  
24  import cz.zcu.mre.data.core.MREData;
25  import org.apache.jena.rdf.model.Resource;
26  
27  /**
28   *
29   * String SPARQL Builder Interface for MREData or/and Java Beans.
30   *
31   * @author Petr Vcelak (vcelak@kiv.zcu.cz)
32   */
33  public interface SPARQLBuilderString extends SPARQLBuilderVariables {
34  
35      String ask(Object instance);
36  
37      String ask(String queryTriples);
38  
39      /**
40       * Build ASK query for test if the instance is persistent/exist.
41       *
42       * @param instance MREData instance.
43       * @return String with ASK query with only one triple (instance URI,
44       * rdf:type property and class URI for object).
45       */
46      String askExist(MREData instance);
47  
48      String delete(Object instance);
49  
50      String deleteAll(Object instance);
51  
52      String getGraph();
53  
54      String insert(Object instance);
55  
56      String insertAll(Object instance);
57  
58      /**
59       * Generate SELECT for list of instances that is based on the instance
60       * (type) and its attributes.
61       *
62       * This can work as query for "select all instances" and "select instance(s)
63       * with value of one/more attributes".
64       *
65       * @param instance Instance that defines member attributes and rdf:type.
66       * @return Generated SELECT query.
67       */
68      String select(Object instance);
69  
70      String selectType(String resourceURI);
71  
72      String selectType(Resource resource);
73  
74      void setGraph(String graph);
75  
76      String update(Object instanceOld, Object instanceNew);
77  
78      String updateAll(Object instanceOld, Object instanceNew);
79  
80  }