01: /*
02: * JBoss, Home of Professional Open Source.
03: * Copyright 2006, Red Hat Middleware LLC, and individual contributors
04: * as indicated by the @author tags. See the copyright.txt file in the
05: * distribution for a full listing of individual contributors.
06: *
07: * This is free software; you can redistribute it and/or modify it
08: * under the terms of the GNU Lesser General Public License as
09: * published by the Free Software Foundation; either version 2.1 of
10: * the License, or (at your option) any later version.
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 GNU
15: * Lesser General Public License for more details.
16: *
17: * You should have received a copy of the GNU Lesser General Public
18: * License along with this software; if not, write to the Free
19: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21: */
22: package javax.ejb;
23:
24: import java.io.Serializable;
25: import java.util.Date;
26:
27: /**
28: * The Timer interface contains information about a timer that was created
29: * through the EJB Timer Service
30: **/
31: public interface Timer {
32:
33: /**
34: * Cause the timer and all its associated expiration notifications to be cancelled.
35: *
36: * @throws IllegalStateException If this method is invoked while the instance is in
37: * a state that does not allow access to this method.
38: * @throws NoSuchObjectLocalException If invoked on a timer that has expired or has been cancelled.
39: * @throws EJBException If this method could not complete due to a system-level failure.
40: **/
41: public void cancel() throws IllegalStateException,
42: NoSuchObjectLocalException, EJBException;
43:
44: /**
45: * Get the number of milliseconds that will elapse before the next scheduled timer expiration.
46: *
47: * @return Number of milliseconds that will elapse before the next scheduled timer expiration.
48: *
49: * @throws IllegalStateException If this method is invoked while the instance is in
50: * a state that does not allow access to this method.
51: * @throws NoSuchObjectLocalException If invoked on a timer that has expired or has been cancelled.
52: * @throws EJBException If this method could not complete due to a system-level failure.
53: **/
54: public long getTimeRemaining() throws IllegalStateException,
55: NoSuchObjectLocalException, EJBException;
56:
57: /**
58: * Get the point in time at which the next timer expiration is scheduled to occur.
59: *
60: * @return Get the point in time at which the next timer expiration is scheduled to occur.
61: *
62: * @throws IllegalStateException If this method is invoked while the instance is in
63: * a state that does not allow access to this method.
64: * @throws NoSuchObjectLocalException If invoked on a timer that has expired or has been cancelled.
65: * @throws EJBException If this method could not complete due to a system-level failure.
66: **/
67: public Date getNextTimeout() throws IllegalStateException,
68: NoSuchObjectLocalException, EJBException;
69:
70: /**
71: * Get the information associated with the timer at the time of creation.
72: *
73: * @return The Serializable object that was passed in at timer creation, or null if the
74: * info argument passed in at timer creation was null.
75: *
76: * @throws IllegalStateException If this method is invoked while the instance is in
77: * a state that does not allow access to this method.
78: * @throws NoSuchObjectLocalException If invoked on a timer that has expired or has been cancelled.
79: * @throws EJBException If this method could not complete due to a system-level failure.
80: **/
81: public Serializable getInfo() throws IllegalStateException,
82: NoSuchObjectLocalException, EJBException;
83:
84: /**
85: * Get a serializable handle to the timer. This handle can be used at a later time to
86: * re-obtain the timer reference.
87: *
88: * @return Handle of the Timer
89: *
90: * @throws IllegalStateException If this method is invoked while the instance is in
91: * a state that does not allow access to this method.
92: * @throws NoSuchObjectLocalException If invoked on a timer that has expired or has been cancelled.
93: * @throws EJBException If this method could not complete due to a system-level failure.
94: **/
95: public TimerHandle getHandle() throws IllegalStateException,
96: NoSuchObjectLocalException, EJBException;
97: }
|