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);
}