private void unregisterPointer(Module module) {
   final ModulePointerImpl pointer = myPointers.remove(module);
   if (pointer != null) {
     pointer.moduleRemoved(module);
     myUnresolved.put(pointer.getModuleName(), pointer);
   }
 }
 private void moduleAppears(Module module) {
   ModulePointerImpl pointer = myUnresolved.remove(module.getName());
   if (pointer != null && pointer.getModule() == null) {
     pointer.moduleAdded(module);
     registerPointer(module, pointer);
   }
 }
 @NotNull
 @Override
 public ModulePointer create(@NotNull Module module) {
   ModulePointerImpl pointer = myPointers.get(module);
   if (pointer == null) {
     pointer = myUnresolved.get(module.getName());
     if (pointer == null) {
       pointer = new ModulePointerImpl(module);
     } else {
       pointer.moduleAdded(module);
     }
     registerPointer(module, pointer);
   }
   return pointer;
 }