KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > genimen > djeneric > repository > DjIdProvider


1 /*
2  * Copyright (c) 2001-2005 by Genimen BV (www.genimen.com) All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, is permitted
5  * provided that the following conditions are met:
6  * - Redistributions of source code must retain the above copyright notice, this list of conditions
7  * and the following disclaimer.
8  * - Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * - All advertising materials mentioning features or use of this software must display the
12  * following acknowledgment: "This product includes Djeneric."
13  * - Products derived from this software may not be called "Djeneric" nor may
14  * "Djeneric" appear in their names without prior written permission of Genimen BV.
15  * - Redistributions of any form whatsoever must retain the following acknowledgment: "This
16  * product includes Djeneric."
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL GENIMEN BV, DJENERIC.ORG,
22  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */

30 package com.genimen.djeneric.repository;
31
32 import com.genimen.djeneric.repository.exceptions.DjenericException;
33
34 /**
35  * Description of the Class
36  *
37  *@author Wido Riezebos
38  *@created 27 mei 2002
39  */

40 public abstract class DjIdProvider
41 {
42   /////////////////////////////////////////////////////////////////////
43
/**
44    * Returns the nextId of the DjIdProvider object
45    *
46    *@param forSession Description of the Parameter
47    *@return The nextId value
48    *@exception DjenericException Description of the Exception
49    */

50   public abstract long getNextId(DjSession forSession) throws DjenericException;
51
52   /////////////////////////////////////////////////////////////////////
53

54   int _cacheSize = 5;
55   String JavaDoc _sequenceName;
56
57   /**
58    * Constructor for the DjIdProvider object
59    */

60   public DjIdProvider()
61
62   {
63   }
64
65   /**
66    * Constructor for the DjIdProvider object
67    *
68    *@param cacheSize Description of the Parameter
69    */

70   public DjIdProvider(int cacheSize)
71   {
72     _cacheSize = cacheSize;
73   }
74
75   /**
76    * Returns the cacheSize of the DjIdProvider object
77    *
78    *@return The cacheSize value
79    */

80   public int getCacheSize()
81   {
82     return _cacheSize;
83   }
84
85   /**
86    * Sets the sequenceName of the DjIdProvider object
87    *
88    *@param sequenceName The new sequenceName value
89    */

90   public void setSequenceName(String JavaDoc sequenceName)
91   {
92     _sequenceName = sequenceName;
93   }
94
95   /**
96    * Returns the sequenceName of the DjIdProvider object
97    *
98    *@return The sequenceName value
99    */

100   public String JavaDoc getSequenceName()
101   {
102     return _sequenceName;
103   }
104
105   /**
106    * Returns the nextId of the DjIdProvider object
107    *
108    *@param mgr Description of the Parameter
109    *@return The nextId value
110    *@exception DjenericException Description of the Exception
111    */

112   public long getNextId(DjPersistenceManager mgr) throws DjenericException
113   {
114     DjSession session = mgr.createSession();
115     try
116     {
117       long id = getNextId(session);
118       if (mgr.shouldTrace(DjPersistenceManager.TRACE_INTERNAL)) mgr.trace("Allocated new object id: " + id);
119       return id;
120     }
121     finally
122     {
123       session.close();
124     }
125   }
126
127 }
Popular Tags