From 3b9aa88d1fe8066c2b10e1ebd9a6d35d91ef44f3 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Tue, 25 Sep 2012 16:08:03 +0200 Subject: [PATCH] Single type for single parameter in visitor --- ...ementalCompilerInstructionCreatorBase.java | 7 ++-- .../openapi/vfs/VirtualFileVisitor.java | 33 +++++++++---------- .../openapi/vfs/VirtualFileVisitorTest.java | 2 +- .../roots/impl/DirectoryIndexImpl.java | 4 +-- 4 files changed, 21 insertions(+), 25 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/compiler/IncrementalCompilerInstructionCreatorBase.java b/java/compiler/impl/src/com/intellij/packaging/impl/compiler/IncrementalCompilerInstructionCreatorBase.java index c321f2f4f979..9837b9f37626 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/compiler/IncrementalCompilerInstructionCreatorBase.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/compiler/IncrementalCompilerInstructionCreatorBase.java @@ -18,7 +18,6 @@ package com.intellij.packaging.impl.compiler; import com.intellij.openapi.fileTypes.FileTypeManager; import com.intellij.openapi.roots.ProjectFileIndex; import com.intellij.openapi.roots.ProjectRootManager; -import com.intellij.openapi.util.Key; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; @@ -50,15 +49,13 @@ public abstract class IncrementalCompilerInstructionCreatorBase implements Incre collectInstructionsRecursively(directory, this, filter, index, copyExcluded); } - private static final Key INSTRUCTION_CREATOR = Key.create("pkg.compiler.instruction.creator"); - private static void collectInstructionsRecursively(VirtualFile directory, final IncrementalCompilerInstructionCreatorBase creator, - final PackagingFileFilter filter, + @Nullable final PackagingFileFilter filter, final ProjectFileIndex index, final boolean copyExcluded) { final FileTypeManager fileTypeManager = FileTypeManager.getInstance(); - VfsUtilCore.visitChildrenRecursively(directory, new VirtualFileVisitor(VirtualFileVisitor.SKIP_ROOT) { + VfsUtilCore.visitChildrenRecursively(directory, new VirtualFileVisitor(VirtualFileVisitor.SKIP_ROOT) { { setValueForChildren(creator); } @Override diff --git a/platform/core-api/src/com/intellij/openapi/vfs/VirtualFileVisitor.java b/platform/core-api/src/com/intellij/openapi/vfs/VirtualFileVisitor.java index 802242ed5a55..9c122df6a764 100644 --- a/platform/core-api/src/com/intellij/openapi/vfs/VirtualFileVisitor.java +++ b/platform/core-api/src/com/intellij/openapi/vfs/VirtualFileVisitor.java @@ -24,7 +24,7 @@ import org.jetbrains.annotations.Nullable; * @author Dmitry Avdeev * @since 31.10.2011 */ -public abstract class VirtualFileVisitor { +public abstract class VirtualFileVisitor { public static class Option { private Option() { } @@ -82,9 +82,9 @@ public abstract class VirtualFileVisitor { private int myDepthLimit = -1; private int myLevel = 0; - private Stack myValueStack; - private Object value; - private boolean valueSet; + private Stack myValueStack; + private T myValue; + private boolean myValueSet; protected VirtualFileVisitor(@NotNull Option... options) { for (Option option : options) { @@ -152,14 +152,13 @@ public abstract class VirtualFileVisitor { * the current file and all its subtree and returns to the level up, the value is cleared * and the {@link #getCurrentValue()} returns the previous value which was stored here before the {@link #setValueForChildren} call. */ - public final void setValueForChildren(@Nullable T value) { - this.value = value; - valueSet = true; + public final void setValueForChildren(@Nullable T value) { + myValue = value; + myValueSet = true; } - @SuppressWarnings("unchecked") - public final T getCurrentValue() { - return (T)value; + public final T getCurrentValue() { + return myValue; } @@ -177,19 +176,19 @@ public abstract class VirtualFileVisitor { final void pushFrame() { ++myLevel; - if (valueSet) { - Stack stack = myValueStack; - if (stack == null) myValueStack = stack = new Stack(); - stack.push(value); + if (myValueSet) { + Stack stack = myValueStack; + if (stack == null) myValueStack = stack = new Stack(); + stack.push(myValue); } } final void popFrame() { --myLevel; - if (valueSet) { - Stack stack = myValueStack; + if (myValueSet) { + Stack stack = myValueStack; if (!(stack == null || stack.isEmpty())) stack.pop(); - value = stack == null || stack.isEmpty() ? null : stack.peek(); + myValue = stack == null || stack.isEmpty() ? null : stack.peek(); } } } diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/vfs/VirtualFileVisitorTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/vfs/VirtualFileVisitorTest.java index 8d421726eccc..c64541c04741 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/vfs/VirtualFileVisitorTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/vfs/VirtualFileVisitorTest.java @@ -214,7 +214,7 @@ public class VirtualFileVisitorTest { @Test public void parameters() { - VfsUtilCore.visitChildrenRecursively(myRoot, new VirtualFileVisitor() { + VfsUtilCore.visitChildrenRecursively(myRoot, new VirtualFileVisitor() { { setValueForChildren(myRoot.getPath()); } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/DirectoryIndexImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/DirectoryIndexImpl.java index fd45d9e9ed70..6844fc83e74d 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/DirectoryIndexImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/DirectoryIndexImpl.java @@ -416,7 +416,7 @@ public class DirectoryIndexImpl extends DirectoryIndex { final String packageName, final VirtualFile sourceRoot, @Nullable final ProgressIndicator progress) { - VfsUtilCore.visitChildrenRecursively(dir, new VirtualFileVisitor() { + VfsUtilCore.visitChildrenRecursively(dir, new VirtualFileVisitor() { { setValueForChildren(packageName); } @Override @@ -462,7 +462,7 @@ public class DirectoryIndexImpl extends DirectoryIndex { final String packageName, final VirtualFile classRoot, @Nullable final ProgressIndicator progress) { - VfsUtilCore.visitChildrenRecursively(dir, new VirtualFileVisitor() { + VfsUtilCore.visitChildrenRecursively(dir, new VirtualFileVisitor() { { setValueForChildren(packageName); } @Override