KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > myoodb > event > EventDbImpl


1 ///////////////////////////////////////////////////////////////////////////////
2
//
3
// Copyright (C) 2003-@year@ by Thomas M. Hazel, MyOODB (www.myoodb.org)
4
//
5
// All Rights Reserved
6
//
7
// This program is free software; you can redistribute it and/or modify
8
// it under the terms of the GNU General Public License and GNU Library
9
// General Public License as published by the Free Software Foundation;
10
// either version 2, or (at your option) any later version.
11
//
12
// This program 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 General Public License and GNU Library General Public License
16
// for more details.
17
//
18
// You should have received a copy of the GNU General Public License
19
// and GNU Library General Public License along with this program; if
20
// not, write to the Free Software Foundation, 675 Mass Ave, Cambridge,
21
// MA 02139, USA.
22
//
23
///////////////////////////////////////////////////////////////////////////////
24
package org.myoodb.event;
25
26 import org.myoodb.collectable.*;
27
28 public class EventDbImpl extends LogObjectDbImpl implements Event
29 {
30     private org.myoodb.core.Identifier m_identifier;
31
32     public EventDbImpl()
33     {
34         m_identifier = null;
35     }
36
37     private void updateLogTime(boolean remove)
38     {
39         EventLog eventLog = (EventLog) getLogStore();
40
41         if (eventLog == null)
42         {
43             throw new org.myoodb.exception.PermissionException("Event notification failed: no associated EventLog");
44         }
45
46         if (remove == true)
47         {
48             eventLog.removeEvent(this);
49         }
50
51         eventLog.addEvent(this);
52     }
53
54     public void reNotify()
55     {
56         if (m_identifier == null)
57         {
58             throw new org.myoodb.exception.PermissionException("Re-Notify failed: event has not yet been posted");
59         }
60
61         updateLogTime(true);
62     }
63
64     public void notify(Collectable collectable)
65     {
66         if (m_identifier != null)
67         {
68             throw new org.myoodb.exception.PermissionException("Notify failed: event has already been posted");
69         }
70
71         m_identifier = collectable.getDatabaseHandle();
72
73         updateLogTime(false);
74     }
75
76     public org.myoodb.core.Identifier getCollectableHandle()
77     {
78         return m_identifier;
79     }
80 }
81
Popular Tags