KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > jdi > internal > event > MonitorWaitEventImpl


1 /*******************************************************************************
2  * Copyright (c) 2000, 2006 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  * IBM Corporation - initial API and implementation
10  *******************************************************************************/

11 package org.eclipse.jdi.internal.event;
12
13 import java.io.DataInputStream JavaDoc;
14 import java.io.IOException JavaDoc;
15
16 import org.eclipse.jdi.internal.LocationImpl;
17 import org.eclipse.jdi.internal.MirrorImpl;
18 import org.eclipse.jdi.internal.ObjectReferenceImpl;
19 import org.eclipse.jdi.internal.ThreadReferenceImpl;
20 import org.eclipse.jdi.internal.ValueImpl;
21 import org.eclipse.jdi.internal.VirtualMachineImpl;
22 import org.eclipse.jdi.internal.request.RequestID;
23
24 import com.sun.jdi.LongValue;
25 import com.sun.jdi.ObjectReference;
26 import com.sun.jdi.event.MonitorWaitEvent;
27
28 public class MonitorWaitEventImpl extends LocatableEventImpl implements MonitorWaitEvent {
29
30     /** Jdwp event kind id **/
31     public static final byte EVENT_KIND = EVENT_MONITOR_WAIT;
32     
33     /** howl ong the timeout is **/
34     private long fTimeOut;
35     
36     /** the monitor reference **/
37     private ObjectReference fMonitor;
38     
39     /** Constructor **/
40     private MonitorWaitEventImpl(VirtualMachineImpl vmImpl, RequestID requestID) {
41         super("MonitorWait", vmImpl, requestID); //$NON-NLS-1$
42
}
43     
44     /**
45      * @return Creates, reads and returns new EventImpl, of which requestID has already been read.
46      */

47     public static MonitorWaitEventImpl read(MirrorImpl target, RequestID requestID, DataInputStream JavaDoc dataInStream) throws IOException JavaDoc {
48         VirtualMachineImpl vmImpl = target.virtualMachineImpl();
49         MonitorWaitEventImpl event = new MonitorWaitEventImpl(vmImpl, requestID);
50         event.fThreadRef = ThreadReferenceImpl.read(target, dataInStream);
51         event.fMonitor = ObjectReferenceImpl.readObjectRefWithTag(target, dataInStream);
52         event.fLocation = LocationImpl.read(target, dataInStream);
53         event.fTimeOut = ((LongValue)ValueImpl.readWithTag(target, dataInStream)).value();
54         return event;
55     }
56     
57     /* (non-Javadoc)
58      * @see com.sun.jdi.event.MonitorWaitedEvent#monitor()
59      */

60     public ObjectReference monitor() {
61         return fMonitor;
62     }
63     
64     /* (non-Javadoc)
65      * @see com.sun.jdi.event.MonitorWaitEvent#timeout()
66      */

67     public long timeout() {
68         return fTimeOut;
69     }
70 }
71
Popular Tags