ChooseByNameModel () { if (myBaseClass == null) { return new MyGotoClassModel<>(myProject, this); } else { BaseClassInheritorsProvider<T> inheritorsProvider = getInheritorsProvider(myBaseClass); if (inheritorsProvider != null) { return new SubclassGotoClassModel<>(myProject, this, inheritorsProvider); } else { throw new IllegalStateException("inheritors provider is null"); } } }