package de.dhbwstuttgart.strucTypes5.constraints;


import de.dhbwstuttgart.strucTypes5.typeVars.TypeVar;

import java.util.List;

/**
 * Created by sebastian on 20.04.17.
 */
public class ConstraintMethod extends ConstraintAbstract {


    private TypeVar receiver;
    private String methodName;
    private List<TypeVar> argumentTypes;
    private TypeVar returnType;
    private List<TypeVar> argumentTypesBeta;


    public ConstraintMethod(TypeVar receiver, String methodName, List<TypeVar> argumentTypes, TypeVar returnType, List<TypeVar> argumentTypesBeta) {
        this.receiver = receiver;
        this.methodName = methodName;
        this.argumentTypes = argumentTypes;
        this.returnType = returnType;
        this.argumentTypesBeta = argumentTypesBeta;
    }


    public TypeVar getReceiver() {
        return receiver;
    }

    public void setReceiver(TypeVar receiver) {
        this.receiver = receiver;
    }

    public String getMethodName() {
        return methodName;
    }

    public void setMethodName(String methodName) {
        this.methodName = methodName;
    }

    public List<TypeVar> getArgumentTypes() {
        return argumentTypes;
    }

    public void setArgumentTypes(List<TypeVar> argumentTypes) {
        this.argumentTypes = argumentTypes;
    }

    public TypeVar getReturnType() {
        return returnType;
    }

    public void setReturnType(TypeVar returnType) {
        this.returnType = returnType;
    }

    public List<TypeVar> getArgumentTypesBeta() {
        return argumentTypesBeta;
    }

    public void setArgumentTypesBeta(List<TypeVar> argumentTypesBeta) {
        this.argumentTypesBeta = argumentTypesBeta;
    }

    @Override
    public String toString() {
        return String.format("ConstraintMethod( %s , %s , %s , ( %s , %s  )) " , receiver, methodName , argumentTypes , returnType , argumentTypesBeta);
    }



}

