01: /*
02: * The contents of this file are subject to the terms of the Common Development
03: * and Distribution License (the License). You may not use this file except in
04: * compliance with the License.
05: *
06: * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
07: * or http://www.netbeans.org/cddl.txt.
08:
09: * When distributing Covered Code, include this CDDL Header Notice in each file
10: * and include the License file at http://www.netbeans.org/cddl.txt.
11: * If applicable, add the following below the CDDL Header, with the fields
12: * enclosed by brackets [] replaced by your own identifying information:
13: * "Portions Copyrighted [year] [name of copyright owner]"
14: *
15: * The Original Software is NetBeans. The Initial Developer of the Original
16: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17: * Microsystems, Inc. All Rights Reserved.
18: */
19:
20: package org.netbeans.modules.bpel.debugger;
21:
22: import java.util.Map;
23: import org.netbeans.api.debugger.Session;
24: import org.netbeans.modules.bpel.debugger.api.AttachingCookie;
25: import org.netbeans.modules.bpel.debugger.api.SessionCookie;
26: import org.netbeans.spi.debugger.ContextProvider;
27:
28: /**
29: *
30: * @author Alexander Zgursky
31: */
32: public class DebugProjectSessionCookie implements SessionCookie {
33: private ContextProvider myContextProvider;
34: private String mySessionId;
35:
36: /** Creates a new instance of AttachingSessionCookie */
37: public DebugProjectSessionCookie(ContextProvider contextProvider) {
38: myContextProvider = contextProvider;
39: }
40:
41: public String getSessionId() {
42: if (mySessionId != null) {
43: return mySessionId;
44: } else {
45: Map params = myContextProvider.lookupFirst(null, Map.class);
46: if (params != null) {
47: String projectBaseDir = (String) params
48: .get("projectBaseDir");
49: if (projectBaseDir != null) {
50: mySessionId = projectBaseDir;
51: return mySessionId;
52: }
53: }
54:
55: //some deffensive logic
56: Session session = myContextProvider.lookupFirst(null,
57: Session.class);
58: mySessionId = session.getName();
59: return mySessionId;
60: }
61: }
62: }
|