You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2007/01/29 18:53:19 UTC

svn commit: r501129 - in /tapestry/tapestry5/tapestry-core/trunk/src: main/java/org/apache/tapestry/internal/model/ main/java/org/apache/tapestry/internal/services/ main/java/org/apache/tapestry/internal/structure/ main/java/org/apache/tapestry/model/ ...

Author: hlship
Date: Mon Jan 29 09:53:18 2007
New Revision: 501129

URL: http://svn.apache.org/viewvc?view=rev&rev=501129
Log:
Make parameters names case insensitive.

Modified:
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/model/MutableComponentModelImpl.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ParameterWorker.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/model/ComponentModel.java
    tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/model/MutableComponentModel.java
    tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/model/MutableComponentModelImplTest.java

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/model/MutableComponentModelImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/model/MutableComponentModelImpl.java?view=diff&rev=501129&r1=501128&r2=501129
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/model/MutableComponentModelImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/model/MutableComponentModelImpl.java Mon Jan 29 09:53:18 2007
@@ -107,24 +107,26 @@
         notBlank(name, "name");
         notBlank(defaultBindingPrefix, "defaultBindingPrefix");
 
+        String caseless = name.toLowerCase();
+
         // TODO: Check for conflict with base model
 
         if (_parameters == null)
             _parameters = newMap();
         else
         {
-            if (_parameters.containsKey(name))
+            if (_parameters.containsKey(caseless))
                 throw new IllegalArgumentException(ModelMessages.duplicateParameter(
                         name,
                         _componentClassName));
         }
 
-        _parameters.put(name, new ParameterModelImpl(name, required, defaultBindingPrefix));
+        _parameters.put(caseless, new ParameterModelImpl(name, required, defaultBindingPrefix));
     }
 
     public ParameterModel getParameterModel(String parameterName)
     {
-        ParameterModel result = InternalUtils.get(_parameters, parameterName);
+        ParameterModel result = InternalUtils.get(_parameters, parameterName.toLowerCase());
 
         if (result == null && _parentModel != null)
             result = _parentModel.getParameterModel(parameterName);

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ParameterWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ParameterWorker.java?view=diff&rev=501129&r1=501128&r2=501129
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ParameterWorker.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ParameterWorker.java Mon Jan 29 09:53:18 2007
@@ -1,4 +1,4 @@
-// Copyright 2006 The Apache Software Foundation
+// Copyright 2006, 2007 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -245,7 +245,7 @@
 
         builder.end();
 
-        String methodName = transformation.newMemberName("_update_parameter_" + parameterName);
+        String methodName = transformation.newMemberName("update_parameter_" + parameterName);
 
         MethodSignature signature = new MethodSignature(Modifier.PRIVATE, "void", methodName,
                 new String[]
@@ -305,7 +305,7 @@
         builder.addln("return result;");
         builder.end();
 
-        String methodName = transformation.newMemberName("_read_parameter_" + parameterName);
+        String methodName = transformation.newMemberName("read_parameter_" + parameterName);
 
         MethodSignature signature = new MethodSignature(Modifier.PRIVATE, fieldType, methodName,
                 null, null);

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java?view=diff&rev=501129&r1=501128&r2=501129
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java Mon Jan 29 09:53:18 2007
@@ -1,4 +1,4 @@
-// Copyright 2006 The Apache Software Foundation
+// Copyright 2006, 2007 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -168,12 +168,10 @@
 
     public void addParameter(String parameterName, Binding binding)
     {
-        // TODO: Check for conflicts, etc.
-
         if (_bindings == null)
             _bindings = newMap();
 
-        _bindings.put(parameterName, binding);
+        _bindings.put(parameterName.toLowerCase(), binding);
     }
 
     @SuppressWarnings("unchecked")
@@ -181,12 +179,11 @@
     {
         Binding b = getBinding(parameterName);
 
-        // TODO: If binding is null ...
-
         try
         {
-            // Will throw NPE if binding is null, but this should never be called if binding is
-            // null.
+            // Will throw NPE if binding is null, but this should never be called if the
+            // parameter is not bound.
+
             Object boundValue = b.get();
 
             return _typeCoercer.coerce(boundValue, expectedType);
@@ -212,8 +209,7 @@
     {
         Binding b = getBinding(parameterName);
 
-        // TODO: If binding is null ...
-
+    
         Class bindingType = b.getBindingType();
 
         try
@@ -233,7 +229,7 @@
 
     private Binding getBinding(String parameterName)
     {
-        return _bindings == null ? null : _bindings.get(parameterName);
+        return _bindings == null ? null : _bindings.get(parameterName.toLowerCase());
     }
 
     public Log getLog()

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/model/ComponentModel.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/model/ComponentModel.java?view=diff&rev=501129&r1=501128&r2=501129
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/model/ComponentModel.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/model/ComponentModel.java Mon Jan 29 09:53:18 2007
@@ -1,4 +1,4 @@
-// Copyright 2006 The Apache Software Foundation
+// Copyright 2006, 2007 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -71,7 +71,12 @@
     /** Returns a list of the class names of mixins that are part of the component's implementation. */
     List<String> getMixinClassNames();
 
-    /** Return a single parameter model by parameter name, or null if the parameter is not defined. */
+    /**
+     * Return a single parameter model by parameter name, or null if the parameter is not defined.
+     * 
+     * @param parameterName
+     *            the name of the parameter (case is ignored)
+     */
     ParameterModel getParameterModel(String parameterName);
 
     /**

Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/model/MutableComponentModel.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/model/MutableComponentModel.java?view=diff&rev=501129&r1=501128&r2=501129
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/model/MutableComponentModel.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/model/MutableComponentModel.java Mon Jan 29 09:53:18 2007
@@ -1,4 +1,4 @@
-// Copyright 2006 The Apache Software Foundation
+// Copyright 2006, 2007 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -25,7 +25,8 @@
 public interface MutableComponentModel extends ComponentModel
 {
     /**
-     * Adds a new formal parameter to the model.
+     * Adds a new formal parameter to the model. Each parameter has a unique name (though access to
+     * parameters is case insensitive).
      * 
      * @param name
      *            new, unique name for the parameter

Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/model/MutableComponentModelImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/model/MutableComponentModelImplTest.java?view=diff&rev=501129&r1=501128&r2=501129
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/model/MutableComponentModelImplTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/model/MutableComponentModelImplTest.java Mon Jan 29 09:53:18 2007
@@ -1,4 +1,4 @@
-// Copyright 2006 The Apache Software Foundation
+// Copyright 2006, 2007 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -83,7 +83,9 @@
 
         model.addParameter("fred", true, "flint");
 
-        assertEquals(model.getParameterModel("fred").getDefaultBindingPrefix(), "flint");
+        // Checks that parameter names are case insensitive
+        
+        assertEquals(model.getParameterModel("Fred").getDefaultBindingPrefix(), "flint");
 
         verify();
     }
@@ -145,14 +147,16 @@
 
         try
         {
-            model.addParameter("fred", true, InternalConstants.PROP_BINDING_PREFIX);
+            // This also helps check that the comparison is caseless!
+            
+            model.addParameter("Fred", true, InternalConstants.PROP_BINDING_PREFIX);
             unreachable();
         }
         catch (IllegalArgumentException ex)
         {
             assertEquals(
                     ex.getMessage(),
-                    "Parameter 'fred' of component org.example.components.Foo is already defined.");
+                    "Parameter 'Fred' of component org.example.components.Foo is already defined.");
         }
 
         verify();