1 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 31 class IdentContextSupport extends Object { 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 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 |