001 /*
002 * Copyright 2010-2013 JetBrains s.r.o.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016
017 package org.jetbrains.jet.lang.resolve.calls.model;
018
019 import org.jetbrains.annotations.NotNull;
020 import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
021 import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
022 import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
023 import org.jetbrains.jet.lang.resolve.calls.tasks.ExplicitReceiverKind;
024 import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue;
025 import org.jetbrains.jet.lang.types.JetType;
026
027 import java.util.List;
028 import java.util.Map;
029
030 public abstract class DelegatingResolvedCall<D extends CallableDescriptor> implements ResolvedCall<D> {
031 private final ResolvedCall<? extends D> resolvedCall;
032
033 public DelegatingResolvedCall(@NotNull ResolvedCall<? extends D> resolvedCall) {
034 this.resolvedCall = resolvedCall;
035 }
036
037 @NotNull
038 @Override
039 public D getCandidateDescriptor() {
040 return resolvedCall.getCandidateDescriptor();
041 }
042
043 @NotNull
044 @Override
045 public D getResultingDescriptor() {
046 return resolvedCall.getResultingDescriptor();
047 }
048
049 @NotNull
050 @Override
051 public ReceiverValue getReceiverArgument() {
052 return resolvedCall.getReceiverArgument();
053 }
054
055 @NotNull
056 @Override
057 public ReceiverValue getThisObject() {
058 return resolvedCall.getThisObject();
059 }
060
061 @NotNull
062 @Override
063 public ExplicitReceiverKind getExplicitReceiverKind() {
064 return resolvedCall.getExplicitReceiverKind();
065 }
066
067 @NotNull
068 @Override
069 public Map<ValueParameterDescriptor, ResolvedValueArgument> getValueArguments() {
070 return resolvedCall.getValueArguments();
071 }
072
073 @NotNull
074 @Override
075 public List<ResolvedValueArgument> getValueArgumentsByIndex() {
076 return resolvedCall.getValueArgumentsByIndex();
077 }
078
079 @NotNull
080 @Override
081 public Map<TypeParameterDescriptor, JetType> getTypeArguments() {
082 return resolvedCall.getTypeArguments();
083 }
084
085 @NotNull
086 @Override
087 public DataFlowInfoForArguments getDataFlowInfoForArguments() {
088 return resolvedCall.getDataFlowInfoForArguments();
089 }
090
091 @Override
092 public boolean isSafeCall() {
093 return resolvedCall.isSafeCall();
094 }
095 }