Search in sources :

Example 1 with BaseComponent

use of com.intellij.openapi.components.BaseComponent in project intellij-community by JetBrains.

the class ComponentManagerImpl method registerComponentInstance.

private void registerComponentInstance(@NotNull Object instance) {
    myInstantiatedComponentCount++;
    if (instance instanceof com.intellij.openapi.Disposable) {
        Disposer.register(this, (com.intellij.openapi.Disposable) instance);
    }
    if (!(instance instanceof BaseComponent)) {
        return;
    }
    BaseComponent baseComponent = (BaseComponent) instance;
    String componentName = baseComponent.getComponentName();
    if (myNameToComponent.containsKey(componentName)) {
        BaseComponent loadedComponent = myNameToComponent.get(componentName);
        // component may have been already loaded by PicoContainer, so fire error only if components are really different
        if (!instance.equals(loadedComponent)) {
            LOG.error("Component name collision: " + componentName + " " + (loadedComponent == null ? "null" : loadedComponent.getClass()) + " and " + instance.getClass());
        }
    } else {
        myNameToComponent.put(componentName, baseComponent);
    }
    myBaseComponents.add(baseComponent);
}
Also used : BaseComponent(com.intellij.openapi.components.BaseComponent)

Aggregations

BaseComponent (com.intellij.openapi.components.BaseComponent)1