From 2aee44b68bbbc29397993062b8757b419f6a5614 Mon Sep 17 00:00:00 2001 From: gregce Date: Sat, 16 Sep 2017 07:16:44 +0200 Subject: Project reorg: move *ConfiguredTarget to new configuredtargets/ path Exempt RuleConfiguredTarget in this change because that's liable to touch a billion files. PiperOrigin-RevId: 168929827 --- .../InputFileConfiguredTarget.java | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/InputFileConfiguredTarget.java (limited to 'src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/InputFileConfiguredTarget.java') diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/InputFileConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/InputFileConfiguredTarget.java new file mode 100644 index 0000000000..94cc7718e2 --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/InputFileConfiguredTarget.java @@ -0,0 +1,87 @@ +// Copyright 2014 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.configuredtargets; + +import com.google.devtools.build.lib.actions.Artifact; +import com.google.devtools.build.lib.analysis.TargetContext; +import com.google.devtools.build.lib.collect.nestedset.NestedSet; +import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; +import com.google.devtools.build.lib.collect.nestedset.Order; +import com.google.devtools.build.lib.packages.InputFile; +import com.google.devtools.build.lib.packages.License; +import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter; +import com.google.devtools.build.lib.skylarkinterface.SkylarkValue; +import com.google.devtools.build.lib.util.Preconditions; + +/** + * A ConfiguredTarget for an InputFile. + * + * All InputFiles for the same target are equivalent, so configuration does not + * play any role here and is always set to null. + */ +public final class InputFileConfiguredTarget extends FileConfiguredTarget implements SkylarkValue { + private final Artifact artifact; + private final NestedSet licenses; + + public InputFileConfiguredTarget(TargetContext targetContext, InputFile inputFile, + Artifact artifact) { + super(targetContext, artifact); + Preconditions.checkArgument(targetContext.getTarget() == inputFile, getLabel()); + Preconditions.checkArgument(getConfiguration() == null, getLabel()); + this.artifact = artifact; + + if (inputFile.getLicense() != License.NO_LICENSE) { + licenses = NestedSetBuilder.create(Order.LINK_ORDER, + new TargetLicense(getLabel(), inputFile.getLicense())); + } else { + licenses = NestedSetBuilder.emptySet(Order.LINK_ORDER); + } + } + + @Override + public InputFile getTarget() { + return (InputFile) super.getTarget(); + } + + @Override + public Artifact getArtifact() { + return artifact; + } + + @Override + public String toString() { + return "InputFileConfiguredTarget(" + getTarget().getLabel() + ")"; + } + + @Override + public final NestedSet getTransitiveLicenses() { + return licenses; + } + + @Override + public TargetLicense getOutputLicenses() { + return null; + } + + @Override + public boolean hasOutputLicenses() { + return false; + } + + @Override + public void repr(SkylarkPrinter printer) { + printer.append(""); + } +} -- cgit v1.2.3