View Javadoc

    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   * Base class for <b>Microdata</b> items.
    22   *
    23   * @author Michele Mostarda (mostarda@fbk.eu)
    24   */
    25  public abstract class Item {
    26
    27      /**
    28       * Xpath item location in container document.
    29       */
    30      private final String xpath;
    31
    32      /**
    33       * Constructor.
    34       *
    35       * @param xpath
    36       *            xpath to this item in container document.
    37       */
    38      public Item(String xpath) {
    39          if (xpath == null) {
    40              throw new NullPointerException("xpath cannot be null.");
    41          }
    42          this.xpath = xpath;
    43      }
    44
    45      /**
    46       * @return the <b>JSON</b> representation for this item.
    47       */
    48      public abstract String toJSON();
    49
    50      /**
    51       * @return the item location in container document.
    52       */
    53      public String getXpath() {
    54          return xpath;
    55      }
    56
    57      @Override
    58      public int hashCode() {
    59          return xpath.hashCode();
    60      }
    61
    62      @Override
    63      public boolean equals(Object obj) {
    64          if (obj == null) {
    65              return false;
    66          }
    67          if (obj == this) {
    68              return true;
    69          }
    70          if (obj instanceof Item) {
    71              final Item other = (Item) obj;
    72              return xpath.equals(other.xpath);
    73          }
    74          return false;
    75      }
    76  }