KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > aspectj > debugger > request > ThreadGroupRequest


1 /* -*- Mode: JDE; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2  *
3  * This file is part of the debugger and core tools for the AspectJ(tm)
4  * programming language; see http://aspectj.org
5  *
6  * The contents of this file are subject to the Mozilla Public License
7  * Version 1.1 (the "License"); you may not use this file except in
8  * compliance with the License. You may obtain a copy of the License at
9  * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/.
10  *
11  * Software distributed under the License is distributed on an "AS IS" basis,
12  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13  * for the specific language governing rights and limitations under the
14  * License.
15  *
16  * The Original Code is AspectJ.
17  *
18  * The Initial Developer of the Original Code is Xerox Corporation. Portions
19  * created by Xerox Corporation are Copyright (C) 1999-2002 Xerox Corporation.
20  * All Rights Reserved.
21  */

22
23 package org.aspectj.debugger.request;
24
25 import org.aspectj.debugger.base.*;
26
27 import com.sun.jdi.*;
28 import java.util.*;
29
30 /**
31  * ThreadGroupRequest.java
32  *
33  *
34  * Created: Thu Aug 24 17:15:13 2000
35  *
36  * @author <a HREF="mailto:palm@parc.xerox.com"Jeffrey Palm</a>
37  */

38
39 public class ThreadGroupRequest extends Request {
40
41     protected String JavaDoc threadGroupName;
42     
43     public ThreadGroupRequest(Debugger debugger, String JavaDoc threadGroupName) {
44         super(debugger);
45         this.threadGroupName = threadGroupName;
46     }
47
48     public Object JavaDoc go() throws NoVMException, DebuggerException {
49         Iterator iter = vm().allThreads().iterator();
50         while (iter.hasNext()) {
51             ThreadGroupReference threadGroupRef =
52                 (ThreadGroupReference) ((ThreadReference) iter.next()).threadGroup();
53             if (threadGroupRef.name().equals(threadGroupName)) {
54                 return threadGroupRef;
55             } else {
56                 try {
57                     long ourID = Long.parseLong(threadGroupName);
58                     long refID = threadGroupRef.uniqueID();
59                     if (ourID == refID) {
60                         return threadGroupRef;
61                     }
62                 } catch (NumberFormatException JavaDoc e) {
63                 }
64             }
65         }
66         throw new ThreadGroupNotFoundException(threadGroupName);
67     }
68
69     class ThreadGroupNotFoundException extends DebuggerException {
70         public ThreadGroupNotFoundException(String JavaDoc threadGroupName) {
71             super("thread group '" + threadGroupName + "' was not found.");
72         }
73     }
74 }
75
Popular Tags