Author: simonetripodi
Date: Sun May 15 13:25:52 2011
New Revision: 1103372
URL: http://svn.apache.org/viewvc?rev=1103372&view=rev
Log:
pattern and namespaceURI hidden to final users that have to take care only to
define how rules are created, via the RuleProvider
Modified:
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/AbstractBackToLinkedRuleBuilder.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/FromBinderRuleSet.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/LinkedRuleBuilder.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/RuleProvider.java
Modified:
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/AbstractBackToLinkedRuleBuilder.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/AbstractBackToLinkedRuleBuilder.java?rev=1103372&r1=1103371&r2=1103372&view=diff
==============================================================================
---
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/AbstractBackToLinkedRuleBuilder.java
(original)
+++
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/AbstractBackToLinkedRuleBuilder.java
Sun May 15 13:25:52 2011
@@ -56,7 +56,9 @@ abstract class AbstractBackToLinkedRuleB
}
/**
- * {@inheritDoc}
+ * Returns the namespace URI for which this Rule is relevant, if any.
+ *
+ * @return The namespace URI for which this Rule is relevant, if any
*/
public final String getNamespaceURI()
{
@@ -82,7 +84,9 @@ abstract class AbstractBackToLinkedRuleB
}
/**
- * {@inheritDoc}
+ * Returns the rule pattern associated to this builder.
+ *
+ * @return The rule pattern associated to this builder
*/
public final String getPattern()
{
Modified:
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/FromBinderRuleSet.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/FromBinderRuleSet.java?rev=1103372&r1=1103371&r2=1103372&view=diff
==============================================================================
---
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/FromBinderRuleSet.java
(original)
+++
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/FromBinderRuleSet.java
Sun May 15 13:25:52 2011
@@ -40,59 +40,63 @@ final class FromBinderRuleSet
/**
* The data structure where storing the providers binding.
*/
- private final Collection<RuleProvider<? extends Rule>> providers = new
LinkedList<RuleProvider<? extends Rule>>();
+ private final Collection<AbstractBackToLinkedRuleBuilder<? extends Rule>>
providers =
+ new LinkedList<AbstractBackToLinkedRuleBuilder<? extends Rule>>();
/**
* Index for quick-retrieve provider.
*/
- private final Map<Key, Collection<RuleProvider<? extends Rule>>>
providersIndex =
- new HashMap<Key, Collection<RuleProvider<? extends Rule>>>();
+ private final Map<Key, Collection<AbstractBackToLinkedRuleBuilder<?
extends Rule>>> providersIndex =
+ new HashMap<Key, Collection<AbstractBackToLinkedRuleBuilder<? extends
Rule>>>();
/**
*
*
* @param <R>
- * @param <RP>
- * @param provider
+ * @param <RB>
+ * @param ruleBuilder
*/
- public <R extends Rule, RP extends RuleProvider<R>> void registerProvider(
RP provider )
+ public <R extends Rule, RB extends AbstractBackToLinkedRuleBuilder<R>>
void registerProvider( RB ruleBuilder )
{
- this.providers.add( provider );
+ this.providers.add( ruleBuilder );
- Key key = new Key( provider.getPattern(), provider.getNamespaceURI() );
+ Key key = new Key( ruleBuilder.getPattern(),
ruleBuilder.getNamespaceURI() );
- Collection<RuleProvider<? extends Rule>> indexedProviders =
this.providersIndex.get( key ); // O(1)
+ // O(1)
+ Collection<AbstractBackToLinkedRuleBuilder<? extends Rule>>
indexedProviders = this.providersIndex.get( key );
if ( indexedProviders == null )
{
- indexedProviders = new ArrayList<RuleProvider<? extends Rule>>();
+ indexedProviders = new ArrayList<AbstractBackToLinkedRuleBuilder<?
extends Rule>>();
this.providersIndex.put( key, indexedProviders ); // O(1)
}
- indexedProviders.add( provider );
+ indexedProviders.add( ruleBuilder );
}
/**
*
*
* @param <R>
- * @param <RP>
+ * @param <RB>
* @param keyPattern
* @param namespaceURI
* @param type
* @return
*/
- public <R extends Rule, RP extends RuleProvider<R>> RP getProvider( String
keyPattern,
- /* @Nullable */String namespaceURI, Class<RP> type )
+ public <R extends Rule, RB extends AbstractBackToLinkedRuleBuilder<R>> RB
getProvider( String keyPattern,
+ /* @Nullable */String namespaceURI, Class<RB> type )
{
Key key = new Key( keyPattern, namespaceURI );
- Collection<RuleProvider<? extends Rule>> indexedProviders =
this.providersIndex.get( key ); // O(1)
+ // O(1)
+ Collection<AbstractBackToLinkedRuleBuilder<? extends Rule>>
indexedProviders = this.providersIndex.get( key );
if ( indexedProviders == null || indexedProviders.isEmpty() )
{
return null;
}
- for ( RuleProvider<? extends Rule> ruleProvider : indexedProviders )
// FIXME O(n) not so good
+ // FIXME O(n) not so good
+ for ( AbstractBackToLinkedRuleBuilder<? extends Rule> ruleProvider :
indexedProviders )
{
if ( type.isInstance( ruleProvider ) )
{
@@ -117,7 +121,7 @@ final class FromBinderRuleSet
*/
public void addRuleInstances( Digester digester )
{
- for ( RuleProvider<? extends Rule> provider : providers ) {
+ for ( AbstractBackToLinkedRuleBuilder<? extends Rule> provider :
providers ) {
digester.addRule( provider.getPattern(), provider.get() );
}
}
Modified:
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/LinkedRuleBuilder.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/LinkedRuleBuilder.java?rev=1103372&r1=1103371&r2=1103372&view=diff
==============================================================================
---
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/LinkedRuleBuilder.java
(original)
+++
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/LinkedRuleBuilder.java
Sun May 15 13:25:52 2011
@@ -109,7 +109,7 @@ public final class LinkedRuleBuilder
* @param provider The provider has to be stored in the data structure
* @return The provider itself has to be stored in the data structure
*/
- private <R extends Rule, RP extends RuleProvider<R>> RP addProvider( RP
provider )
+ private <R extends Rule, RB extends AbstractBackToLinkedRuleBuilder<R>> RB
addProvider( RB provider )
{
fromBinderRuleSet.registerProvider( provider );
return provider;
Modified:
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/RuleProvider.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/RuleProvider.java?rev=1103372&r1=1103371&r2=1103372&view=diff
==============================================================================
---
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/RuleProvider.java
(original)
+++
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder/RuleProvider.java
Sun May 15 13:25:52 2011
@@ -28,20 +28,6 @@ public interface RuleProvider<R extends
{
/**
- * Returns the namespace URI for which this Rule is relevant, if any.
- *
- * @return The namespace URI for which this Rule is relevant, if any
- */
- String getNamespaceURI();
-
- /**
- * Returns the rule pattern associated to this builder.
- *
- * @return The rule pattern associated to this builder
- */
- String getPattern();
-
- /**
* Provides an instance of {@link Rule}. Must never return null.
*
* @return an instance of {@link Rule}.