Return-Path: Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: (qmail 91470 invoked from network); 1 Feb 2011 12:36:26 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 1 Feb 2011 12:36:26 -0000 Received: (qmail 38204 invoked by uid 500); 1 Feb 2011 12:36:25 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 37864 invoked by uid 500); 1 Feb 2011 12:36:22 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 37857 invoked by uid 99); 1 Feb 2011 12:36:22 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Feb 2011 12:36:22 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Feb 2011 12:36:20 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id C422C238890A; Tue, 1 Feb 2011 12:35:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1066030 - /commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java Date: Tue, 01 Feb 2011 12:35:58 -0000 To: commits@commons.apache.org From: simonetripodi@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110201123558.C422C238890A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: simonetripodi Date: Tue Feb 1 12:35:58 2011 New Revision: 1066030 URL: http://svn.apache.org/viewvc?rev=1066030&view=rev Log: the rules binder implementation needs just to store the sequence which rule providers are registered, then the Rules implementation will take care to store them in the proper data structure Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java?rev=1066030&r1=1066029&r2=1066030&view=diff ============================================================================== --- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java (original) +++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java Tue Feb 1 12:35:58 2011 @@ -18,8 +18,8 @@ package org.apache.commons.digester3; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; -import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -52,13 +52,13 @@ final class RulesBinderImpl implements R /** * The data structure where storing the providers binding. */ - private final Map>> providers; + private final Collection providers; /** * Creates a new {@link RulesBinder} instance with no bound providers. */ public RulesBinderImpl() { - this(new LinkedHashMap>>()); + this(new ArrayList()); } /** @@ -67,7 +67,7 @@ final class RulesBinderImpl implements R * * @param providers the data structure where storing the providers binding. */ - public RulesBinderImpl(Map>> providers) { + public RulesBinderImpl(Collection providers) { this.providers = providers; } @@ -492,12 +492,7 @@ final class RulesBinderImpl implements R return provider; } - List> providerLits = providers.get(keyPattern); - if (providerLits == null) { - providerLits = new ArrayList>(); - providers.put(keyPattern, providerLits); - } - providerLits.add(provider); + providers.add(new RegisteredProvider(keyPattern, provider)); return provider; } @@ -518,6 +513,30 @@ final class RulesBinderImpl implements R } /** + * Used to associate rule providers with paths in the rules binder. + */ + private static class RegisteredProvider { + + private final String pattern; + + private final RuleProvider provider; + + public RegisteredProvider(String pattern, RuleProvider provider) { + this.pattern = pattern; + this.provider = provider; + } + + public String getPattern() { + return pattern; + } + + public RuleProvider getProvider() { + return provider; + } + + } + + /** * Abstract {@link ParamTypeBuilder} implementation for {@code setNext()}, {@code setRoot()} and {@code setTop()} * * @param The rule type has to be created