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.xpath;
    19
    20  /**
    21   * Defines an {@link XPathExtractionRule} able to expand a {@link QuadTemplate} set based on a given template.
    22   *
    23   * @author Michele Mostarda (mostarda@fbk.eu)
    24   */
    25  public interface TemplateXPathExtractionRule extends XPathExtractionRule {
    26
    27      /**
    28       * @return human readable description for this rule.
    29       */
    30      public String getName();
    31
    32      /**
    33       * Adds a variable to the template.
    34       *
    35       * @param variable
    36       *            variable to be added.
    37       */
    38      public void add(Variable variable);
    39
    40      /**
    41       * Removes a variable from the template.
    42       *
    43       * @param variable
    44       *            variable to be removed.
    45       *
    46       * @return <i>true</i> if the <code>variable</code> argument was found.
    47       */
    48      public boolean remove(Variable variable);
    49
    50      /**
    51       * Adds a {@link QuadTemplate} to the rule.
    52       *
    53       * @param template
    54       *            template instance to be added.
    55       */
    56      public void add(QuadTemplate template);
    57
    58      /**
    59       * Removes a quad template from the rule.
    60       *
    61       * @param template
    62       *            template to be removed.
    63       *
    64       * @return <code>true</code> if the <code>template</code> argument was found.
    65       */
    66      public boolean remove(QuadTemplate template);
    67
    68  }