diff --git a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java index 6d34c7f0dc69..2e8f075d584d 100644 --- a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java +++ b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java @@ -254,13 +254,7 @@ public abstract class DebuggerUtilsEx extends DebuggerUtils { } public static int getEnabledNumber(ClassFilter[] classFilters) { - int res = 0; - for (ClassFilter filter : classFilters) { - if (filter.isEnabled()) { - res++; - } - } - return res; + return (int)Arrays.stream(classFilters).filter(ClassFilter::isEnabled).count(); } public static ClassFilter[] readFilters(List children) throws InvalidDataException { diff --git a/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationPresentation.java b/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationPresentation.java index 3988ee7e4a59..2853f90278a8 100644 --- a/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationPresentation.java +++ b/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationPresentation.java @@ -204,13 +204,8 @@ public class UnusedDeclarationPresentation extends DefaultInspectionToolPresenta if (showFixes) { final TreePath[] paths = tree.getSelectionPaths(); if (paths != null) { - int count = 0; - for (TreePath path : paths) { - final Object component = path.getLastPathComponent(); - if (component instanceof ProblemDescriptionNode) { - count++; - } - } + long count = Arrays.stream(paths).map(TreePath::getLastPathComponent) + .filter(component -> component instanceof ProblemDescriptionNode).count(); if (count > 0) { final QuickFixAction[] fixes = super.getQuickFixes(refElements, tree); if (fixes != null) { diff --git a/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesAction.java b/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesAction.java index 7f3f2ea0c5e0..5e631483f15d 100644 --- a/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesAction.java +++ b/platform/lang-impl/src/com/intellij/find/actions/ShowUsagesAction.java @@ -813,11 +813,7 @@ public class ShowUsagesAction extends AnAction implements PopupAction { } private static int filtered(@NotNull List usages, @NotNull UsageViewImpl usageView) { - int count=0; - for (Usage usage : usages) { - if (!usageView.isVisible(usage)) count++; - } - return count; + return (int)usages.stream().filter(usage -> !usageView.isVisible(usage)).count(); } private static int getUsageOffset(@NotNull Usage usage) { diff --git a/platform/lang-impl/src/com/intellij/refactoring/memberPushDown/AbstractPushDownDialog.java b/platform/lang-impl/src/com/intellij/refactoring/memberPushDown/AbstractPushDownDialog.java index b4c58fc8ee27..b093a253abbf 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/memberPushDown/AbstractPushDownDialog.java +++ b/platform/lang-impl/src/com/intellij/refactoring/memberPushDown/AbstractPushDownDialog.java @@ -32,6 +32,7 @@ import java.awt.*; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; public abstract class AbstractPushDownDialog, Member extends PsiElement, @@ -60,13 +61,9 @@ public abstract class AbstractPushDownDialog getSelectedMemberInfos() { - ArrayList list = new ArrayList<>(myMemberInfos.size()); - for (MemberInfo info : myMemberInfos) { - if (info.isChecked() && myMemberInfoModel.isMemberEnabled(info)) { - list.add(info); - } - } - return list; + return myMemberInfos.stream() + .filter(info -> info.isChecked() && myMemberInfoModel.isMemberEnabled(info)) + .collect(Collectors.toCollection(ArrayList::new)); } protected String getDimensionServiceKey() { diff --git a/platform/lang-impl/src/com/intellij/usageView/impl/UsageViewManagerImpl.java b/platform/lang-impl/src/com/intellij/usageView/impl/UsageViewManagerImpl.java index 3366e282840f..8824592ce7f5 100644 --- a/platform/lang-impl/src/com/intellij/usageView/impl/UsageViewManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/usageView/impl/UsageViewManagerImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ import com.intellij.usages.UsageView; import org.jetbrains.annotations.NotNull; import javax.swing.*; +import java.util.Arrays; public class UsageViewManagerImpl extends UsageViewManager { private final Key REUSABLE_CONTENT_KEY = Key.create("UsageTreeManager.REUSABLE_CONTENT_KEY"); @@ -99,14 +100,8 @@ public class UsageViewManagerImpl extends UsageViewManager { private int getContentCount(boolean reusable) { Key contentKey = reusable ? REUSABLE_CONTENT_KEY : NOT_REUSABLE_CONTENT_KEY; - int count = 0; Content[] contents = myFindContentManager.getContents(); - for (Content content : contents) { - if (content.getUserData(contentKey) != null) { - count++; - } - } - return count; + return (int)Arrays.stream(contents).filter(content -> content.getUserData(contentKey) != null).count(); } @Override diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/singleRow/SingleRowLayout.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/singleRow/SingleRowLayout.java index f57e6dc7ce59..d666ec324c81 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/singleRow/SingleRowLayout.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/singleRow/SingleRowLayout.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -209,10 +209,7 @@ public class SingleRowLayout extends TabLayout { } protected void updateMoreIconVisibility(SingleRowPassInfo data) { - int counter = 0; - for (TabInfo tabInfo : data.myVisibleInfos) { - if (isTabHidden(tabInfo)) counter++; - } + int counter = (int)data.myVisibleInfos.stream().filter(this::isTabHidden).count(); myMoreIcon.updateCounter(counter); } diff --git a/plugins/copyright/src/com/maddyhome/idea/copyright/actions/AbstractFileProcessor.java b/plugins/copyright/src/com/maddyhome/idea/copyright/actions/AbstractFileProcessor.java index 7b020a0e6597..0cadeaf43a09 100644 --- a/plugins/copyright/src/com/maddyhome/idea/copyright/actions/AbstractFileProcessor.java +++ b/plugins/copyright/src/com/maddyhome/idea/copyright/actions/AbstractFileProcessor.java @@ -31,7 +31,6 @@ import com.intellij.openapi.roots.ContentIterator; import com.intellij.openapi.roots.ModuleFileIndex; import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.vfs.ReadonlyStatusHandler; -import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiFile; @@ -243,12 +242,8 @@ public abstract class AbstractFileProcessor { } private void handleFiles(final List files) { - final List vFiles = new ArrayList<>(); - for (PsiFile psiFile : files) { - vFiles.add(psiFile.getVirtualFile()); - } - if (!ReadonlyStatusHandler.getInstance(myProject).ensureFilesWritable(VfsUtilCore.toVirtualFileArray(vFiles)) - .hasReadonlyFiles()) { + final VirtualFile[] vFiles = files.stream().map(PsiFile::getVirtualFile).toArray(VirtualFile[]::new); + if (!ReadonlyStatusHandler.getInstance(myProject).ensureFilesWritable(vFiles).hasReadonlyFiles()) { if (!files.isEmpty()) { final Runnable[] resultRunnable = new Runnable[1]; execute(() -> resultRunnable[0] = prepareFiles(files), () -> { diff --git a/plugins/devkit/src/build/PrepareAllToDeployAction.java b/plugins/devkit/src/build/PrepareAllToDeployAction.java index 2075931b31b0..a8e454678435 100644 --- a/plugins/devkit/src/build/PrepareAllToDeployAction.java +++ b/plugins/devkit/src/build/PrepareAllToDeployAction.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,6 +26,7 @@ import org.jetbrains.idea.devkit.DevKitBundle; import org.jetbrains.idea.devkit.module.PluginModuleType; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; public class PrepareAllToDeployAction extends PrepareToDeployAction { @@ -51,14 +52,11 @@ public class PrepareAllToDeployAction extends PrepareToDeployAction { } public void update(AnActionEvent e) { - int moduleCount = 0; + long moduleCount = 0; final Project project = e.getData(CommonDataKeys.PROJECT); if (project != null) { - for (Module aModule : (ModuleManager.getInstance(project).getModules())) { - if (PluginModuleType.isOfType(aModule)) { - moduleCount++; - } - } + moduleCount = Arrays.stream(ModuleManager.getInstance(project).getModules()).filter(PluginModuleType::isOfType) + .limit(2).count(); } boolean enabled = false; if (moduleCount > 1) { diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/projectView/AbstractFolderNode.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/projectView/AbstractFolderNode.java index 0b6cdd2aa2a7..7a5f0bda5e03 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/projectView/AbstractFolderNode.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/projectView/AbstractFolderNode.java @@ -36,10 +36,11 @@ import org.jetbrains.plugins.groovy.lang.psi.GroovyFile; import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefinition; import javax.swing.*; -import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; /** * @author Dmitry Krasilschikov @@ -76,12 +77,9 @@ public class AbstractFolderNode extends AbstractMvcPsiNodeDescriptor { return Collections.emptyList(); } - final List children = new ArrayList<>(); - // scan folder's children - for (PsiDirectory subDir : directory.getSubdirectories()) { - children.add(createFolderNode(subDir)); - } + final List children = Arrays.stream(directory.getSubdirectories()) + .map(this::createFolderNode).collect(Collectors.toList()); for (PsiFile file : directory.getFiles()) { processNotDirectoryFile(children, file); diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/update/AbstractSvnUpdateIntegrateEnvironment.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/update/AbstractSvnUpdateIntegrateEnvironment.java index 107e5c96b140..657cb4c8dae5 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/update/AbstractSvnUpdateIntegrateEnvironment.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/update/AbstractSvnUpdateIntegrateEnvironment.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -41,6 +41,7 @@ import org.jetbrains.idea.svn.actions.SvnMergeProvider; import java.io.File; import java.util.*; +import java.util.stream.Collectors; public abstract class AbstractSvnUpdateIntegrateEnvironment implements UpdateEnvironment { protected final SvnVcs myVcs; @@ -133,13 +134,8 @@ public abstract class AbstractSvnUpdateIntegrateEnvironment implements UpdateEnv // update switched/ignored status of directories private void dirtyRoots() { - final Collection vfColl = new ArrayList<>(myContentRoots.length); - for (FilePath contentRoot: myContentRoots) { - final VirtualFile vf = contentRoot.getVirtualFile(); - if (vf != null) { - vfColl.add(vf); - } - } + final Collection vfColl = Arrays.stream(myContentRoots).map(FilePath::getVirtualFile) + .filter(Objects::nonNull).collect(Collectors.toList()); myDirtyScopeManager.filesDirty(vfColl, null); } diff --git a/xml/dom-openapi/src/com/intellij/util/xml/tree/AbstractDomElementNode.java b/xml/dom-openapi/src/com/intellij/util/xml/tree/AbstractDomElementNode.java index 0b0be369cd9a..11dcaa5f293f 100644 --- a/xml/dom-openapi/src/com/intellij/util/xml/tree/AbstractDomElementNode.java +++ b/xml/dom-openapi/src/com/intellij/util/xml/tree/AbstractDomElementNode.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,9 @@ import com.intellij.util.xml.DomUtil; import javax.swing.*; import java.lang.reflect.Type; -import java.util.*; +import java.util.Comparator; +import java.util.Map; +import java.util.Optional; abstract public class AbstractDomElementNode extends SimpleNode { @@ -69,17 +71,9 @@ abstract public class AbstractDomElementNode extends SimpleNode { final Class aClass = ReflectionUtil.getRawType(type); - List allParents = new ArrayList<>(); - for (Map.Entry entry : hiders.entrySet()) { - if (entry.getKey().isAssignableFrom(aClass)) { - allParents.add(entry.getKey()); - } - } - if (allParents.size() == 0) return false; - - Collections.sort(allParents, INHERITORS_COMPARATOR); - - return hiders.get(allParents.get(0)).booleanValue(); + Optional parent = hiders.keySet().stream() + .filter(klass -> klass.isAssignableFrom(aClass)).min(INHERITORS_COMPARATOR); + return parent.map(hiders::get).orElse(false); } diff --git a/xml/impl/src/com/intellij/xml/config/ConfigFilesTreeBuilder.java b/xml/impl/src/com/intellij/xml/config/ConfigFilesTreeBuilder.java index 31c41aa6d828..62b91f4b4a34 100644 --- a/xml/impl/src/com/intellij/xml/config/ConfigFilesTreeBuilder.java +++ b/xml/impl/src/com/intellij/xml/config/ConfigFilesTreeBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -136,12 +136,9 @@ public class ConfigFilesTreeBuilder { return fileType.getName() + " context files" ; } - private boolean hasNonEmptyGroups(MultiMap filesByType) { - byte nonEmptyGroups = 0; - for (Map.Entry> entry : filesByType.entrySet()) { - Collection files = entry.getValue(); - if (files != null && files.size() > 0) nonEmptyGroups++; - } + private static boolean hasNonEmptyGroups(MultiMap filesByType) { + long nonEmptyGroups = filesByType.entrySet().stream().map(Map.Entry::getValue) + .filter(files -> files != null && !files.isEmpty()).limit(2).count(); return nonEmptyGroups > 1; } diff --git a/xml/xml-psi-impl/src/com/intellij/psi/impl/source/xml/XmlTagValueImpl.java b/xml/xml-psi-impl/src/com/intellij/psi/impl/source/xml/XmlTagValueImpl.java index 21eef0105f6c..45c5373a225c 100644 --- a/xml/xml-psi-impl/src/com/intellij/psi/impl/source/xml/XmlTagValueImpl.java +++ b/xml/xml-psi-impl/src/com/intellij/psi/impl/source/xml/XmlTagValueImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,6 +29,7 @@ import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; public class XmlTagValueImpl implements XmlTagValue{ @@ -56,11 +57,10 @@ public class XmlTagValueImpl implements XmlTagValue{ public XmlText[] getTextElements() { XmlText[] textElements = myTextElements; if(textElements != null) return textElements; - final List textElementsList = new ArrayList<>(); - for (final XmlTagChild element : myElements) { - if (element instanceof XmlText) textElementsList.add((XmlText)element); - } - return myTextElements = textElementsList.isEmpty() ? XmlText.EMPTY_ARRAY : ContainerUtil.toArray(textElementsList, new XmlText[textElementsList.size()]); + myTextElements = Arrays.stream(myElements) + .filter(element -> element instanceof XmlText) + .map(element -> (XmlText)element).toArray(XmlText[]::new); + return myTextElements; } @Override