Source Code Cross Referenced for AbstractRulesImpl.java in  » Library » Apache-commons-digester-1.8-src » org » apache » commons » digester » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Library » Apache commons digester 1.8 src » org.apache.commons.digester 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


001:        /* $Id: AbstractRulesImpl.java 471661 2006-11-06 08:09:25Z skitching $
002:         *
003:         * Licensed to the Apache Software Foundation (ASF) under one or more
004:         * contributor license agreements.  See the NOTICE file distributed with
005:         * this work for additional information regarding copyright ownership.
006:         * The ASF licenses this file to You under the Apache License, Version 2.0
007:         * (the "License"); you may not use this file except in compliance with
008:         * the License.  You may obtain a copy of the License at
009:         * 
010:         *      http://www.apache.org/licenses/LICENSE-2.0
011:         * 
012:         * Unless required by applicable law or agreed to in writing, software
013:         * distributed under the License is distributed on an "AS IS" BASIS,
014:         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015:         * See the License for the specific language governing permissions and
016:         * limitations under the License.
017:         */
018:
019:        package org.apache.commons.digester;
020:
021:        import java.util.List;
022:
023:        /**
024:         * <p><code>AbstractRuleImpl</code> provides basic services for <code>Rules</code> implementations.
025:         * Extending this class should make it easier to create a <code>Rules</code> implementation.</p>
026:         * 
027:         * <p><code>AbstractRuleImpl</code> manages the <code>Digester</code> 
028:         * and <code>namespaceUri</code> properties.
029:         * If the subclass overrides {@link #registerRule} (rather than {@link #add}),
030:         * then the <code>Digester</code> and <code>namespaceURI</code> of the <code>Rule</code>
031:         * will be set correctly before it is passed to <code>registerRule</code>.
032:         * The subclass can then perform whatever it needs to do to register the rule.</p>
033:         *
034:         * @since 1.5
035:         */
036:
037:        abstract public class AbstractRulesImpl implements  Rules {
038:
039:            // ------------------------------------------------------------- Fields
040:
041:            /** Digester using this <code>Rules</code> implementation */
042:            private Digester digester;
043:            /** Namespace uri to assoicate with subsequent <code>Rule</code>'s */
044:            private String namespaceURI;
045:
046:            // ------------------------------------------------------------- Properties
047:
048:            /**
049:             * Return the Digester instance with which this Rules instance is
050:             * associated.
051:             */
052:            public Digester getDigester() {
053:                return digester;
054:            }
055:
056:            /**
057:             * Set the Digester instance with which this Rules instance is associated.
058:             *
059:             * @param digester The newly associated Digester instance
060:             */
061:            public void setDigester(Digester digester) {
062:                this .digester = digester;
063:            }
064:
065:            /**
066:             * Return the namespace URI that will be applied to all subsequently
067:             * added <code>Rule</code> objects.
068:             */
069:            public String getNamespaceURI() {
070:                return namespaceURI;
071:            }
072:
073:            /**
074:             * Set the namespace URI that will be applied to all subsequently
075:             * added <code>Rule</code> objects.
076:             *
077:             * @param namespaceURI Namespace URI that must match on all
078:             *  subsequently added rules, or <code>null</code> for matching
079:             *  regardless of the current namespace URI
080:             */
081:            public void setNamespaceURI(String namespaceURI) {
082:                this .namespaceURI = namespaceURI;
083:            }
084:
085:            // --------------------------------------------------------- Public Methods
086:
087:            /**
088:             * Registers a new Rule instance matching the specified pattern.
089:             * This implementation sets the <code>Digester</code> and the
090:             * <code>namespaceURI</code> on the <code>Rule</code> before calling {@link #registerRule}.
091:             *
092:             * @param pattern Nesting pattern to be matched for this Rule
093:             * @param rule Rule instance to be registered
094:             */
095:            public void add(String pattern, Rule rule) {
096:                // set up rule
097:                if (this .digester != null) {
098:                    rule.setDigester(this .digester);
099:                }
100:
101:                if (this .namespaceURI != null) {
102:                    rule.setNamespaceURI(this .namespaceURI);
103:                }
104:
105:                registerRule(pattern, rule);
106:
107:            }
108:
109:            /** 
110:             * Register rule at given pattern.
111:             * The the Digester and namespaceURI properties of the given <code>Rule</code>
112:             * can be assumed to have been set properly before this method is called.
113:             *
114:             * @param pattern Nesting pattern to be matched for this Rule
115:             * @param rule Rule instance to be registered
116:             */
117:            abstract protected void registerRule(String pattern, Rule rule);
118:
119:            /**
120:             * Clear all existing Rule instance registrations.
121:             */
122:            abstract public void clear();
123:
124:            /**
125:             * Return a List of all registered Rule instances that match the specified
126:             * nesting pattern, or a zero-length List if there are no matches.  If more
127:             * than one Rule instance matches, they <strong>must</strong> be returned
128:             * in the order originally registered through the <code>add()</code>
129:             * method.
130:             *
131:             * @param pattern Nesting pattern to be matched
132:             *
133:             * @deprecated Call match(namespaceURI,pattern) instead.
134:             */
135:            public List match(String pattern) {
136:                return match(namespaceURI, pattern);
137:            }
138:
139:            /**
140:             * Return a List of all registered Rule instances that match the specified
141:             * nesting pattern, or a zero-length List if there are no matches.  If more
142:             * than one Rule instance matches, they <strong>must</strong> be returned
143:             * in the order originally registered through the <code>add()</code>
144:             * method.
145:             *
146:             * @param namespaceURI Namespace URI for which to select matching rules,
147:             *  or <code>null</code> to match regardless of namespace URI
148:             * @param pattern Nesting pattern to be matched
149:             */
150:            abstract public List match(String namespaceURI, String pattern);
151:
152:            /**
153:             * Return a List of all registered Rule instances, or a zero-length List
154:             * if there are no registered Rule instances.  If more than one Rule
155:             * instance has been registered, they <strong>must</strong> be returned
156:             * in the order originally registered through the <code>add()</code>
157:             * method.
158:             */
159:            abstract public List rules();
160:
161:        }
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.