Return-Path: Delivered-To: apmail-jakarta-commons-dev-archive@apache.org Received: (qmail 4927 invoked from network); 5 Mar 2003 01:13:06 -0000 Received: from exchange.sun.com (192.18.33.10) by daedalus.apache.org with SMTP; 5 Mar 2003 01:13:05 -0000 Received: (qmail 2187 invoked by uid 97); 5 Mar 2003 01:14:51 -0000 Delivered-To: qmlist-jakarta-archive-commons-dev@nagoya.betaversion.org Received: (qmail 2180 invoked from network); 5 Mar 2003 01:14:50 -0000 Received: from daedalus.apache.org (HELO apache.org) (208.185.179.12) by nagoya.betaversion.org with SMTP; 5 Mar 2003 01:14:50 -0000 Received: (qmail 3339 invoked by uid 500); 5 Mar 2003 01:12:49 -0000 Mailing-List: contact commons-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Jakarta Commons Developers List" Reply-To: "Jakarta Commons Developers List" Delivered-To: mailing list commons-dev@jakarta.apache.org Received: (qmail 3320 invoked by uid 500); 5 Mar 2003 01:12:48 -0000 Received: (qmail 3305 invoked from network); 5 Mar 2003 01:12:48 -0000 Received: from icarus.apache.org (208.185.179.13) by daedalus.apache.org with SMTP; 5 Mar 2003 01:12:48 -0000 Received: (qmail 66541 invoked by uid 1304); 5 Mar 2003 01:12:47 -0000 Date: 5 Mar 2003 01:12:47 -0000 Message-ID: <20030305011247.66540.qmail@icarus.apache.org> From: rwaldhoff@apache.org To: jakarta-commons-sandbox-cvs@apache.org Subject: cvs commit: jakarta-commons-sandbox/functor/src/test/org/apache/commons/functor/example FlexiMapExample.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N rwaldhoff 2003/03/04 17:12:47 Modified: functor/src/test/org/apache/commons/functor/example FlexiMapExample.java Log: add StringConcatMap example Revision Changes Path 1.4 +40 -4 jakarta-commons-sandbox/functor/src/test/org/apache/commons/functor/example/FlexiMapExample.java Index: FlexiMapExample.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/functor/src/test/org/apache/commons/functor/example/FlexiMapExample.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- FlexiMapExample.java 5 Mar 2003 00:16:38 -0000 1.3 +++ FlexiMapExample.java 5 Mar 2003 01:12:47 -0000 1.4 @@ -204,6 +204,15 @@ } + public void testStringConcatMap() { + Map map = makeStringConcatMap(); + map.put("key", "value 1"); + assertEquals("value 1",map.get("key")); + map.put("key", "value 2"); + assertEquals("value 1, value 2",map.get("key")); + map.put("key", "value 3"); + assertEquals("value 1, value 2, value 3",map.get("key")); + } static class FlexiMap implements Map { @@ -224,9 +233,9 @@ } public Object put(Object key, Object value) { - Object oldvalue = get(key); + Object oldvalue = proxiedMap.get(key); proxiedMap.put(key, onPut.evaluate(oldvalue, value)); - return oldvalue; + return onGet.evaluate(key,oldvalue); } public Object get(Object key) { @@ -336,6 +345,33 @@ } }, null + ); + } + + private Map makeStringConcatMap() { + return new FlexiMap( + new BinaryFunction() { + public Object evaluate(Object oldval, Object newval) { + StringBuffer buf = null; + if(null == oldval) { + buf = new StringBuffer(); + } else { + buf = (StringBuffer)oldval; + buf.append(", "); + } + buf.append(newval); + return buf; + } + }, + new BinaryFunction() { + public Object evaluate(Object key, Object val) { + if(null == val) { + return null; + } else { + return ((StringBuffer)val).toString(); + } + } + } ); } --------------------------------------------------------------------- To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: commons-dev-help@jakarta.apache.org