root/SPARQLBuilderWWW/src/java/org/biohackathon/SPARQLBuilder/OWL/ClassLink.java @ 218

リビジョン 214, 9.2 KB (コミッタ: atsuko, 10 年 前)

SPARQL生成APIのJSON形式を変更

  • 属性 svn:mime-type の設定値 text/plain
行番号 
1package org.biohackathon.SPARQLBuilder.OWL;
2
3import org.json.JSONException;
4import org.json.JSONObject;
5
6/**
7 * 繧ッ繝ゥ繧ケ縺ク縲√≠繧九>縺ッ繧ッ繝ゥ繧ケ縺九i縺ョ1繧ケ繝�ャ繝励Μ繝ウ繧ッ繧定ィ倩ソー縺吶k
8 * @author Norio KOBAYASHI
9 * @since 28.01.2014
10 * @version 29.01.2014
11 */
12public class ClassLink {
13
14        private String propertyURI = null;
15        private String linkedClassURI = null;
16        private String linkedLiteralDatatypeURI = null;
17        private Direction direction = null;
18        private int numOfLinks = 0;
19        private int numOfLinkedInstances = 0;
20        private int numOfOriginInstances = 0;
21        private int numOfOriginClassInstances = 0;
22        private int numOfLinkedClassInstances = 0;
23        private boolean domainClassLimitedQ = false;
24        private boolean rangeClassLimitedQ = false;
25       
26       
27        /**
28         * 繝励Ο繝代ユ繧」URI縲√Μ繝ウ繧ッ蜈茨シ亥��峨け繝ゥ繧ケ縲√Μ繝ウ繧ッ縺ョ蜷代″繧剃ク弱∴繧区ァ区�蟄�
29         *
30         * @param propertyURI縲€繝励Ο繝代ユ繧」縺ョURI
31         * @param linkedClassURI縲€繝ェ繝ウ繧ッ縺ョ荳サ隱槭€√€√≠繧九>縺ッ繝ェ繝ウ繧ッ縺ョ逶ョ逧�ェ槭→縺ェ縺」縺ヲ縺�k繧ッ繝ゥ繧ケ縺ョURI
32         * @param direction 繝励Ο繝代ユ繧」縺ョ蜷代″縲〕inkedClassURI縺ョ繧ッ繝ゥ繧ケ縺後Μ繝ウ繧ッ蜈医↓縺ェ縺」縺ヲ縺�k縺ィ縺阪�Direction.forward,繝ェ繝ウ繧ッ蜈�↓縺ェ縺」縺ヲ縺�k縺ィ縺阪�Direction.reverse, 縺昴l繧我ク。譁ケ縺ョ譎ゅ�Direction.both繧呈欠螳壹☆繧�
33         * @param numOfLinks 蠖楢ゥイ繝励Ο繝代ユ繧」縺ァ荳。遶ッ繧ッ繝ゥ繧ケ縺ョ繧、繝ウ繧ケ繧ソ繝ウ繧ケ蜷悟」ォ繧偵▽縺ェ縺�〒縺�k繝ェ繝ウ繧ッ謨ー�医ヨ繝ェ繝励Ν謨ー��
34         * @throws Exception
35         * @since 28.01.2014
36         */
37        public ClassLink(String propertyURI, String linkedClassURI, String linkedLiteralDatatypeURI, Direction direction,
38                                int numLinks, int numOfOriginInstances, int numOfLinkedInstances,
39                                int numOfOriginClassInstances, int numofLinkedClassInstances,
40                                boolean domainClassLimitedQ, boolean rangeClassLimitedQ){
41                this.propertyURI = propertyURI;
42                this.linkedClassURI = linkedClassURI;
43                this.linkedLiteralDatatypeURI = linkedLiteralDatatypeURI;
44                this.direction = direction;
45                this.numOfLinks = numLinks;
46                this.numOfLinkedInstances = numOfLinkedInstances;
47                this.numOfOriginInstances = numOfOriginInstances;
48                this.numOfOriginClassInstances = numOfOriginClassInstances;
49                this.numOfLinkedClassInstances = numofLinkedClassInstances;
50                this.domainClassLimitedQ = domainClassLimitedQ;
51                this.rangeClassLimitedQ = rangeClassLimitedQ;
52        }
53       
54       
55        public JSONObject toJSON() throws JSONException{
56                JSONObject obj = new JSONObject();
57                if( propertyURI != null ) {
58                        obj.put("propertyURI", propertyURI);
59                }
60                if( linkedClassURI != null ){
61                        obj.put("linkedClassURI", linkedClassURI);
62                }
63                if( linkedLiteralDatatypeURI != null ){
64                        obj.put("linkedLiteralDatatypeURI", linkedLiteralDatatypeURI);
65                }
66                if( direction != null ){
67                        obj.put("direction", direction);
68                }
69                //obj.put("numOfLinks", numOfLinks);
70                //obj.put("numOfLinkedInstances", numOfLinkedInstances);
71                //obj.put("numOfOriginInstances", numOfOriginInstances);
72                //obj.put("numOfOriginClassInstances", numOfOriginClassInstances);
73                //obj.put("numOfLinkedClassInstances", numOfLinkedClassInstances);
74                return obj;
75        }
76        // add direction and other variations   
77        public String toJSONString2() {
78                String json_str ="{";
79               
80                if( propertyURI != null ) {
81                        json_str+="\"propertyURI\":"+"\""+propertyURI+"\",";
82                }
83                else{
84                        json_str+="\"propertyURI\":"+"\"propertyURI\",";                       
85                }
86                if( linkedClassURI != null ){
87                        json_str+="\"linkedClassURI\":"+"\""+linkedClassURI+"\",";
88                }
89                else{
90                        json_str+="\"linkedClassURI\":"+"\"linkedClassURI\",";                 
91                }
92                if( linkedLiteralDatatypeURI != null ){
93                        json_str+="\"linkedLiteralDatatypeURI\":"+"\""+linkedLiteralDatatypeURI+"\",";
94                }
95                else{
96                        json_str+="\"linkedLiteralDatatypeURI\":"+"\"linkedLiteralDatatypeURI\",";                     
97                }
98               if( direction != null ){
99                        json_str+="\"direction\":"+"\""+direction.toString()+"\"";
100                }
101                else{
102                        json_str+="\"direction\":"+"\"direction\"";                     
103                }
104               
105        //      json_str+="\"numOfLinks\":"+"\""+numOfLinks+"\",";
106        //      json_str+="\"numOfLinkedInstances\":"+"\""+numOfLinkedInstances+"\",";
107        //      json_str+="\"numOfOriginInstances\":"+"\""+numOfOriginInstances+"\",";
108        //      json_str+="\"numOfOriginClassInstances\":"+"\""+numOfOriginClassInstances+"\",";
109        //      json_str+="\"numOfLinkedClassInstances\":"+"\""+numOfLinkedClassInstances+"\"";
110               
111                json_str+="}";
112
113                return json_str;
114        }
115
116        public String toJSONString3(SClass[] classes) {
117                String json_str ="{";
118               
119                if( propertyURI != null ) {
120                        //json_str+="\"propertyURI\":"+"\""+propertyURI+"\",";
121                    json_str+="\"predicate\":"+"\""+propertyURI+"\",";
122                }
123                else{
124                        json_str+="\"predicate\":"+"\"propertyURI\",";                 
125                }
126                if( linkedClassURI != null ){
127                        //json_str+="\"linkedClassURI\":"+"\""+linkedClassURI+"\",";
128                    json_str+="\"linkedClass\":"+"\""+linkedClassURI+"\",";
129                }
130                else{
131                        //json_str+="\"linkedClassURI\":"+"\"linkedClassURI\",";       
132                    json_str+="\"linkedClass\":"+"\""+linkedClassURI+"\",";
133                }
134                if( linkedLiteralDatatypeURI != null ){
135                        json_str+="\"linkedLiteralDatatypeURI\":"+"\""+linkedLiteralDatatypeURI+"\",";
136                }
137                else{
138                        json_str+="\"linkedLiteralDatatypeURI\":"+"\"linkedLiteralDatatypeURI\",";                     
139                }
140                if( direction != null ){
141                        json_str+="\"direction\":"+"\""+direction.toString()+"\",";
142                }
143                else{
144                        json_str+="\"direction\":"+"\"direction\",";                   
145                }
146                //if ( linkedClassURI != null ){
147                    String label = getLinkedClassLabel(classes);
148                    //json_str+="\"nodeLabel\":"+"\""+label+"\"";
149                    json_str+="\"label\":"+"\""+label+"\"";
150                //}
151        //      json_str+="\"numOfLinks\":"+"\""+numOfLinks+"\",";
152        //      json_str+="\"numOfLinkedInstances\":"+"\""+numOfLinkedInstances+"\",";
153        //      json_str+="\"numOfOriginInstances\":"+"\""+numOfOriginInstances+"\",";
154        //      json_str+="\"numOfOriginClassInstances\":"+"\""+numOfOriginClassInstances+"\",";
155        //      json_str+="\"numOfLinkedClassInstances\":"+"\""+numOfLinkedClassInstances+"\"";
156               
157                json_str+="}";
158
159                return json_str;
160        }
161       
162        public int getNumOfLinks() {
163                return numOfLinks;
164        }
165
166
167
168
169        public void setNumOfLinks(int numOfLinks) {
170                this.numOfLinks = numOfLinks;
171        }
172
173
174
175
176        /**
177         * 譁�ュ怜�陦ィ險倥r蜿門セ励☆繧�
178         *
179         * @since 28.01.2014
180         */
181        public String toString(){
182                StringBuffer sb = new StringBuffer();
183                sb.append(propertyURI);
184                if( direction == Direction.forward ){
185                        sb.append(" --> ");
186                }else{
187                        if( direction == Direction.reverse ){
188                        sb.append(" <-- ");
189                        }else{
190                                sb.append(" <-> ");
191                        }
192                }
193                sb.append(linkedClassURI);
194                sb.append(" [");
195                sb.append(numOfOriginClassInstances);
196                sb.append("/");
197                sb.append(numOfOriginInstances);
198                sb.append("]縲€---");
199
200               
201                sb.append(" [");
202                sb.append(numOfLinks);
203                sb.append("] --->");
204
205                sb.append(" [");
206                sb.append(numOfLinkedClassInstances);
207                sb.append("/");
208                sb.append(numOfLinkedInstances);
209                sb.append("]");
210                return sb.toString();
211        }
212       
213        public String getPropertyURI() {
214                return propertyURI;
215        }
216        public void setPropertyURI(String propertyURI) {
217                this.propertyURI = propertyURI;
218        }
219        public String getLinkedClassURI() {
220                return linkedClassURI;
221        }
222        public void setLinkedClassURI(String linkedClassURI) {
223                this.linkedClassURI = linkedClassURI;
224        }
225        public Direction getDirection() {
226                return direction;
227        }
228        public void setDirection(Direction direction) {
229                this.direction = direction;
230        }
231
232        public final int getNumOfLinkedInstances() {
233                return numOfLinkedInstances;
234        }
235
236        public final void setNumOfLinkedInstances(int numOfLinkedInstances) {
237                this.numOfLinkedInstances = numOfLinkedInstances;
238        }
239
240
241       
242       
243        public final boolean isDomainClassLimitedQ() {
244                return domainClassLimitedQ;
245        }
246
247
248        public final boolean isRangeClassLimitedQ() {
249                return rangeClassLimitedQ;
250        }
251
252
253        public final int getNumOfOriginInstances() {
254                return numOfOriginInstances;
255        }
256
257
258        public final void setNumOfOriginInstances(int numOfOriginInstances) {
259                this.numOfOriginInstances = numOfOriginInstances;
260        }
261
262
263        public final int getNumOfOriginClassInstances() {
264                return numOfOriginClassInstances;
265        }
266
267
268        public final void setNumOfOriginClassInstances(int numOfOriginClassInstances) {
269                this.numOfOriginClassInstances = numOfOriginClassInstances;
270        }
271
272
273        public final int getNumOfLinkedClassInstances() {
274                return numOfLinkedClassInstances;
275        }
276
277
278        public final void setNumOfLinkedClassInstances(int numOfLinkedClassInstances) {
279                this.numOfLinkedClassInstances = numOfLinkedClassInstances;
280        }
281
282
283        public final String getLinkedLiteralDatatypeURI() {
284                return linkedLiteralDatatypeURI;
285        }
286
287
288        public final void setLinkedLiteralDatatypeURI(String linkedLiteralDatatypeURI) {
289                this.linkedLiteralDatatypeURI = linkedLiteralDatatypeURI;
290        }
291
292
293        public final void setDomainClassLimitedQ(boolean domainClassLimitedQ) {
294                this.domainClassLimitedQ = domainClassLimitedQ;
295        }
296
297
298        public final void setRangeClassLimitedQ(boolean rangeClassLimitedQ) {
299                this.rangeClassLimitedQ = rangeClassLimitedQ;
300        }
301               
302        private String getLinkedClassLabel(SClass[] classes){
303            return QueryPathGenerator.getClassLabelfromList(linkedClassURI, classes);
304        }
305       
306        // private String[] propertyDomainClassURIs = null;
307        // private String[] propertyRangeClassURIs = null;
308       
309       
310       
311}
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。