simplify — reduce class casts
authorVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Wed, 26 Oct 2016 14:17:38 +0000 (16:17 +0200)
committerVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Wed, 26 Oct 2016 14:42:11 +0000 (16:42 +0200)
java/java-tests/testSrc/com/intellij/codeInspection/ex/InspectionProfileTest.java
platform/analysis-api/src/com/intellij/profile/ProfileManager.java
platform/analysis-impl/src/com/intellij/codeInspection/ex/InspectionProfileImpl.java
platform/analysis-impl/src/com/intellij/profile/codeInspection/BaseInspectionProfileManager.kt
platform/analysis-impl/src/com/intellij/profile/codeInspection/InspectionProfileLoadUtil.java
platform/analysis-impl/src/com/intellij/profile/codeInspection/ProjectInspectionProfileManager.kt
platform/lang-impl/src/com/intellij/codeInspection/ex/ApplicationInspectionProfileManager.java
platform/lang-impl/src/com/intellij/profile/codeInspection/ui/SingleInspectionProfilePanel.java
platform/lang-impl/src/com/intellij/profile/codeInspection/ui/header/InspectionToolsConfigurable.java

index 975f15ccfe43242b7e379b29af3f55ae52170ecb..920ace8adf1afe50c9ec2803706e293a83876e7e 100644 (file)
@@ -24,8 +24,8 @@ import com.intellij.codeInspection.dataFlow.DataFlowInspection;
 import com.intellij.codeInspection.deadCode.UnusedDeclarationInspectionBase;
 import com.intellij.codeInspection.unusedSymbol.UnusedSymbolLocalInspectionBase;
 import com.intellij.openapi.util.JDOMUtil;
-import com.intellij.openapi.util.WriteExternalException;
 import com.intellij.profile.Profile;
+import com.intellij.profile.codeInspection.BaseInspectionProfileManager;
 import com.intellij.profile.codeInspection.InspectionProfileManager;
 import com.intellij.profile.codeInspection.ProjectInspectionProfileManager;
 import com.intellij.profile.codeInspection.ui.header.InspectionToolsConfigurable;
@@ -82,14 +82,15 @@ public class InspectionProfileTest extends LightIdeaTestCase {
   }
 
   private static InspectionProfileImpl createProfile() {
-    return new InspectionProfileImpl(PROFILE, InspectionToolRegistrar.getInstance(), InspectionProfileManager.getInstance(), InspectionProfileImpl.getBaseProfile(), null);
+    return new InspectionProfileImpl(PROFILE, InspectionToolRegistrar.getInstance(), InspectionProfileImpl.getBaseProfile());
   }
+
   private static InspectionProfileImpl createProfile(@NotNull InspectionProfileImpl base) {
-    return new InspectionProfileImpl(PROFILE, InspectionToolRegistrar.getInstance(), InspectionProfileManager.getInstance(), base, null);
+    return new InspectionProfileImpl(PROFILE, InspectionToolRegistrar.getInstance(), base);
   }
 
   public void testSameNameSharedProfile() throws Exception {
-    InspectionProfileManager profileManager = InspectionProfileManager.getInstance();
+    BaseInspectionProfileManager profileManager = (BaseInspectionProfileManager)InspectionProfileManager.getInstance();
     InspectionProfileImpl localProfile = createProfile();
     profileManager.updateProfile(localProfile);
 
@@ -290,7 +291,8 @@ public class InspectionProfileTest extends LightIdeaTestCase {
 
     Element toImportElement = profile.writeScheme();
     final InspectionProfileImpl importedProfile =
-      InspectionToolsConfigurable.importInspectionProfile(toImportElement, InspectionProfileManager.getInstance(), getProject(), null);
+      InspectionToolsConfigurable.importInspectionProfile(toImportElement,
+                                                          (BaseInspectionProfileManager)InspectionProfileManager.getInstance(), getProject(), null);
 
     //check merged
     Element mergedElement = JDOMUtil.loadDocument(mergedText).getRootElement();
@@ -534,13 +536,13 @@ public class InspectionProfileTest extends LightIdeaTestCase {
                  "</profile>", serialize(profile));
   }
 
-  private static String serialize(InspectionProfileImpl profile) throws WriteExternalException {
+  private static String serialize(InspectionProfileImpl profile) {
     return JDOMUtil.writeElement(profile.writeScheme());
   }
 
   private static InspectionProfileImpl createProfile(@NotNull InspectionToolRegistrar registrar) {
-    InspectionProfileImpl base = new InspectionProfileImpl("Base", registrar, InspectionProfileManager.getInstance(), null, null);
-    return new InspectionProfileImpl("Foo", registrar, InspectionProfileManager.getInstance(), base, null);
+    InspectionProfileImpl base = new InspectionProfileImpl("Base", registrar);
+    return new InspectionProfileImpl("Foo", registrar, base);
   }
 
   public void testGlobalInspectionContext() throws Exception {
@@ -579,7 +581,7 @@ public class InspectionProfileTest extends LightIdeaTestCase {
   }
 
   public void testDoNotInstantiateOnSave() throws Exception {
-    InspectionProfileImpl profile = new InspectionProfileImpl("profile", InspectionToolRegistrar.getInstance(), InspectionProfileManager.getInstance(), InspectionProfileImpl.getBaseProfile(), null);
+    InspectionProfileImpl profile = new InspectionProfileImpl("profile", InspectionToolRegistrar.getInstance(), InspectionProfileImpl.getBaseProfile());
     assertEquals(0, countInitializedTools(profile));
     InspectionToolWrapper[] toolWrappers = profile.getInspectionTools(null);
     assertTrue(toolWrappers.length > 0);
index ef388f198ff3acdcb937c7c1dba6c53e836d2b98..b76209e3425838f3ded993501862c1fe2812a133 100644 (file)
@@ -34,8 +34,6 @@ public interface ProfileManager {
     return getProfile(name, true);
   }
 
-  void updateProfile(@NotNull Profile profile);
-
   @NotNull
   String[] getAvailableProfileNames();
 
index 74d51d5c979803251e5fd2f6dd455489df8960a6..610d2790f5f38ee432dd63f522d313b5bcec921e 100644 (file)
@@ -31,9 +31,9 @@ import com.intellij.openapi.progress.ProcessCanceledException;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.util.*;
 import com.intellij.profile.ProfileEx;
+import com.intellij.profile.codeInspection.BaseInspectionProfileManager;
 import com.intellij.profile.codeInspection.InspectionProfileManager;
 import com.intellij.profile.codeInspection.ProjectInspectionProfileManager;
-import com.intellij.profile.codeInspection.SeverityProvider;
 import com.intellij.project.ProjectKt;
 import com.intellij.psi.PsiElement;
 import com.intellij.psi.search.scope.packageSet.NamedScope;
@@ -88,7 +88,7 @@ public class InspectionProfileImpl extends ProfileEx implements ModifiableModel,
   private final Object myLock = new Object();
 
   private SchemeDataHolder<? super InspectionProfileImpl> myDataHolder;
-  private InspectionProfileManager myProfileManager;
+  private BaseInspectionProfileManager myProfileManager;
 
   InspectionProfileImpl(@NotNull InspectionProfileImpl inspectionProfile) {
     this(inspectionProfile.getName(), inspectionProfile.myRegistrar, inspectionProfile.getProfileManager(), inspectionProfile.myBaseProfile, null);
@@ -102,17 +102,27 @@ public class InspectionProfileImpl extends ProfileEx implements ModifiableModel,
 
   public InspectionProfileImpl(@NotNull String profileName,
                                @NotNull InspectionToolRegistrar registrar,
-                               @NotNull InspectionProfileManager profileManager) {
+                               @NotNull BaseInspectionProfileManager profileManager) {
     this(profileName, registrar, profileManager, getBaseProfile(), null);
   }
 
   public InspectionProfileImpl(@NotNull @NonNls String profileName) {
-    this(profileName, InspectionToolRegistrar.getInstance(), InspectionProfileManager.getInstance(), null, null);
+    this(profileName, InspectionToolRegistrar.getInstance());
+  }
+
+  public InspectionProfileImpl(@NotNull String profileName, @NotNull InspectionToolRegistrar registrar) {
+    this(profileName, registrar, (BaseInspectionProfileManager)InspectionProfileManager.getInstance(), null, null);
+  }
+
+  public InspectionProfileImpl(@NotNull String profileName,
+                               @NotNull InspectionToolRegistrar registrar,
+                               @Nullable InspectionProfileImpl baseProfile) {
+    this(profileName, registrar, (BaseInspectionProfileManager)InspectionProfileManager.getInstance(), baseProfile, null);
   }
 
   public InspectionProfileImpl(@NotNull String profileName,
                                @NotNull InspectionToolRegistrar registrar,
-                               @NotNull InspectionProfileManager profileManager,
+                               @NotNull BaseInspectionProfileManager profileManager,
                                @Nullable InspectionProfileImpl baseProfile,
                                @Nullable SchemeDataHolder<? super InspectionProfileImpl> dataHolder) {
     super(profileName);
@@ -125,7 +135,7 @@ public class InspectionProfileImpl extends ProfileEx implements ModifiableModel,
 
   public InspectionProfileImpl(@NotNull String profileName,
                                @NotNull InspectionToolRegistrar registrar,
-                               @NotNull InspectionProfileManager profileManager,
+                               @NotNull BaseInspectionProfileManager profileManager,
                                @Nullable SchemeDataHolder<? super InspectionProfileImpl> dataHolder) {
     this(profileName, registrar, profileManager, getBaseProfile(), dataHolder);
   }
@@ -140,7 +150,7 @@ public class InspectionProfileImpl extends ProfileEx implements ModifiableModel,
       public List<InspectionToolWrapper> createTools() {
         return toolWrappers;
       }
-    }, InspectionProfileManager.getInstance());
+    }, (BaseInspectionProfileManager)InspectionProfileManager.getInstance());
     for (InspectionToolWrapper toolWrapper : toolWrappers) {
       profile.enableTool(toolWrapper.getShortName(), project);
     }
@@ -166,11 +176,11 @@ public class InspectionProfileImpl extends ProfileEx implements ModifiableModel,
 
   @NotNull
   @Transient
-  public InspectionProfileManager getProfileManager() {
+  public BaseInspectionProfileManager getProfileManager() {
     return myProfileManager;
   }
 
-  public void setProfileManager(@NotNull InspectionProfileManager profileManager) {
+  public void setProfileManager(@NotNull BaseInspectionProfileManager profileManager) {
     myProfileManager = profileManager;
   }
 
@@ -228,7 +238,7 @@ public class InspectionProfileImpl extends ProfileEx implements ModifiableModel,
     Project project = element == null ? null : element.getProject();
     final ToolsImpl tools = getTools(inspectionToolKey.toString(), project);
     HighlightDisplayLevel level = tools != null ? tools.getLevel(element) : HighlightDisplayLevel.WARNING;
-    if (!((SeverityProvider)getProfileManager()).getOwnSeverityRegistrar().isSeverityValid(level.getSeverity().getName())) {
+    if (!getProfileManager().getOwnSeverityRegistrar().isSeverityValid(level.getSeverity().getName())) {
       level = HighlightDisplayLevel.WARNING;
       setErrorLevel(inspectionToolKey, level, project);
     }
@@ -242,7 +252,7 @@ public class InspectionProfileImpl extends ProfileEx implements ModifiableModel,
     final Element highlightElement = element.getChild(USED_LEVELS);
     if (highlightElement != null) {
       // from old profiles
-      ((SeverityProvider)getProfileManager()).getOwnSeverityRegistrar().readExternal(highlightElement);
+      getProfileManager().getOwnSeverityRegistrar().readExternal(highlightElement);
     }
 
     String version = element.getAttributeValue(VERSION_TAG);
index 2ac621df6eee876c655a5e316a16feb6dbdefe56..6d3b3590f600986b6e92de0d087ecd4042ba0494 100644 (file)
@@ -85,8 +85,8 @@ abstract class BaseInspectionProfileManager(messageBus: MessageBus) :  Inspectio
   open protected fun schemeRemoved(scheme: InspectionProfile) {
   }
 
-  override fun updateProfile(profile: Profile) {
-    schemeManager.addScheme(profile as InspectionProfileImpl)
+  open fun updateProfile(profile: InspectionProfileImpl) {
+    schemeManager.addScheme(profile)
     fireProfileChanged(profile)
   }
 }
index 150ae9f0173a0725aa8e65b990a82e4409ca5a5f..96c240864f614f166785b2404702f642db332bef 100644 (file)
@@ -47,7 +47,8 @@ public class InspectionProfileLoadUtil {
                                            @NotNull InspectionToolRegistrar registrar,
                                            @NotNull InspectionProfileManager profileManager) throws JDOMException, IOException, InvalidDataException {
     Element element = JDOMUtil.load(file);
-    InspectionProfileImpl profile = new InspectionProfileImpl(getProfileName(file, element), registrar, profileManager);
+    InspectionProfileImpl profile = new InspectionProfileImpl(getProfileName(file, element), registrar,
+                                                              (BaseInspectionProfileManager)profileManager);
     final Element profileElement = element.getChild("profile");
     if (profileElement != null) {
       element = profileElement;
index f6a759bfbe13cfa014a37d99ccfca326a1a3f874..4e6a51ffe18effc2ab63401cd89ca36e72db4cd1 100644 (file)
@@ -164,10 +164,10 @@ class ProjectInspectionProfileManager(val project: Project,
 
   fun isCurrentProfileInitialized() = currentProfile.wasInitialized()
 
-  @Synchronized override fun updateProfile(profile: Profile) {
+  @Synchronized override fun updateProfile(profile: InspectionProfileImpl) {
     super.updateProfile(profile)
 
-    (profile as InspectionProfileImpl).initInspectionTools(project)
+    profile.initInspectionTools(project)
   }
 
   override fun schemeRemoved(scheme: InspectionProfile) {
index 9092c003eb2fbf509a0f94a7d0c2dcbefc400f47..ceb5e316d9be22b72899ba50b20320832e79699c 100644 (file)
@@ -205,9 +205,9 @@ public class ApplicationInspectionProfileManager extends BaseInspectionProfileMa
   }
 
   @Override
-  public void updateProfile(@NotNull Profile profile) {
+  public void updateProfile(@NotNull InspectionProfileImpl profile) {
     super.updateProfile(profile);
-    updateProfileImpl((InspectionProfileImpl)profile);
+    updateProfileImpl(profile);
   }
 
   private static void updateProfileImpl(@NotNull InspectionProfileImpl profile) {
index 04580c8bc0d07eb4473c8559a1aaf7e58cac4220..0fcf0f0f86e307a3cc9b516fca7e9eebc14adcd3 100644 (file)
@@ -45,6 +45,7 @@ import com.intellij.openapi.util.Disposer;
 import com.intellij.openapi.util.JDOMUtil;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.profile.ProfileManager;
+import com.intellij.profile.codeInspection.BaseInspectionProfileManager;
 import com.intellij.profile.codeInspection.InspectionProfileManager;
 import com.intellij.profile.codeInspection.ProjectInspectionProfileManager;
 import com.intellij.profile.codeInspection.SeverityProvider;
@@ -1120,7 +1121,7 @@ public class SingleInspectionProfilePanel extends JPanel {
     }
     final InspectionProfileImpl selectedProfile = getProfile();
 
-    InspectionProfileManager profileManager = selectedProfile.isProjectLevel() ? myProjectProfileManager : InspectionProfileManager.getInstance();
+    BaseInspectionProfileManager profileManager = selectedProfile.isProjectLevel() ? myProjectProfileManager : (BaseInspectionProfileManager)InspectionProfileManager.getInstance();
     InspectionProfileImpl parentProfile = (InspectionProfileImpl)selectedProfile.getParentProfile();
 
     if (parentProfile.getProfileManager().getProfile(parentProfile.getName(), false) == parentProfile) {
index f9fe34273a3b39a459d64dcfc54cca40dd2fd01b..005a723ac46fe34666298c1249a93b71ec74da20 100644 (file)
@@ -48,6 +48,7 @@ import com.intellij.openapi.vfs.VfsUtilCore;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.profile.Profile;
 import com.intellij.profile.ProfileManager;
+import com.intellij.profile.codeInspection.BaseInspectionProfileManager;
 import com.intellij.profile.codeInspection.InspectionProfileManager;
 import com.intellij.profile.codeInspection.ProjectInspectionProfileManager;
 import com.intellij.profile.codeInspection.ui.ErrorsConfigurable;
@@ -82,7 +83,7 @@ public abstract class InspectionToolsConfigurable extends BaseConfigurable
   private static final Logger LOG = Logger.getInstance(InspectionToolsConfigurable.class);
   private static final Pattern COPIED_PROFILE_SUFFIX_PATTERN = Pattern.compile("(.*\\s*copy)\\s*(\\d*)");
 
-  protected final InspectionProfileManager myApplicationProfileManager;
+  protected final BaseInspectionProfileManager myApplicationProfileManager;
   protected final ProjectInspectionProfileManager myProjectProfileManager;
   private final List<SingleInspectionProfilePanel> myPanels = new ArrayList<>();
   private final List<InspectionProfileImpl> myDeletedProfiles = new ArrayList<>();
@@ -93,7 +94,7 @@ public abstract class InspectionToolsConfigurable extends BaseConfigurable
 
   public InspectionToolsConfigurable(@NotNull ProjectInspectionProfileManager projectProfileManager) {
     myProjectProfileManager = projectProfileManager;
-    myApplicationProfileManager = InspectionProfileManager.getInstance();
+    myApplicationProfileManager = (BaseInspectionProfileManager)InspectionProfileManager.getInstance();
   }
 
   private static JComponent withBorderOnTop(final JComponent component) {
@@ -138,7 +139,7 @@ public abstract class InspectionToolsConfigurable extends BaseConfigurable
       }
     }
 
-    InspectionProfileManager profileManager = isProjectLevel ? myProjectProfileManager : myApplicationProfileManager;
+    BaseInspectionProfileManager profileManager = isProjectLevel ? myProjectProfileManager : myApplicationProfileManager;
     InspectionProfileImpl inspectionProfile =
       new InspectionProfileImpl(profileDefaultName, InspectionToolRegistrar.getInstance(), profileManager);
 
@@ -422,7 +423,7 @@ public abstract class InspectionToolsConfigurable extends BaseConfigurable
   }
 
   public static InspectionProfileImpl importInspectionProfile(@NotNull Element rootElement,
-                                                              @NotNull InspectionProfileManager profileManager,
+                                                              @NotNull BaseInspectionProfileManager profileManager,
                                                               @NotNull Project project,
                                                               @Nullable JPanel anchorPanel)
     throws JDOMException, IOException, InvalidDataException {