I don't have a problem with that. I'll take care of committing the classes, and updating the STATUS and release notes. Peers, please review. It seems pretty straightforward though, and useful to boot.
- Morgan ----- Original Message ----- From: "Daniel Rall" <[EMAIL PROTECTED]> To: "Jakarta Commons Developers List" <[EMAIL PROTECTED]> Cc: "Morgan Delagrange" <[EMAIL PROTECTED]> Sent: Thursday, March 14, 2002 5:03 PM Subject: Re: [COLLECTIONS] Collections 2.0 Release Candidate this week > "Morgan Delagrange" <[EMAIL PROTECTED]> writes: > > > I don't think any of the remaining submissions for Collections are > > ready for release yet, so I plan to prepare a Release Candidate and > > call a release vote within the next few days. I still think the > > BeanMap documentation is weak, but I'm not going to hold up the > > release because of that. I may spend some time trying to ferret out > > some of the undocumented bug fixes. > [snip] > > PENDING COLLECTIONS > > ------------------- > > > [snip] > > DelegateMap: Proposal sent to the mailing list > > > > (http://marc.theaimsgroup.com/?l=jakarta-commons-dev&m=101562102311707&w=2). > > Here's a revision updated for the suggested name change, and an > abstract unit test (following the existing pattern set by > TestTreeMap). You'd make me very happy if this was included in the > 2.0 release (if any further updates are desired, I can make them > immediately). > > - Dan > > > /* > * $Header: $ > * $Revision: $ > * $Date: $ > * > * ==================================================================== > * > * The Apache Software License, Version 1.1 > * > * Copyright (c) 1999-2002 The Apache Software Foundation. All rights > * reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions > * are met: > * > * 1. Redistributions of source code must retain the above copyright > * notice, this list of conditions and the following disclaimer. > * > * 2. Redistributions in binary form must reproduce the above copyright > * notice, this list of conditions and the following disclaimer in > * the documentation and/or other materials provided with the > * distribution. > * > * 3. The end-user documentation included with the redistribution, if > * any, must include the following acknowlegement: > * "This product includes software developed by the > * Apache Software Foundation (http://www.apache.org/)." > * Alternately, this acknowlegement may appear in the software itself, > * if and wherever such third-party acknowlegements normally appear. > * > * 4. The names "The Jakarta Project", "Commons", and "Apache Software > * Foundation" must not be used to endorse or promote products derived > * from this software without prior written permission. For written > * permission, please contact [EMAIL PROTECTED] > * > * 5. Products derived from this software may not be called "Apache" > * nor may "Apache" appear in their names without prior written > * permission of the Apache Group. > * > * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED > * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES > * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE > * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR > * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, > * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT > * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND > * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, > * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT > * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > * SUCH DAMAGE. > * ==================================================================== > * > * This software consists of voluntary contributions made by many > * individuals on behalf of the Apache Software Foundation. For more > * information on the Apache Software Foundation, please see > * <http://www.apache.org/>. > * > */ > package org.apache.commons.collections; > > import java.util.Collection; > import java.util.Map; > import java.util.Set; > > /** > * <p>delegate - a person authorized to act as representative for > * another</p> > * > * <p>This <code>Map</code> wraps another <code>Map</code> > * implementation, using the wrapped instance for its default > * implementation. This class is used as a framework on which to > * build to extensions for its wrapped <code>Map</code> object which > * would be unavailable or inconvenient via sub-classing (but usable > * via composition).</p> > * > * <p>An example use case is where the wrapped <code>Map</code> needs > * synchronization (to make it thread-safe), but the <code>Map</code> > * returned by <code>Collections.synchronizedMap(map)</code> > * hides part of <code>map</code>'s public interface.</p> > * > * @author <a href="mailto:[EMAIL PROTECTED]">Daniel Rall</a> > * @since 2.0 > */ > public abstract class ProxyMap implements Map { > > /** > * The <code>Map</code> used for default implementations. > */ > protected Map map; > > /** > * Creates a new instance acting as a representative for the > * specified <code>Map</code>. > * > * @param map The <code>Map</code> to whose operations to wrap. > */ > public ProxyMap(Map map) { > this.map = map; > } > > public void clear() { > map.clear(); > } > > public boolean containsKey(Object key) { > return map.containsKey(key); > } > > public boolean containsValue(Object value) { > return map.containsValue(value); > } > > public Set entrySet() { > return map.entrySet(); > } > > public boolean equals(Object map) { > return map.equals(map); > } > > public Object get(Object key) { > return map.get(key); > } > > public int hashCode() { > return map.hashCode(); > } > > public boolean isEmpty() { > return map.isEmpty(); > } > > public Set keySet() { > return map.keySet(); > } > > public Object put(Object key, Object value) { > return map.put(key, value); > } > > public void putAll(Map t) { > map.putAll(t); > } > > public Object remove(Object key) { > return map.remove(key); > } > > public int size() { > return map.size(); > } > > public Collection values() { > return map.values(); > } > > } > > > /* > * $Header: $ > * $Revision: $ > * $Date: $ > * > * ==================================================================== > * > * The Apache Software License, Version 1.1 > * > * Copyright (c) 1999-2001 The Apache Software Foundation. All rights > * reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions > * are met: > * > * 1. Redistributions of source code must retain the above copyright > * notice, this list of conditions and the following disclaimer. > * > * 2. Redistributions in binary form must reproduce the above copyright > * notice, this list of conditions and the following disclaimer in > * the documentation and/or other materials provided with the > * distribution. > * > * 3. The end-user documentation included with the redistribution, if > * any, must include the following acknowlegement: > * "This product includes software developed by the > * Apache Software Foundation (http://www.apache.org/)." > * Alternately, this acknowlegement may appear in the software itself, > * if and wherever such third-party acknowlegements normally appear. > * > * 4. The names "The Jakarta Project", "Commons", and "Apache Software > * Foundation" must not be used to endorse or promote products derived > * from this software without prior written permission. For written > * permission, please contact [EMAIL PROTECTED] > * > * 5. Products derived from this software may not be called "Apache" > * nor may "Apache" appear in their names without prior written > * permission of the Apache Group. > * > * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED > * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES > * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE > * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR > * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, > * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT > * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND > * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, > * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT > * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > * SUCH DAMAGE. > * ==================================================================== > * > * This software consists of voluntary contributions made by many > * individuals on behalf of the Apache Software Foundation. For more > * information on the Apache Software Foundation, please see > * <http://www.apache.org/>. > * > */ > > package org.apache.commons.collections; > > import junit.framework.Test; > import junit.framework.TestCase; > import junit.framework.TestSuite; > import java.util.Map; > > /** > * Tests the {@link org.apache.commons.collections.ProxyMap} class. > * > * @author <a href="mailto:[EMAIL PROTECTED]">Daniel Ral</a> > * @since 2.0 > */ > public abstract class TestProxyMap extends TestMap > { > public TestProxyMap(String testName) > { > super(testName); > } > > public static void main(String args[]) > { > String[] testCaseName = { TestProxyMap.class.getName() }; > junit.textui.TestRunner.main(testCaseName); > } > > public boolean useNullKey() { > return false; > } > > protected ProxyMap map = null; > > public void setUp() > { > map = (ProxyMap) makeEmptyMap(); > } > > public void testNewMap() > { > assertTrue("New map is empty", map.isEmpty()); > assertEquals("New map has size zero", map.size(), 0); > } > > public void testSearch() > { > map.put("first", "First Item"); > map.put("second", "Second Item"); > assertEquals("Top item is 'Second Item'", map.get("first"), > "First Item"); > assertEquals("Next Item is 'First Item'", map.get("second"), > "Second Item"); > map.clear(); > } > } _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>