KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > ipanema > idgenerator > IDGeneratorAssistant


1 /* ************************************************************************** *
2  * Copyright (C) 2004 NightLabs GmbH, Marco Schulze *
3  * All rights reserved. *
4  * http://www.NightLabs.de *
5  * *
6  * This program and the accompanying materials are free software; you can re- *
7  * distribute it and/or modify it under the terms of the GNU General Public *
8  * License as published by the Free Software Foundation; either ver 2 of the *
9  * License, or any later version. *
10  * *
11  * This module is distributed in the hope that it will be useful, but WITHOUT *
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FIT- *
13  * NESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more *
14  * details. *
15  * *
16  * You should have received a copy of the GNU General Public License along *
17  * with this module; if not, write to the Free Software Foundation, Inc.: *
18  * 59 Temple Place, Suite 330 *
19  * Boston MA 02111-1307 *
20  * USA *
21  * *
22  * Or get it online: *
23  * http://www.opensource.org/licenses/gpl-license.php *
24  * *
25  * In case, you want to use this module or parts of it in a proprietary pro- *
26  * ject, you can purchase it under the NightLabs Commercial License. Please *
27  * contact NightLabs GmbH under info AT nightlabs DOT com for more infos or *
28  * visit http://www.NightLabs.com *
29  * ************************************************************************** */

30
31 /*
32  * Created on 05.09.2004
33  */

34 package com.nightlabs.ipanema.idgenerator;
35
36 import javax.jdo.JDOObjectNotFoundException;
37 import javax.jdo.PersistenceManager;
38
39 /**
40  * @author marco
41  */

42 public class IDGeneratorAssistant
43 {
44     public static synchronized int generateIDInt(PersistenceManager pm, String JavaDoc key)
45     {
46         IDStoreInt idStore;
47         pm.getExtent(IDStoreInt.class, true);
48         try
49         {
50             idStore = (IDStoreInt) pm.getObjectById(IDStoreIntID.create(key), true);
51             idStore.increment();
52         } catch (JDOObjectNotFoundException x) {
53             idStore = new IDStoreInt(key);
54             pm.makePersistent(idStore);
55         }
56         return idStore.getLastID();
57     }
58     
59     public static synchronized long generateIDLong(PersistenceManager pm, String JavaDoc key)
60     {
61         IDStoreLong idStore;
62         pm.getExtent(IDStoreLong.class, true);
63         try
64         {
65             idStore = (IDStoreLong) pm.getObjectById(IDStoreLongID.create(key), true);
66             idStore.increment();
67         } catch (JDOObjectNotFoundException x) {
68             idStore = new IDStoreLong(key);
69             pm.makePersistent(idStore);
70         }
71         return idStore.getLastID();
72     }
73 }
74
Popular Tags