diff options
author | 2017-10-17 00:26:29 +0200 | |
---|---|---|
committer | 2017-10-18 10:27:59 +0200 | |
commit | 8986b6e307a071ee8883afd0f1b6f2c4054ea17d (patch) | |
tree | 23983b7b9e351b7ce2a3613df7d832686306812f /src/main | |
parent | 7cd9e883dd31f54cd505844aa1f1e0ed7bd9f380 (diff) |
Extend from an abstract base class to avoid duplication of utility methods in RuleErrorConsumers
RELNOTES: None.
PiperOrigin-RevId: 172387755
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java | 28 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/AbstractRuleErrorConsumer.java | 41 |
2 files changed, 45 insertions, 24 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java index e948dd31d8..94423b6482 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java @@ -56,6 +56,7 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.ExtendedEventHandler.Postable; import com.google.devtools.build.lib.events.Location; +import com.google.devtools.build.lib.packages.AbstractRuleErrorConsumer; import com.google.devtools.build.lib.packages.AspectDescriptor; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition; @@ -1849,10 +1850,9 @@ public final class RuleContext extends TargetContext } } - /** - * Helper class for reporting errors and warnings. - */ - public static final class ErrorReporter implements RuleErrorConsumer { + /** Helper class for reporting errors and warnings. */ + public static final class ErrorReporter extends AbstractRuleErrorConsumer + implements RuleErrorConsumer { private final AnalysisEnvironment env; private final Rule rule; private final String ruleClassNameForLogging; @@ -1882,30 +1882,10 @@ public final class RuleContext extends TargetContext } @Override - public RuleErrorException throwWithRuleError(String message) throws RuleErrorException { - ruleError(message); - throw new RuleErrorException(); - } - - @Override - public RuleErrorException throwWithAttributeError(String attrName, String message) - throws RuleErrorException { - attributeError(attrName, message); - throw new RuleErrorException(); - } - - @Override public boolean hasErrors() { return env.hasErrors(); } - @Override - public void assertNoErrors() throws RuleErrorException { - if (hasErrors()) { - throw new RuleErrorException(); - } - } - public void reportWarning(Location location, String message) { env.getEventHandler().handle(Event.warn(location, message)); } diff --git a/src/main/java/com/google/devtools/build/lib/packages/AbstractRuleErrorConsumer.java b/src/main/java/com/google/devtools/build/lib/packages/AbstractRuleErrorConsumer.java new file mode 100644 index 0000000000..df039d53ae --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/packages/AbstractRuleErrorConsumer.java @@ -0,0 +1,41 @@ +// Copyright 2017 The Bazel Authors. All rights reserved. +// +// 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 com.google.devtools.build.lib.packages; + +import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; + +/** Defines several helper methods to avoid duplication between {@link RuleErrorConsumer}s. */ +public abstract class AbstractRuleErrorConsumer implements RuleErrorConsumer { + + @Override + public RuleErrorException throwWithRuleError(String message) throws RuleErrorException { + ruleError(message); + throw new RuleErrorException(); + } + + @Override + public RuleErrorException throwWithAttributeError(String attrName, String message) + throws RuleErrorException { + attributeError(attrName, message); + throw new RuleErrorException(); + } + + @Override + public void assertNoErrors() throws RuleErrorException { + if (hasErrors()) { + throw new RuleErrorException(); + } + } +} |