package org.seqcode.gsebricks.verbs;
import java.util.Map;
import org.seqcode.gsebricks.types.*;
import org.seqcode.gseutils.Pair;
public class PairCombiner<X,Y> implements BiCombiner<X,Y,Pair<X,Y>>, SelfDescribingVerb, DependentSelfDescribingVerb {
private EchoType outputClass;
private EchoType[] currentInputs;
public PairCombiner() {
currentInputs = new EchoType[2];
currentInputs[0] = currentInputs[1] = EchoType.OBJECT_CLASS;
outputClass = new PairType(EchoType.OBJECT_CLASS, EchoType.OBJECT_CLASS);
}
private static final EchoType[] inputClasses = { EchoType.OBJECT_CLASS, EchoType.OBJECT_CLASS };
private static final String[] inputNames = { "First", "Second" };
public Pair<X,Y> execute(X a, Y b) {
return new Pair<X,Y>(a, b);
}
public EchoType[] getInputClasses() {
return inputClasses;
}
public String[] getInputNames() {
return inputNames;
}
public EchoType getOutputClass() {
return outputClass;
}
public EchoType[] getParameterClasses() {
return null;
}
public String[] getParameterNames() {
return null;
}
public void init(Map<String, Object> params) {
}
public void clearInput(String n) {
if(n.equals(inputNames[0])) {
currentInputs[0] = EchoType.OBJECT_CLASS;
}
if(n.equals(inputNames[1])) {
currentInputs[1] = EchoType.OBJECT_CLASS;
}
outputClass = new PairType(currentInputs[0], currentInputs[1]);
}
public void setInput(String n, EchoType c) {
if(n.equals(inputNames[0])) {
currentInputs[0] = c;
}
if(n.equals(inputNames[1])) {
currentInputs[1] = c;
}
outputClass = new PairType(currentInputs[0], currentInputs[1]);
}
public void clearParameter(String n) {
}
public void setParameter(String n, EchoType c) {
}
}