package org.jetbrains.ruby.codeInsight.types.signature; import org.jetbrains.annotations.NotNull; import java.util.List; public class RSignature { @NotNull private final MethodInfo myMethodInfo; @NotNull private final List<ParameterInfo> myArgsInfo; @NotNull private final List<String> myArgsTypes; @NotNull private String myReturnTypeName; public RSignature(@NotNull final MethodInfo methodInfo, @NotNull final List<ParameterInfo> argsInfo, @NotNull final List<String> argsTypeName, @NotNull final String returnTypeName) { myMethodInfo = methodInfo; myArgsInfo = argsInfo; myArgsTypes = argsTypeName; myReturnTypeName = returnTypeName; } @NotNull public MethodInfo getMethodInfo() { return myMethodInfo; } @NotNull public List<ParameterInfo> getArgsInfo() { return myArgsInfo; } @NotNull public List<String> getArgsTypes() { return myArgsTypes; } @NotNull public String getReturnTypeName() { return myReturnTypeName; } public void setReturnTypeName(@NotNull final String returnTypeName) { this.myReturnTypeName = returnTypeName; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; RSignature that = (RSignature) o; return myMethodInfo.equals(that.myMethodInfo) && myArgsInfo.equals(that.myArgsInfo) && myArgsTypes.equals(that.myArgsTypes); } @Override public int hashCode() { int result = myMethodInfo.hashCode(); result = 31 * result + myArgsInfo.hashCode(); result = 31 * result + myArgsTypes.hashCode(); return result; } }