KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > jalisto > se > impl > server > page > info > InMemoryPageInfoMulti


1 /*
2  * Jalisto - JAva LIght STOrage
3  * Copyright (C) 2000-2005 Xcalia http://www.xcalia.com
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
18  *
19  * Xcalia
20  * 71, rue Desnouettes
21  * 75014 Paris - France
22  * http://www.xcalia.com
23  */

24 package org.objectweb.jalisto.se.impl.server.page.info;
25
26 import org.objectweb.jalisto.se.impl.server.page.info.InMemoryPageInfo;
27
28 import java.util.ArrayList JavaDoc;
29 import java.util.HashMap JavaDoc;
30 import java.util.Map JavaDoc;
31
32 public class InMemoryPageInfoMulti extends InMemoryPageInfo {
33
34     protected InMemoryPageInfoMulti(ArrayList JavaDoc sessionIds, PageInfo pageInfo) {
35         super(pageInfo);
36         transactionnalImage = new HashMap JavaDoc();
37         if (sessionIds != null) {
38             for (int i = 0; i < sessionIds.size(); i++) {
39                 begin(sessionIds.get(i));
40             }
41         }
42     }
43
44     public void getAFreeSpace(Object JavaDoc sessionId) {
45         freeSpaceSize--;
46         Integer JavaDoc i = (Integer JavaDoc) transactionnalImage.get(sessionId);
47         transactionnalImage.put(sessionId, new Integer JavaDoc(i.intValue() + 1));
48     }
49
50     public void freeASpace(Object JavaDoc sessionId) {
51         freeSpaceSize++;
52         Integer JavaDoc i = (Integer JavaDoc) transactionnalImage.get(sessionId);
53         transactionnalImage.put(sessionId, new Integer JavaDoc(i.intValue() - 1));
54     }
55
56     public void begin(Object JavaDoc sessionId) {
57         transactionnalImage.put(sessionId, new Integer JavaDoc(0));
58     }
59
60     public boolean rollback(Object JavaDoc sessionId) {
61         int i = ((Integer JavaDoc) transactionnalImage.get(sessionId)).intValue();
62         if (i < 0) {
63             return false;
64         }
65 // freeSpaceSize = freeSpaceSize + i;
66
if (i != 0) {
67 // System.out.println("InMemoryPageInfoMulti rollback "+i+" -> 0");
68
transactionnalImage.put(sessionId, new Integer JavaDoc(0));
69         }
70         return true;
71     }
72
73     private Map JavaDoc transactionnalImage;
74 }
75
Popular Tags