project model: added method to replace all exclude patterns

This commit is contained in:
nik
2017-05-26 14:43:17 +03:00
parent 20318e61a7
commit d1dd6c4e97
3 changed files with 29 additions and 1 deletions
@@ -204,4 +204,5 @@ public interface ContentEntry extends Synthetic {
void addExcludePattern(@NotNull String pattern);
void removeExcludePattern(@NotNull String pattern);
void setExcludePatterns(@NotNull List<String> patterns);
}
@@ -319,7 +319,7 @@ public class ContentEntryImpl extends RootModelComponentBase implements ContentE
@NotNull
@Override
public List<String> getExcludePatterns() {
return myExcludePatterns != null ? myExcludePatterns : Collections.emptyList();
return myExcludePatterns != null ? Collections.unmodifiableList(myExcludePatterns) : Collections.emptyList();
}
@Override
@@ -340,6 +340,22 @@ public class ContentEntryImpl extends RootModelComponentBase implements ContentE
}
}
@Override
public void setExcludePatterns(@NotNull List<String> patterns) {
if (patterns.isEmpty()) {
myExcludePatterns = null;
}
else {
if (myExcludePatterns == null) {
myExcludePatterns = new SmartList<>();
}
else {
myExcludePatterns.clear();
}
myExcludePatterns.addAll(patterns);
}
}
private ExcludeFolder addExcludeFolder(ExcludeFolder f) {
Disposer.register(this, (Disposable)f);
myExcludeFolders.add(f);
@@ -312,6 +312,17 @@ public class JpsContentEntry implements ContentEntry, Disposable {
myModule.removeExcludePattern(getUrl(), pattern);
}
@Override
public void setExcludePatterns(@NotNull List<String> patterns) {
for (String pattern : myExcludePatterns) {
myModule.removeExcludePattern(getUrl(), pattern);
}
myExcludePatterns.clear();
for (String pattern : patterns) {
addExcludePattern(pattern);
}
}
@Override
public boolean isSynthetic() {
return false;