You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2011/05/15 15:25:53 UTC

svn commit: r1103372 - in /commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/binder: AbstractBackToLinkedRuleBuilder.java FromBinderRuleSet.java LinkedRuleBuilder.java RuleProvider.java

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}.