package de.dhbwstuttgart.strucTypes4.algo;

import de.dhbwstuttgart.strucTypes4.typeVars.TypeVarAbstract;

import java.util.List;

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

    TypeVarAbstract receiver;
    String methodName;
    List<TypeVarAbstract> argsTypes;
    TypeVarAbstract returnType;
    List<TypeVarAbstract> argsBetaTypes;

    public ConstraintMethod(TypeVarAbstract receiver, String methodName, List<TypeVarAbstract> argsTypes, TypeVarAbstract returnType, List<TypeVarAbstract> argsBetaTypes) {
        this.receiver = receiver;
        this.methodName = methodName;
        this.argsTypes = argsTypes;
        this.returnType = returnType;
        this.argsBetaTypes = argsBetaTypes;
    }


    public TypeVarAbstract getReceiver() {
        return receiver;
    }

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

    public String getMethodName() {
        return methodName;
    }

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

    public List<TypeVarAbstract> getArgsTypes() {
        return argsTypes;
    }

    public void setArgsTypes(List<TypeVarAbstract> argsTypes) {
        this.argsTypes = argsTypes;
    }

    public TypeVarAbstract getReturnType() {
        return returnType;
    }

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

    public List<TypeVarAbstract> getArgsBetaTypes() {
        return argsBetaTypes;
    }

    public void setArgsBetaTypes(List<TypeVarAbstract> argsBetaTypes) {
        this.argsBetaTypes = argsBetaTypes;
    }

    @Override
    public String toString() {
        return String.format(" Const Method( %s  , %s , %s , ( %s , %s   ))" , receiver, methodName , argsTypes , returnType , argsBetaTypes);
    }






}


