I mean remove the new logic in this method, not the whole method

On Mon, Aug 29, 2011 at 9:37 PM, Martin Grigorov <[email protected]> wrote:
> I would rather remove this method altogether if it is really a problem.
> But who just puts a new .jar in an existing .war and goes in
> production ? This is toooo brave .. I doubt there are such companies
>
> On Mon, Aug 29, 2011 at 9:30 PM, Martijn Dashorst
> <[email protected]> wrote:
>> AFAIK this requires a recompile for folks upgrading from 1.5-RC7 to
>> 1.5-RC8 (or 1.5.0 to 1.5.1). Not very handy.
>>
>> The signature goes from:
>>
>>    PageParameters#remove(String)
>> to
>>    PageParameters#remove(String, String[])
>>
>> IMO it is better to add the varargs method, or if it isn't compatible,
>> add a method with signature:
>>    remove(String, String, String...)
>>
>> Martijn
>>
>> On Mon, Aug 29, 2011 at 2:48 PM,  <[email protected]> wrote:
>>> Author: mgrigorov
>>> Date: Mon Aug 29 12:48:07 2011
>>> New Revision: 1162772
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1162772&view=rev
>>> Log:
>>> WICKET-3938 Impossible to remove particular key-value from PageParameters
>>>
>>>
>>> Modified:
>>>    
>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/INamedParameters.java
>>>    
>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java
>>>    
>>> wicket/trunk/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java
>>>
>>> Modified: 
>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/INamedParameters.java
>>> URL: 
>>> http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/INamedParameters.java?rev=1162772&r1=1162771&r2=1162772&view=diff
>>> ==============================================================================
>>> --- 
>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/INamedParameters.java
>>>  (original)
>>> +++ 
>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/INamedParameters.java
>>>  Mon Aug 29 12:48:07 2011
>>> @@ -72,9 +72,13 @@ public interface INamedParameters
>>>         * Removes named parameter with given name.
>>>         *
>>>         * @param name
>>> +        *            the name of the parameter to remove
>>> +        * @param values
>>> +        *            values used as criteria. The parameter will be 
>>> removed only if its value is equal
>>> +        *            to any of the criteria.
>>>         * @return this
>>>         */
>>> -       INamedParameters remove(final String name);
>>> +       INamedParameters remove(final String name, String... values);
>>>
>>>        /**
>>>         * Adds value to named parameter with given name.
>>>
>>> Modified: 
>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java
>>> URL: 
>>> http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java?rev=1162772&r1=1162771&r2=1162772&view=diff
>>> ==============================================================================
>>> --- 
>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java
>>>  (original)
>>> +++ 
>>> wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java
>>>  Mon Aug 29 12:48:07 2011
>>> @@ -392,7 +392,7 @@ public class PageParameters implements I
>>>        /**
>>>         * @see 
>>> org.apache.wicket.request.mapper.parameter.INamedParameters#remove(java.lang.String)
>>>         */
>>> -       public PageParameters remove(final String name)
>>> +       public PageParameters remove(final String name, final String... 
>>> values)
>>>        {
>>>                Args.notNull(name, "name");
>>>
>>> @@ -403,7 +403,21 @@ public class PageParameters implements I
>>>                                Entry e = i.next();
>>>                                if (e.key.equals(name))
>>>                                {
>>> -                                       i.remove();
>>> +                                       if (values != null && values.length 
>>> > 0)
>>> +                                       {
>>> +                                               for (String value : values)
>>> +                                               {
>>> +                                                       if 
>>> (e.value.equals(value))
>>> +                                                       {
>>> +                                                               i.remove();
>>> +                                                               break;
>>> +                                                       }
>>> +                                               }
>>> +                                       }
>>> +                                       else
>>> +                                       {
>>> +                                               i.remove();
>>> +                                       }
>>>                                }
>>>                        }
>>>                }
>>>
>>> Modified: 
>>> wicket/trunk/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java
>>> URL: 
>>> http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java?rev=1162772&r1=1162771&r2=1162772&view=diff
>>> ==============================================================================
>>> --- 
>>> wicket/trunk/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java
>>>  (original)
>>> +++ 
>>> wicket/trunk/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersTest.java
>>>  Mon Aug 29 12:48:07 2011
>>> @@ -109,6 +109,8 @@ public class PageParametersTest extends
>>>
>>>        /**
>>>         * https://issues.apache.org/jira/browse/WICKET-3938
>>> +        *
>>> +        * Remove the parameter by its name
>>>         */
>>>        @Test
>>>        public void removeParameters()
>>> @@ -123,4 +125,21 @@ public class PageParametersTest extends
>>>                parameters.remove("named2");
>>>                assertTrue(parameters.isEmpty());
>>>        }
>>> +
>>> +       /**
>>> +        * https://issues.apache.org/jira/browse/WICKET-3938
>>> +        *
>>> +        * Remove the parameter by its name only if its value is equal to 
>>> the criteria
>>> +        */
>>> +       @Test
>>> +       public void removeParametersByValue()
>>> +       {
>>> +               PageParameters parameters = new 
>>> PageParameters().add("named1", "value1").add("named1",
>>> +                       "value2");
>>> +
>>> +               assertEquals(2, parameters.getAllNamed().size());
>>> +
>>> +               parameters.remove("named1", "value1");
>>> +               assertEquals("value2", parameters.get("named1").toString());
>>> +       }
>>>  }
>>>
>>>
>>>
>>
>>
>>
>> --
>> Become a Wicket expert, learn from the best: http://wicketinaction.com
>>
>
>
>
> --
> Martin Grigorov
> jWeekend
> Training, Consulting, Development
> http://jWeekend.com
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

Reply via email to