KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > mchange > v2 > holders > SynchronizedIntHolder


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.holders;
25
26 import java.io.*;
27 import com.mchange.v2.ser.UnsupportedVersionException;
28
29 public class SynchronizedIntHolder implements ThreadSafeIntHolder, Serializable
30 {
31     transient int value;
32
33     public SynchronizedIntHolder( int value )
34     { this.value = value; }
35
36     public SynchronizedIntHolder()
37     { this(0); }
38
39     public synchronized int getValue()
40     { return value; }
41
42     public synchronized void setValue(int value)
43     { this.value = value; }
44
45     public synchronized void increment()
46     { ++value; }
47
48     public synchronized void decrement()
49     { --value; }
50
51     //Serialization
52
static final long serialVersionUID = 1; //override to take control of versioning
53
private final static short VERSION = 0x0001;
54     
55     private void writeObject(ObjectOutputStream out) throws IOException
56     {
57     out.writeShort(VERSION);
58     out.writeInt(value);
59     }
60     
61     private void readObject(ObjectInputStream in) throws IOException
62     {
63     short version = in.readShort();
64     switch (version)
65         {
66         case 0x0001:
67         this.value = in.readInt();
68         break;
69         default:
70         throw new UnsupportedVersionException(this, version);
71         }
72     }
73 }
74
Popular Tags