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 }