|
What this is
Other links
The source code
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.debugger.jpda;
import java.util.HashSet;
import org.netbeans.api.debugger.DebuggerInfo;
import org.netbeans.api.debugger.DebuggerManager;
import org.netbeans.api.debugger.Session;
import org.netbeans.api.debugger.jpda.JPDADebugger;
import org.netbeans.api.debugger.jpda.LaunchingDICookie;
import org.netbeans.spi.debugger.SessionProvider;
import org.netbeans.spi.debugger.ContextProvider;
/**
*
* @author Jan Jancura
*/
public class LaunchingSessionProvider extends SessionProvider {
private ContextProvider contextProvider;
private LaunchingDICookie launchingCookie;
public LaunchingSessionProvider (ContextProvider contextProvider) {
this.contextProvider = contextProvider;
launchingCookie = (LaunchingDICookie) contextProvider.lookupFirst
(null, LaunchingDICookie.class);
};
public String getSessionName () {
String processName = (String) contextProvider.lookupFirst
(null, String.class);
if (processName != null)
return processName;
String sessionName = launchingCookie.getClassName ();
int i = sessionName.lastIndexOf ('.');
if (i >= 0)
sessionName = sessionName.substring (i + 1);
return findUnique (sessionName);
};
public String getLocationName () {
return "localhost";
}
public String getTypeID () {
return JPDADebugger.SESSION_ID;
}
public Object[] getServices () {
return new Object [0];
}
static String findUnique (String sessionName) {
DebuggerManager cd = DebuggerManager.getDebuggerManager ();
Session[] ds = cd.getSessions ();
// 1) finds all already used indexes and puts them to HashSet
int i, k = ds.length;
HashSet m = new HashSet ();
for (i = 0; i < k; i++) {
String pn = ds [i].getName ();
if (!pn.startsWith (sessionName)) continue;
if (pn.equals (sessionName)) {
m.add (new Integer (0));
continue;
}
try {
int t = Integer.parseInt (pn.substring (sessionName.length ()));
m.add (new Integer (t));
} catch (Exception e) {
}
}
// 2) finds first unused index in m
k = m.size ();
for (i = 0; i < k; i++)
if (!m.contains (new Integer (i)))
break;
if (i > 0) sessionName = sessionName + i;
return sessionName;
};
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.