KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > mchange > v2 > encounter > AbstractEncounterCounter


1 /*
2  * Distributed as part of c3p0 v.0.9.1
3  *
4  * Copyright (C) 2005 Machinery For Change, Inc.
5  *
6  * Author: Steve Waldman <swaldman@mchange.com>
7  *
8  * This library is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU Lesser General Public License version 2.1, as
10  * published by the Free Software Foundation.
11  *
12  * This software is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this software; see the file LICENSE. If not, write to the
19  * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20  * Boston, MA 02111-1307, USA.
21  */

22
23
24 package com.mchange.v2.encounter;
25
26 import java.util.Map JavaDoc;
27
28 class AbstractEncounterCounter implements EncounterCounter
29 {
30     final static Long JavaDoc ONE = new Long JavaDoc(1);
31     Map JavaDoc m;
32
33     AbstractEncounterCounter(Map JavaDoc m)
34     { this.m = m; }
35
36     /**
37      * @return how many times have I seen this object before?
38      */

39     public long encounter(Object JavaDoc o)
40     {
41     Long JavaDoc oldLong = (Long JavaDoc) m.get(o);
42     Long JavaDoc newLong;
43     long out;
44     if (oldLong == null)
45         {
46         out = 0;
47         newLong = ONE;
48         }
49     else
50         {
51         out = oldLong.longValue();
52         newLong = new Long JavaDoc(out + 1);
53         }
54     m.put( o, newLong );
55     return out;
56     }
57 }
Popular Tags