| /* $Id$ |
| * |
| * Copyright 2001-2004 The Apache Software Foundation. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| |
| package org.apache.tomcat.util.digester; |
| |
| |
| import java.util.List; |
| |
| |
| /** |
| * Public interface defining a collection of Rule instances (and corresponding |
| * matching patterns) plus an implementation of a matching policy that selects |
| * the rules that match a particular pattern of nested elements discovered |
| * during parsing. |
| */ |
| |
| public interface Rules { |
| |
| |
| // ------------------------------------------------------------- Properties |
| |
| |
| /** |
| * Return the Digester instance with which this Rules instance is |
| * associated. |
| */ |
| public Digester getDigester(); |
| |
| |
| /** |
| * Set the Digester instance with which this Rules instance is associated. |
| * |
| * @param digester The newly associated Digester instance |
| */ |
| public void setDigester(Digester digester); |
| |
| |
| /** |
| * Return the namespace URI that will be applied to all subsequently |
| * added <code>Rule</code> objects. |
| */ |
| public String getNamespaceURI(); |
| |
| |
| /** |
| * Set the namespace URI that will be applied to all subsequently |
| * added <code>Rule</code> objects. |
| * |
| * @param namespaceURI Namespace URI that must match on all |
| * subsequently added rules, or <code>null</code> for matching |
| * regardless of the current namespace URI |
| */ |
| public void setNamespaceURI(String namespaceURI); |
| |
| |
| // --------------------------------------------------------- Public Methods |
| |
| |
| /** |
| * Register a new Rule instance matching the specified pattern. |
| * |
| * @param pattern Nesting pattern to be matched for this Rule |
| * @param rule Rule instance to be registered |
| */ |
| public void add(String pattern, Rule rule); |
| |
| |
| /** |
| * Clear all existing Rule instance registrations. |
| */ |
| public void clear(); |
| |
| |
| /** |
| * Return a List of all registered Rule instances that match the specified |
| * nesting pattern, or a zero-length List if there are no matches. If more |
| * than one Rule instance matches, they <strong>must</strong> be returned |
| * in the order originally registered through the <code>add()</code> |
| * method. |
| * |
| * @param pattern Nesting pattern to be matched |
| * |
| * @deprecated Call match(namespaceURI,pattern) instead. |
| */ |
| public List match(String pattern); |
| |
| |
| /** |
| * Return a List of all registered Rule instances that match the specified |
| * nesting pattern, or a zero-length List if there are no matches. If more |
| * than one Rule instance matches, they <strong>must</strong> be returned |
| * in the order originally registered through the <code>add()</code> |
| * method. |
| * |
| * @param namespaceURI Namespace URI for which to select matching rules, |
| * or <code>null</code> to match regardless of namespace URI |
| * @param pattern Nesting pattern to be matched |
| */ |
| public List match(String namespaceURI, String pattern); |
| |
| |
| /** |
| * Return a List of all registered Rule instances, or a zero-length List |
| * if there are no registered Rule instances. If more than one Rule |
| * instance has been registered, they <strong>must</strong> be returned |
| * in the order originally registered through the <code>add()</code> |
| * method. |
| */ |
| public List rules(); |
| |
| |
| } |