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