From ed146e51f9760e39d2c76459789f6fff009e3313 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Fri, 16 Aug 2013 21:55:36 +0400 Subject: [PATCH] Add an abstraction over ProgressIndicationProvider --- .../java/resolver/ProgressChecker.java | 29 +++++++++++++++++++ .../java/resolver/ProgressCheckerImpl.java | 26 +++++++++++++++++ .../resolve/java/scope/JavaBaseScope.java | 6 ++-- .../resolve/java/scope/JavaPackageScope.java | 4 +-- 4 files changed, 60 insertions(+), 5 deletions(-) create mode 100644 compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ProgressChecker.java create mode 100644 compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ProgressCheckerImpl.java diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ProgressChecker.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ProgressChecker.java new file mode 100644 index 00000000000..3761a779044 --- /dev/null +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ProgressChecker.java @@ -0,0 +1,29 @@ +/* + * Copyright 2010-2013 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.jet.lang.resolve.java.resolver; + +import org.jetbrains.annotations.NotNull; + +public abstract class ProgressChecker { + @NotNull + public static ProgressChecker getInstance() { + // TODO: ServiceLoader.load() + return new ProgressCheckerImpl(); + } + + public abstract void checkCanceled(); +} diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ProgressCheckerImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ProgressCheckerImpl.java new file mode 100644 index 00000000000..0b658bfdd28 --- /dev/null +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ProgressCheckerImpl.java @@ -0,0 +1,26 @@ +/* + * Copyright 2010-2013 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.jet.lang.resolve.java.resolver; + +import com.intellij.openapi.progress.ProgressIndicatorProvider; + +public class ProgressCheckerImpl extends ProgressChecker { + @Override + public void checkCanceled() { + ProgressIndicatorProvider.checkCanceled(); + } +} diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaBaseScope.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaBaseScope.java index 628c4cd7eb7..10e0e77ba70 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaBaseScope.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaBaseScope.java @@ -16,11 +16,11 @@ package org.jetbrains.jet.lang.resolve.java.scope; -import com.intellij.openapi.progress.ProgressIndicatorProvider; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.resolve.java.resolver.JavaMemberResolver; +import org.jetbrains.jet.lang.resolve.java.resolver.ProgressChecker; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.scopes.JetScopeImpl; @@ -144,9 +144,9 @@ public abstract class JavaBaseScope extends JetScopeImpl { Collection result = new ArrayList(); for (NamedMembers members : membersProvider.allMembers()) { Name name = members.getName(); - ProgressIndicatorProvider.checkCanceled(); + ProgressChecker.getInstance().checkCanceled(); result.addAll(getFunctions(name)); - ProgressIndicatorProvider.checkCanceled(); + ProgressChecker.getInstance().checkCanceled(); result.addAll(getProperties(name)); } return result; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaPackageScope.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaPackageScope.java index 1eee3602961..04399295d26 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaPackageScope.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaPackageScope.java @@ -16,11 +16,11 @@ package org.jetbrains.jet.lang.resolve.java.scope; -import com.intellij.openapi.progress.ProgressIndicatorProvider; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.resolve.java.DescriptorResolverUtils; import org.jetbrains.jet.lang.resolve.java.resolver.JavaMemberResolver; +import org.jetbrains.jet.lang.resolve.java.resolver.ProgressChecker; import org.jetbrains.jet.lang.resolve.java.structure.JavaClass; import org.jetbrains.jet.lang.resolve.java.structure.JavaPackage; import org.jetbrains.jet.lang.resolve.name.FqName; @@ -100,7 +100,7 @@ public final class JavaPackageScope extends JavaBaseScope { if (javaClass.getVisibility() != Visibilities.PUBLIC) continue; - ProgressIndicatorProvider.checkCanceled(); + ProgressChecker.getInstance().checkCanceled(); FqName fqName = javaClass.getFqName(); if (fqName == null) continue;