diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/actions/MarkSourceRootAction.java b/platform/lang-impl/src/com/intellij/ide/projectView/actions/MarkSourceRootAction.java index 0a9679b42818..aaa21dc9e145 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/actions/MarkSourceRootAction.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/actions/MarkSourceRootAction.java @@ -22,7 +22,6 @@ import com.intellij.openapi.roots.SourceFolder; import com.intellij.openapi.roots.ui.configuration.ModuleSourceRootEditHandler; import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jps.model.JpsElement; import org.jetbrains.jps.model.module.JpsModuleSourceRootType; /** @@ -41,7 +40,7 @@ public class MarkSourceRootAction extends MarkRootActionBase { } protected void modifyRoots(VirtualFile vFile, ContentEntry entry) { - addSourceFolder(vFile, entry, myRootType); + entry.addSourceFolder(vFile, myRootType); } @Override @@ -61,9 +60,4 @@ public class MarkSourceRootAction extends MarkRootActionBase { } return false; } - - private static

void addSourceFolder(VirtualFile vFile, ContentEntry entry, - JpsModuleSourceRootType

markAsRootType) { - entry.addSourceFolder(vFile, markAsRootType, markAsRootType.createDefaultProperties()); - } } diff --git a/platform/projectModel-api/src/com/intellij/openapi/roots/ContentEntry.java b/platform/projectModel-api/src/com/intellij/openapi/roots/ContentEntry.java index d6e983cc3481..cfb71ea7efb9 100644 --- a/platform/projectModel-api/src/com/intellij/openapi/roots/ContentEntry.java +++ b/platform/projectModel-api/src/com/intellij/openapi/roots/ContentEntry.java @@ -125,6 +125,10 @@ public interface ContentEntry extends Synthetic {

SourceFolder addSourceFolder(@NotNull VirtualFile file, @NotNull JpsModuleSourceRootType

type, @NotNull P properties); + @NotNull +

+ SourceFolder addSourceFolder(@NotNull VirtualFile file, @NotNull JpsModuleSourceRootType

type); + /** * Adds a source or test source root under the content root. * diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentEntryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentEntryImpl.java index 085abe64b59e..1383ea75e01f 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentEntryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentEntryImpl.java @@ -207,6 +207,12 @@ public class ContentEntryImpl extends RootModelComponentBase implements ContentE return addSourceFolder(new SourceFolderImpl(file, JpsElementFactory.getInstance().createModuleSourceRoot(file.getUrl(), type, properties), this)); } + @NotNull + @Override + public

SourceFolder addSourceFolder(@NotNull VirtualFile file, @NotNull JpsModuleSourceRootType

type) { + return addSourceFolder(file, type, type.createDefaultProperties()); + } + @NotNull @Override public SourceFolder addSourceFolder(@NotNull String url, boolean isTestSource) { diff --git a/platform/projectModel-impl/src/com/intellij/project/model/impl/module/content/JpsContentEntry.java b/platform/projectModel-impl/src/com/intellij/project/model/impl/module/content/JpsContentEntry.java index 49a391d886b2..31c4c9f83631 100644 --- a/platform/projectModel-impl/src/com/intellij/project/model/impl/module/content/JpsContentEntry.java +++ b/platform/projectModel-impl/src/com/intellij/project/model/impl/module/content/JpsContentEntry.java @@ -182,6 +182,12 @@ public class JpsContentEntry implements ContentEntry, Disposable { return sourceFolder; } + @NotNull + @Override + public

SourceFolder addSourceFolder(@NotNull VirtualFile file, @NotNull JpsModuleSourceRootType

type) { + return addSourceFolder(file, type, type.createDefaultProperties()); + } + private SourceFolder addSourceFolder(final String url, boolean isTestSource, String packagePrefix) { final JavaSourceRootType rootType = isTestSource ? JavaSourceRootType.TEST_SOURCE : JavaSourceRootType.SOURCE; JpsSimpleElement properties = JpsElementFactory.getInstance().createSimpleElement(new JavaSourceRootProperties(packagePrefix)); diff --git a/platform/testFramework/src/com/intellij/testFramework/PsiTestUtil.java b/platform/testFramework/src/com/intellij/testFramework/PsiTestUtil.java index fd1e91d428eb..794da9486b09 100644 --- a/platform/testFramework/src/com/intellij/testFramework/PsiTestUtil.java +++ b/platform/testFramework/src/com/intellij/testFramework/PsiTestUtil.java @@ -43,8 +43,6 @@ import junit.framework.Assert; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jps.model.JpsElement; -import org.jetbrains.jps.model.JpsElementTypeWithDefaultProperties; import org.jetbrains.jps.model.java.JavaSourceRootType; import org.jetbrains.jps.model.module.JpsModuleSourceRootType; @@ -157,7 +155,7 @@ public class PsiTestUtil { public void consume(ModifiableRootModel model) { ContentEntry entry = findContentEntry(model, vDir); if (entry == null) entry = model.addContentEntry(vDir); - entry.addSourceFolder(vDir, rootType, ((JpsElementTypeWithDefaultProperties)rootType).createDefaultProperties()); + entry.addSourceFolder(vDir, rootType); } }); } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureUtil.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureUtil.java index 7e71010af35f..36ec3948b267 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureUtil.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcModuleStructureUtil.java @@ -49,9 +49,6 @@ import com.intellij.util.containers.MultiMap; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jps.model.JpsElementFactory; -import org.jetbrains.jps.model.JpsSimpleElement; -import org.jetbrains.jps.model.java.JavaSourceRootProperties; import org.jetbrains.jps.model.java.JavaSourceRootType; import org.jetbrains.jps.model.module.JpsModuleSourceRootType; @@ -87,7 +84,7 @@ public class MvcModuleStructureUtil { final MvcProjectStructure structure) { ModuleRootManager moduleRootManager = ModuleRootManager.getInstance(structure.myModule); - Map sourceRoots = new HashMap(); + Map> sourceRoots = new HashMap>(); for (ContentEntry entry : moduleRootManager.getContentEntries()) { for (SourceFolder folder : entry.getSourceFolders()) { sourceRoots.put(folder.getFile(), folder.getRootType()); @@ -99,7 +96,7 @@ public class MvcModuleStructureUtil { final List> actions = ContainerUtil.newArrayList(); for (Map.Entry, Collection> entry : structure.getSourceFolders().entrySet()) { - JpsModuleSourceRootType rootType = entry.getKey(); + JpsModuleSourceRootType rootType = entry.getKey(); for (String src : entry.getValue()) { addSourceFolder(root, src, rootType, actions, sourceRoots); @@ -145,7 +142,7 @@ public class MvcModuleStructureUtil { public static void removeSrcFolderFromRoots(final VirtualFile file, List> actions, - Map sourceRoots) { + Map> sourceRoots) { if (sourceRoots.containsKey(file)) { actions.add(new Consumer() { public void consume(ContentEntry contentEntry) { @@ -204,17 +201,17 @@ public class MvcModuleStructureUtil { return library.getModifiableModel(); } - public static void addSourceFolder(@NotNull VirtualFile root, - @NotNull String relativePath, - final JpsModuleSourceRootType rootType, - List> actions, - Map sourceRoots) { + private static void addSourceFolder(@NotNull VirtualFile root, + @NotNull String relativePath, + final JpsModuleSourceRootType rootType, + List> actions, + Map> sourceRoots) { final VirtualFile src = root.findFileByRelativePath(relativePath); if (src == null) { return; } - JpsModuleSourceRootType existingRootType = sourceRoots.get(src); + JpsModuleSourceRootType existingRootType = sourceRoots.get(src); if (rootType == JavaSourceRootType.TEST_SOURCE && (existingRootType != null && existingRootType != JavaSourceRootType.TEST_SOURCE)) { // see http://youtrack.jetbrains.net/issue/IDEA-70642 actions.add(new Consumer() { @@ -223,8 +220,7 @@ public class MvcModuleStructureUtil { for (SourceFolder folder : entry.getSourceFolders()) { if (Comparing.equal(folder.getFile(), src)) { entry.removeSourceFolder(folder); - JpsSimpleElement properties = JpsElementFactory.getInstance().createSimpleElement(new JavaSourceRootProperties("")); - entry.addSourceFolder(src, rootType, properties); + entry.addSourceFolder(src, rootType); break; } } @@ -235,8 +231,7 @@ public class MvcModuleStructureUtil { actions.add(new Consumer() { public void consume(ContentEntry contentEntry) { - JpsSimpleElement properties = JpsElementFactory.getInstance().createSimpleElement(new JavaSourceRootProperties("")); - contentEntry.addSourceFolder(src, rootType, properties); + contentEntry.addSourceFolder(src, rootType); } }); } @@ -262,13 +257,13 @@ public class MvcModuleStructureUtil { } } - public static boolean checkValidity(VirtualFile pluginDir) { + private static boolean checkValidity(VirtualFile pluginDir) { pluginDir.refresh(false, false); return pluginDir.isValid(); } - public static List> getUpdateProjectStructureActions(Collection appRoots, - MvcProjectStructure structure) { + private static List> getUpdateProjectStructureActions(Collection appRoots, + MvcProjectStructure structure) { for (final VirtualFile appRoot : ModuleRootManager.getInstance(structure.myModule).getContentRoots()) { appRoot.refresh(false, false); }