blob: d9104ee57c8b9c5a0db17618483a0220e1999b80 [file] [log] [blame]
Damien Martin-Guillerezf88f4d82015-09-25 13:56:55 +00001// Copyright 2014 The Bazel Authors. All rights reserved.
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +01002//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14package com.google.devtools.build.lib.skyframe;
15
16import com.google.common.collect.ImmutableSet;
17import com.google.devtools.build.lib.actions.FilesetOutputSymlink;
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010018import com.google.devtools.build.skyframe.SkyValue;
19
20/** Output symlinks produced by a whole FilesetEntry or by a single file in FilesetEntry.files. */
21public final class FilesetEntryValue implements SkyValue {
22 static final FilesetEntryValue EMPTY =
23 new FilesetEntryValue(ImmutableSet.<FilesetOutputSymlink>of());
24
25 private final ImmutableSet<FilesetOutputSymlink> symlinks;
26
27 private FilesetEntryValue(ImmutableSet<FilesetOutputSymlink> symlinks) {
28 this.symlinks = symlinks;
29 }
30
31 static FilesetEntryValue of(ImmutableSet<FilesetOutputSymlink> symlinks) {
32 if (symlinks.isEmpty()) {
33 return EMPTY;
34 } else {
35 return new FilesetEntryValue(symlinks);
36 }
37 }
38
39 /** Returns the list of output symlinks. */
40 public ImmutableSet<FilesetOutputSymlink> getSymlinks() {
41 return symlinks;
42 }
43
Laszlo Csomor8d85b9c2015-07-29 18:53:12 +000044 @Override
45 public boolean equals(Object obj) {
46 if (this == obj) {
47 return true;
48 }
49 if (!(obj instanceof FilesetEntryValue)) {
50 return false;
51 }
52 return symlinks.equals(((FilesetEntryValue) obj).symlinks);
53 }
54
55 @Override
56 public int hashCode() {
57 return symlinks.hashCode();
58 }
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010059}