decouple TypeConversionUtil from ProjectRootManager

This commit is contained in:
Dmitry Jemerov
2011-09-20 12:54:54 +02:00
parent cb9bc52dc1
commit 04eab9fac4
4 changed files with 67 additions and 2 deletions
@@ -17,7 +17,7 @@ package com.intellij.psi.util;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ProjectRootManager;
import com.intellij.openapi.roots.ProjectRootModificationTracker;
import com.intellij.openapi.util.Key;
import com.intellij.pom.java.LanguageLevel;
import com.intellij.psi.*;
@@ -802,7 +802,7 @@ public class TypeConversionUtil {
}
});
}
return Result.create(set, ProjectRootManager.getInstance(project));
return Result.create(set, ProjectRootModificationTracker.getInstance(project));
}
}, false));
}
@@ -0,0 +1,29 @@
/*
* Copyright 2000-2011 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.openapi.roots;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.ModificationTracker;
/**
* @author yole
*/
public abstract class ProjectRootModificationTracker implements ModificationTracker {
public static ProjectRootModificationTracker getInstance(Project project) {
return ServiceManager.getService(project, ProjectRootModificationTracker.class);
}
}
@@ -0,0 +1,34 @@
/*
* Copyright 2000-2011 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.openapi.roots;
import com.intellij.openapi.project.Project;
/**
* @author yole
*/
public class ProjectRootModificationTrackerImpl extends ProjectRootModificationTracker {
private final Project myProject;
public ProjectRootModificationTrackerImpl(Project project) {
myProject = project;
}
@Override
public long getModificationCount() {
return ProjectRootManager.getInstance(myProject).getModificationCount();
}
}
@@ -293,6 +293,8 @@
serviceImplementation="com.intellij.openapi.roots.impl.ProjectFileIndexImpl"/>
<projectService serviceInterface="com.intellij.psi.impl.source.resolve.ResolveCache"
serviceImplementation="com.intellij.psi.impl.source.resolve.ResolveCache"/>
<projectService serviceInterface="com.intellij.openapi.roots.ProjectRootModificationTracker"
serviceImplementation="com.intellij.openapi.roots.ProjectRootModificationTrackerImpl"/>
<colorSettingsPage implementation="com.intellij.openapi.options.colors.pages.GeneralColorsPage" id="general"/>
<colorSettingsPage implementation="com.intellij.openapi.options.colors.pages.ANSIColoredConsoleColorsPage" id="general"/>