diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/AspectDescriptor.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/AspectDescriptor.java | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AspectDescriptor.java b/src/main/java/com/google/devtools/build/lib/analysis/AspectDescriptor.java deleted file mode 100644 index 2f56abbc15..0000000000 --- a/src/main/java/com/google/devtools/build/lib/analysis/AspectDescriptor.java +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2016 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.analysis; - -import com.google.common.collect.ImmutableMultimap; -import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; -import com.google.devtools.build.lib.packages.AspectClass; -import com.google.devtools.build.lib.packages.AspectParameters; -import com.google.protobuf.TextFormat; -import java.util.Map.Entry; -import java.util.Objects; - -/** - * A pair of {@link AspectClass} and {@link AspectParameters}. - * - * Used for dependency resolution. - */ -@Immutable -public final class AspectDescriptor { - private final AspectClass aspectClass; - private final AspectParameters aspectParameters; - - public AspectDescriptor(AspectClass aspectClass, - AspectParameters aspectParameters) { - this.aspectClass = aspectClass; - this.aspectParameters = aspectParameters; - } - - public AspectDescriptor(AspectClass aspectClass) { - this(aspectClass, AspectParameters.EMPTY); - } - - public AspectClass getAspectClass() { - return aspectClass; - } - - public AspectParameters getParameters() { - return aspectParameters; - } - - @Override - public int hashCode() { - return Objects.hash(aspectClass, aspectParameters); - } - - @Override - public boolean equals(Object obj) { - if (obj == this) { - return true; - } - - if (!(obj instanceof AspectDescriptor)) { - return false; - } - - AspectDescriptor that = (AspectDescriptor) obj; - return Objects.equals(aspectClass, that.aspectClass) - && Objects.equals(aspectParameters, that.aspectParameters); - } - - /** - * Creates a presentable description of this aspect, avaliable - * to Skylark via "Target.aspects". - * - * The description is designed to be unique for each aspect descriptor, - * but not to be parseable. - */ - public String getDescription() { - if (aspectParameters.isEmpty()) { - return aspectClass.getName(); - } - - StringBuilder builder = new StringBuilder(aspectClass.getName()); - builder.append('['); - ImmutableMultimap<String, String> attributes = aspectParameters.getAttributes(); - boolean first = true; - for (Entry<String, String> attribute : attributes.entries()) { - if (!first) { - builder.append(','); - } else { - first = false; - } - builder.append(attribute.getKey()); - builder.append("=\""); - builder.append(TextFormat.escapeDoubleQuotesAndBackslashes(attribute.getValue())); - builder.append("\""); - } - builder.append(']'); - return builder.toString(); - } -} |