Maven: refactoring

This commit is contained in:
Anton Makeev
2010-06-07 15:50:32 +04:00
parent b32cbc6d1f
commit fb7ea8ed46
2 changed files with 9 additions and 33 deletions
@@ -361,7 +361,7 @@ public class MavenDomProjectProcessorUtils {
final Function<MavenDomProfile, T> domProfileFunction,
final Function<MavenDomProjectModel, T> projectDomFunction,
final Set<MavenDomProjectModel> processed) {
Boolean aBoolean = new MyMavenParentProjectFileProcessor<Boolean>(project) {
Boolean aBoolean = new DomParentProjectFileProcessor<Boolean>(MavenProjectsManager.getInstance(project)) {
protected Boolean doProcessParent(VirtualFile parentFile) {
MavenDomProjectModel parentProjectDom = MavenDomUtil.getMavenDomProjectModel(project, parentFile);
if (parentProjectDom == null) return false;
@@ -437,20 +437,20 @@ public class MavenDomProjectProcessorUtils {
return false;
}
private abstract static class MyMavenParentProjectFileProcessor<T> extends MavenParentProjectFileProcessor<Boolean> {
private final Project myProject;
public abstract static class DomParentProjectFileProcessor<T> extends MavenParentProjectFileProcessor<T> {
private final MavenProjectsManager myManager;
public MyMavenParentProjectFileProcessor(Project project) {
myProject = project;
public DomParentProjectFileProcessor(MavenProjectsManager manager) {
myManager = manager;
}
protected VirtualFile findManagedFile(@NotNull MavenId id) {
MavenProject project = MavenProjectsManager.getInstance(myProject).findProject(id);
MavenProject project = myManager.findProject(id);
return project == null ? null : project.getFile();
}
@Nullable
public Boolean process(@NotNull MavenDomProjectModel projectDom) {
public T process(@NotNull MavenDomProjectModel projectDom) {
MavenDomParent parent = projectDom.getMavenParent();
MavenParentDesc parentDesc = null;
if (DomUtil.hasXml(parent)) {
@@ -463,7 +463,7 @@ public class MavenDomProjectProcessorUtils {
parentDesc = new MavenParentDesc(parentId, parentRelativePath);
}
return process(MavenProjectsManager.getInstance(myProject).getGeneralSettings(), MavenDomUtil.getVirtualFile(projectDom), parentDesc);
return process(myManager.getGeneralSettings(), MavenDomUtil.getVirtualFile(projectDom), parentDesc);
}
}
@@ -181,7 +181,7 @@ public class MavenPropertyPsiReference extends MavenPsiReference {
return MavenDomUtil.findTag(projectDom, path.replace("project.", "project.parent."));
}
result = new MyMavenParentProjectFileProcessor<PsiElement>() {
result = new MavenDomProjectProcessorUtils.DomParentProjectFileProcessor<PsiElement>(myProjectsManager) {
protected PsiElement doProcessParent(VirtualFile parentFile) {
MavenDomProjectModel parentProjectDom = MavenDomUtil.getMavenDomProjectModel(myProject, parentFile);
return resolveModelProperty(parentProjectDom, path, recursionGuard);
@@ -357,28 +357,4 @@ public class MavenPropertyPsiReference extends MavenPsiReference {
return null;
}
}
private abstract class MyMavenParentProjectFileProcessor<T> extends MavenParentProjectFileProcessor<T> {
protected VirtualFile findManagedFile(@NotNull MavenId id) {
MavenProject project = myProjectsManager.findProject(id);
return project == null ? null : project.getFile();
}
@Nullable
public T process(@NotNull MavenDomProjectModel projectDom) {
MavenDomParent parent = projectDom.getMavenParent();
MavenParentDesc parentDesc = null;
if (DomUtil.hasXml(parent)) {
String parentGroupId = parent.getGroupId().getStringValue();
String parentArtifactId = parent.getArtifactId().getStringValue();
String parentVersion = parent.getVersion().getStringValue();
String parentRelativePath = parent.getRelativePath().getStringValue();
if (StringUtil.isEmptyOrSpaces(parentRelativePath)) parentRelativePath = "../pom.xml";
MavenId parentId = new MavenId(parentGroupId, parentArtifactId, parentVersion);
parentDesc = new MavenParentDesc(parentId, parentRelativePath);
}
return process(myProjectsManager.getGeneralSettings(), MavenDomUtil.getVirtualFile(projectDom), parentDesc);
}
}
}