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
