1 /*
2 * Copyright 2001-2004 (C) MetaStuff, Ltd. All Rights Reserved.
3 *
4 * This software is open source.
5 * See the bottom of this file for the licence.
6 *
7 * $Id: DefaultPattern.java,v 1.4 2004/06/25 08:03:39 maartenc Exp $
8 */
9
10 package org.dom4j.rule.pattern;
11
12 import org.dom4j.Node;
13 import org.dom4j.NodeFilter;
14 import org.dom4j.rule.Pattern;
15
16
17 /*** <p><code>DefaultPattern</code> a default implementation of Pattern
18 * which can take any XPath implementation or NodeFilter for defining the pattern.
19 * <b>WARNING</b> this implementation causes a worst case, brute force XSLT
20 * rule evaluation to be performed.
21 * Wherever possible the methods
22 * {@link #getPriority},
23 * {@link #getMatchType} and
24 * {@link #getMatchesNodeName}
25 * should be overloaded to allow more rule filtering to occur.</p>
26 *
27 * @author <a href="mailto:james.strachan@metastuff.com">James Strachan</a>
28 * @version $Revision: 1.4 $
29 */
30 public class DefaultPattern implements Pattern {
31
32 private NodeFilter filter;
33
34
35 public DefaultPattern(NodeFilter filter) {
36 this.filter = filter;
37 }
38
39 public boolean matches( Node node ) {
40 return filter.matches( node );
41 }
42
43 public double getPriority() {
44 return Pattern.DEFAULT_PRIORITY;
45 }
46
47 public Pattern[] getUnionPatterns() {
48 return null;
49 }
50
51 public short getMatchType() {
52 return ANY_NODE;
53 }
54
55 public String getMatchesNodeName() {
56 return null;
57 }
58
59 }
60
61
62
63
64 /*
65 * Redistribution and use of this software and associated documentation
66 * ("Software"), with or without modification, are permitted provided
67 * that the following conditions are met:
68 *
69 * 1. Redistributions of source code must retain copyright
70 * statements and notices. Redistributions must also contain a
71 * copy of this document.
72 *
73 * 2. Redistributions in binary form must reproduce the
74 * above copyright notice, this list of conditions and the
75 * following disclaimer in the documentation and/or other
76 * materials provided with the distribution.
77 *
78 * 3. The name "DOM4J" must not be used to endorse or promote
79 * products derived from this Software without prior written
80 * permission of MetaStuff, Ltd. For written permission,
81 * please contact dom4j-info@metastuff.com.
82 *
83 * 4. Products derived from this Software may not be called "DOM4J"
84 * nor may "DOM4J" appear in their names without prior written
85 * permission of MetaStuff, Ltd. DOM4J is a registered
86 * trademark of MetaStuff, Ltd.
87 *
88 * 5. Due credit should be given to the DOM4J Project -
89 * http://www.dom4j.org
90 *
91 * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS
92 * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
93 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
94 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
95 * METASTUFF, LTD. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
96 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
97 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
98 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
99 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
100 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
101 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
102 * OF THE POSSIBILITY OF SUCH DAMAGE.
103 *
104 * Copyright 2001-2004 (C) MetaStuff, Ltd. All Rights Reserved.
105 *
106 * $Id: DefaultPattern.java,v 1.4 2004/06/25 08:03:39 maartenc Exp $
107 */