maven: refactorings (IDEA-53947, IDEA-53954, etc. )

This commit is contained in:
sergey.vasiliev
2010-04-14 16:01:28 +04:00
parent f2a05352d8
commit 7c8652e299
4 changed files with 23 additions and 23 deletions
@@ -37,21 +37,26 @@ public class MavenDomProjectProcessorUtils {
}
@NotNull
public static List<MavenDomProjectModel> collectChildrenProjects(@NotNull final MavenDomProjectModel model) {
public static Set<MavenDomProjectModel> getChildrenProjects(@NotNull final MavenDomProjectModel model) {
Set<MavenDomProjectModel> models = new HashSet<MavenDomProjectModel>();
collectChildrenProjects(model, models);
return models;
}
private static void collectChildrenProjects(@NotNull final MavenDomProjectModel model, @NotNull Set<MavenDomProjectModel> models) {
MavenProject mavenProject = MavenDomUtil.findProject(model);
if (mavenProject != null) {
final Project project = model.getManager().getProject();
Set<MavenProject> inheritors = MavenProjectsManager.getInstance(project).findInheritors(mavenProject);
return ContainerUtil.mapNotNull(inheritors, new Function<MavenProject, MavenDomProjectModel>() {
public MavenDomProjectModel fun(MavenProject childProject) {
return MavenDomUtil.getMavenDomProjectModel(project, childProject.getFile());
for (MavenProject inheritor : MavenProjectsManager.getInstance(project).findInheritors(mavenProject)) {
MavenDomProjectModel inheritorProjectModel = MavenDomUtil.getMavenDomProjectModel(project, inheritor.getFile());
if (inheritorProjectModel != null && !models.contains(inheritorProjectModel)) {
models.add(inheritorProjectModel);
collectChildrenProjects(inheritorProjectModel, models);
}
});
}
}
return Collections.emptyList();
}
@NotNull
public static Set<MavenDomProjectModel> collectParentProjects(@NotNull final MavenDomProjectModel projectDom,
@@ -183,15 +183,8 @@ public class MavenDomGutterAnnotator implements Annotator {
private static void annotateMavenDomProjectChildren(MavenDomProjectModel model, AnnotationHolder holder) {
MavenProject mavenProject = MavenDomUtil.findProject(model);
if (mavenProject != null) {
final Project project = model.getManager().getProject();
Set<MavenProject> inheritors = MavenProjectsManager.getInstance(project).findInheritors(mavenProject);
Set<MavenDomProjectModel> children = MavenDomProjectProcessorUtils.getChildrenProjects(model);
List<MavenDomProjectModel> children = ContainerUtil.mapNotNull(inheritors, new Function<MavenProject, MavenDomProjectModel>() {
public MavenDomProjectModel fun(MavenProject childProject) {
return MavenDomUtil.getMavenDomProjectModel(project, childProject.getFile());
}
});
if (children.size() > 0) {
NavigationGutterIconBuilder.create(MavenIcons.CHILDREN_PROJECTS, MAVEN_PROJECT_CONVERTER).
setTargets(children).
@@ -205,16 +205,16 @@ public class IntroducePropertyAction extends BaseRefactoringAction {
ApplicationManager.getApplication().runReadAction(new Runnable() {
public void run() {
collectUsages(myModel);
for (MavenDomProjectModel model : MavenDomProjectProcessorUtils.collectChildrenProjects(myModel)) {
for (MavenDomProjectModel model : MavenDomProjectProcessorUtils.getChildrenProjects(myModel)) {
collectUsages(model);
}
}
private void collectUsages(@NotNull MavenDomProjectModel model) {
if (model.isValid()) {
XmlElement root = model.getXmlElement();
final XmlElement root = model.getXmlElement();
if (root != null) {
root.accept(new XmlElementVisitor() {
root.acceptChildren(new XmlElementVisitor() {
@Override
public void visitXmlText(XmlText text) {
@@ -226,7 +226,10 @@ public class IntroducePropertyAction extends BaseRefactoringAction {
@Override
public void visitXmlAttributeValue(XmlAttributeValue value) {
usages.addAll(getUsages(value));
XmlTag xmlTag = PsiTreeUtil.getParentOfType(value, XmlTag.class);
if (xmlTag != null && !xmlTag.equals(root)) {
usages.addAll(getUsages(value));
}
}
@Override
@@ -26,7 +26,6 @@ import com.intellij.refactoring.introduceVariable.IntroduceVariableHandler;
import com.intellij.refactoring.ui.NameSuggestionsField;
import com.intellij.util.Function;
import com.intellij.util.containers.OrderedSet;
import com.intellij.util.xml.DomBundle;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.dom.MavenDomBundle;
import org.jetbrains.idea.maven.dom.MavenDomProjectProcessorUtils;
@@ -212,7 +211,7 @@ public class IntroducePropertyDialog extends DialogWrapper {
if (isPropertyExist(text, project)) return true;
for (MavenDomProjectModel child : MavenDomProjectProcessorUtils.collectChildrenProjects(project)) {
for (MavenDomProjectModel child : MavenDomProjectProcessorUtils.getChildrenProjects(project)) {
if (isPropertyExist(text, child)) return true;
}