##### Coverage Report - org.apache.any23.extractor.xpath.TemplateObject

Classes in this File | Line Coverage | Branch Coverage | Complexity
TemplateObject |
0% | 0/18
0% | 0/10
| 7.0;7
TemplateObject$1 |
0% | 0/1
N/A | N/A
| 7.0;7
TemplateObject$Type |
0% | 0/4
N/A | N/A
| 7.0;7

1 |  |
     /*
2 |  |
      * Licensed to the Apache Software Foundation (ASF) under one or more
3 |  |
      * contributor license agreements.  See the NOTICE file distributed with
4 |  |
      * this work for additional information regarding copyright ownership.
5 |  |
      * The ASF licenses this file to You under the Apache License, Version 2.0
6 |  |
      * (the "License"); you may not use this file except in compliance with
7 |  |
      * the License.  You may obtain a copy of the License at
8 |  |
      *
9 |  |
      *  http://www.apache.org/licenses/LICENSE-2.0
10 |  |
      *
11 |  |
      * Unless required by applicable law or agreed to in writing, software
12 |  |
      * distributed under the License is distributed on an "AS IS" BASIS,
13 |  |
      * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  |
      * See the License for the specific language governing permissions and
15 |  |
      * limitations under the License.
16 |  |
      */
17 |  |
18 |  |
     package org.apache.any23.extractor.xpath;
19 |  |
20 |  |
     import org.openrdf.model.Value;
21 |  |
     import org.openrdf.model.impl.BNodeImpl;
22 |  |
     import org.openrdf.model.impl.LiteralImpl;
23 |  |
     import org.openrdf.model.impl.ValueFactoryImpl;
24 |  |
25 |  |
     /**
26 |  |
      * Represents a <i>Quad</i> object <i>template</i>.
27 |  |
      *
28 |  |
      * @author Michele Mostarda (mostarda@fbk.eu)
29 |  |
      */
30 |  |
     public class TemplateObject extends Term {
31 |  |
32 |  |
         /**
33 |  |
          * Supported object types.
34 |  |
          */
35 | 0 |
         public enum Type {
36 | 0 |
             uri,
37 | 0 |
             bnode,
38 | 0 |
             literal
39 |  |
         }
40 |  |
41 |  |
         /**
42 |  |
          * Current template type.
43 |  |
          */
44 |  |
         private final Type type;
45 |  |
46 |  |
         /**
47 |  |
          * Constructor.
48 |  |
          *
49 |  |
          * @param type object template type.
50 |  |
          * @param value internal value.
51 |  |
          * @param isVar if <code>true</code> it the given <code>value</code>
52 |  |
          *              will be resolved with the variable value.
53 |  |
          */
54 |  |
         public TemplateObject(Type type, String value, boolean isVar) {
55 | 0 |
             super(value, isVar);
56 | 0 |
             if (type == null) {
57 | 0 |
                 throw new NullPointerException("object type cannot be null.");
58 |  |
             }
59 | 0 |
             this.type = type;
60 | 0 |
         }
61 |  |
62 |  |
         @Override
63 |  |
         protected Value getValueInternal(String value) {
64 | 0 |
             switch (type) {
65 |  |
                 case uri:
66 |  |
                     try {
67 | 0 |
                         return ValueFactoryImpl.getInstance().createURI(value);
68 | 0 |
                     } catch (IllegalArgumentException iae) {
69 | 0 |
                         throw new IllegalArgumentException(
70 |  |
                                 String.format("Expected a valid URI for object template, found '%s'", value),
71 |  |
                                 iae
72 |  |
                         );
73 |  |
                     }
74 |  |
                 case bnode:
75 | 0 |
                     return new BNodeImpl(value);
76 |  |
                 case literal:
77 | 0 |
                     return new LiteralImpl(value);
78 |  |
                 default:
79 | 0 |
                     throw new IllegalStateException();
80 |  |
             }
81 |  |
         }
82 |  |
83 |  |
         @Override
84 |  |
         public String toString() {
85 | 0 |
             final String superStr = super.toString();
86 | 0 |
             switch (type) {
87 |  |
                 case uri:
88 | 0 |
                     return "<" + superStr + ">";
89 |  |
                 case bnode:
90 | 0 |
                     return "_:" + superStr;
91 |  |
                 case literal:
92 | 0 |
                     return "'" + superStr + "'";
93 |  |
                 default:
94 | 0 |
                     throw new IllegalStateException();
95 |  |
             }
96 |  |
         }
97 |  |
98 |  |
     }