// 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.skyframe; import com.google.devtools.build.lib.util.GroupedList; import com.google.devtools.build.lib.util.GroupedList.GroupedListHelper; import java.util.Collection; import java.util.Set; import javax.annotation.Nullable; /** Convenience class for {@link NodeEntry} implementations that delegate many operations. */ public abstract class DelegatingNodeEntry implements NodeEntry { protected abstract NodeEntry getDelegate(); protected ThinNodeEntry getThinDelegate() { return getDelegate(); } @Override public boolean keepEdges() { return getDelegate().keepEdges(); } @Override public SkyValue getValue() throws InterruptedException { return getDelegate().getValue(); } @Override public SkyValue getValueMaybeWithMetadata() throws InterruptedException { return getDelegate().getValueMaybeWithMetadata(); } @Override public SkyValue toValue() throws InterruptedException { return getDelegate().toValue(); } @Nullable @Override public ErrorInfo getErrorInfo() throws InterruptedException { return getDelegate().getErrorInfo(); } @Override public Set<SkyKey> getInProgressReverseDeps() { return getDelegate().getInProgressReverseDeps(); } @Override public Set<SkyKey> setValue(SkyValue value, Version version) throws InterruptedException { return getDelegate().setValue(value, version); } @Override public DependencyState addReverseDepAndCheckIfDone(@Nullable SkyKey reverseDep) throws InterruptedException { return getDelegate().addReverseDepAndCheckIfDone(reverseDep); } @Override public DependencyState checkIfDoneForDirtyReverseDep(SkyKey reverseDep) throws InterruptedException { return getDelegate().checkIfDoneForDirtyReverseDep(reverseDep); } @Override public boolean signalDep() { return getDelegate().signalDep(); } @Override public boolean signalDep(Version childVersion) { return getDelegate().signalDep(childVersion); } @Override public Set<SkyKey> markClean() throws InterruptedException { return getDelegate().markClean(); } @Override public void forceRebuild() { getDelegate().forceRebuild(); } @Override public Version getVersion() { return getDelegate().getVersion(); } @Override public DirtyState getDirtyState() { return getDelegate().getDirtyState(); } @Override public Collection<SkyKey> getNextDirtyDirectDeps() throws InterruptedException { return getDelegate().getNextDirtyDirectDeps(); } @Override public Iterable<SkyKey> getAllDirectDepsForIncompleteNode() throws InterruptedException { return getDelegate().getAllDirectDepsForIncompleteNode(); } @Override public Set<SkyKey> getAllRemainingDirtyDirectDeps() throws InterruptedException { return getDelegate().getAllRemainingDirtyDirectDeps(); } @Override public Iterable<SkyKey> getAllReverseDepsForNodeBeingDeleted() { return getDelegate().getAllReverseDepsForNodeBeingDeleted(); } @Override public void markRebuilding() { getDelegate().markRebuilding(); } @Override public GroupedList<SkyKey> getTemporaryDirectDeps() { return getDelegate().getTemporaryDirectDeps(); } @Override public boolean noDepsLastBuild() { return getDelegate().noDepsLastBuild(); } @Override public void removeUnfinishedDeps(Set<SkyKey> unfinishedDeps) { getDelegate().removeUnfinishedDeps(unfinishedDeps); } @Override public Set<SkyKey> addTemporaryDirectDeps(GroupedListHelper<SkyKey> helper) { return getDelegate().addTemporaryDirectDeps(helper); } @Override public boolean isReady() { return getDelegate().isReady(); } @Override public boolean isDone() { return getThinDelegate().isDone(); } @Override public Iterable<SkyKey> getDirectDeps() throws InterruptedException { return getDelegate().getDirectDeps(); } @Override public void removeReverseDep(SkyKey reverseDep) throws InterruptedException { getDelegate().removeReverseDep(reverseDep); } @Override public void removeInProgressReverseDep(SkyKey reverseDep) { getDelegate().removeInProgressReverseDep(reverseDep); } @Override public Iterable<SkyKey> getReverseDepsForDoneEntry() throws InterruptedException { return getDelegate().getReverseDepsForDoneEntry(); } @Override public boolean isDirty() { return getThinDelegate().isDirty(); } @Override public boolean isChanged() { return getThinDelegate().isChanged(); } @Override @Nullable public MarkedDirtyResult markDirty(boolean isChanged) throws InterruptedException { return getThinDelegate().markDirty(isChanged); } @Override public void addTemporaryDirectDepsGroupToDirtyEntry(Collection<SkyKey> group) { getDelegate().addTemporaryDirectDepsGroupToDirtyEntry(group); } }