##### Coverage Report - org.apache.any23.extractor.microdata.ItemProp

Classes in this File | Line Coverage | Branch Coverage | Complexity
ItemProp |
0% | 0/23
0% | 0/16
| 2.857142857142857;2.857

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.microdata;
19 |  |
20 |  |
     /**
21 |  |
      * Describes a <b>Microdata item property</b>.
22 |  |
      *
23 |  |
      * @author Michele Mostarda (mostarda@fbk.eu)
24 |  |
      */
25 |  |
     public class ItemProp extends Item {
26 |  |
27 |  |
         /**
28 |  |
          * Property name.
29 |  |
          */
30 |  |
         private final String name;
31 |  |
32 |  |
         /**
33 |  |
          * Property value.
34 |  |
          */
35 |  |
         private final ItemPropValue value;
36 |  |
37 |  |
         /**
38 |  |
          * Constructor.
39 |  |
          *
40 |  |
          * @param xpath item location in container document.
41 |  |
          * @param name item property name.
42 |  |
          * @param value item property value.
43 |  |
          */
44 |  |
         public ItemProp(String xpath, String name, ItemPropValue value) {
45 | 0 |
             super(xpath);
46 |  |
47 | 0 |
             if(name == null) {
48 | 0 |
                 throw new NullPointerException("name cannot be null.");
49 |  |
             }
50 | 0 |
             if(name.trim().length() == 0) {
51 | 0 |
                 throw new IllegalArgumentException("invalid property name '" + name + "'");
52 |  |
             }
53 | 0 |
             if(value == null) {
54 | 0 |
                 throw new NullPointerException("value cannot be null.");
55 |  |
             }
56 | 0 |
             this.name = name;
57 | 0 |
             this.value = value;
58 | 0 |
         }
59 |  |
60 |  |
         /**
61 |  |
          * @return the item property name.
62 |  |
          */
63 |  |
         public String getName() {
64 | 0 |
             return name;
65 |  |
         }
66 |  |
67 |  |
         /**
68 |  |
          * @return the item property value.
69 |  |
          */
70 |  |
         public ItemPropValue getValue() {
71 | 0 |
             return value;
72 |  |
         }
73 |  |
74 |  |
         @Override
75 |  |
         public String toJSON() {
76 | 0 |
             return String.format(
77 |  |
                     "{ \"xpath\" : \"%s\", \"name\" : \"%s\", \"value\" : %s }",
78 |  |
                     getXpath(),
79 |  |
                     name,
80 |  |
                     value.toJSON()
81 |  |
             );
82 |  |
         }
83 |  |
84 |  |
         @Override
85 |  |
         public String toString() {
86 | 0 |
             return toJSON();
87 |  |
         }
88 |  |
89 |  |
         @Override
90 |  |
         public int hashCode() {
91 | 0 |
             return name.hashCode() * value.hashCode() * 3;
92 |  |
         }
93 |  |
94 |  |
         @Override
95 |  |
         public boolean equals(Object obj) {
96 | 0 |
             if( obj == null ) {
97 | 0 |
                 return false;
98 |  |
             }
99 | 0 |
             if(obj == this) {
100 | 0 |
                 return true;
101 |  |
             }
102 | 0 |
             if(obj instanceof ItemProp) {
103 | 0 |
                 final ItemProp other = (ItemProp) obj;
104 | 0 |
                 return name.equals(other.name) && value.equals( other.value );
105 |  |
             }
106 | 0 |
             return false;
107 |  |
         }
108 |  |
     }