KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > java > bridge > IdentContextSupport


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * 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 package org.netbeans.modules.java.bridge;
20
21 import java.util.*;
22 import java.lang.ref.*;
23
24 import org.openide.src.Identifier;
25
26 /**
27  *
28  * @author sdedic
29  * @version
30  */

31 class IdentContextSupport extends Object JavaDoc {
32     Map identifierSet;
33
34     public IdentContextSupport(int capacity) {
35         identifierSet = new HashMap(capacity * 4 / 3);
36     }
37
38     public Identifier create(Identifier id, int status) {
39         Reference refV = (Reference)identifierSet.get(id.getSourceName());
40         if (refV != null) {
41             Identifier oldID = (Identifier)refV.get();
42             if (oldID != null) {
43                 if (oldID.getResolutionStatus() == status &&
44                     oldID.getFullName() == id.getFullName())
45                     // exactly the same identifier with a matching status.
46
return oldID;
47             }
48         }
49         if (id.getResolutionStatus() != status) {
50             id = Identifier.create(id.getFullName(), id.getSourceName(), status);
51         }
52         identifierSet.put(id.getSourceName(), new WeakReference(id));
53         return id;
54     }
55     
56     public boolean checkContext(Identifier id) {
57         Reference refV = (Reference)identifierSet.get(id);
58         if (refV == null)
59             return false;
60         Identifier x = (Identifier)refV.get();
61         return x == id;
62     }
63 }
64
Popular Tags