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]>

Reply via email to