for (int i = 0; i < transformList.size() - 1; i++) {
ETLStage currStage = transformList.get(i);
ETLStage nextStage = transformList.get(i + 1);
Transform firstTransform = transforms.get(i);
Transform secondTransform = transforms.get(i + 1);
<BUG>if (!(TypeToken.of(secondTransform.getKeyInType()).isAssignableFrom(firstTransform.getKeyOutType()) &&
TypeToken.of(secondTransform.getValueInType()).isAssignableFrom(firstTransform.getValueOutType()))) {
throw new IllegalArgumentException(String.format("Transform %s and Transform %s Types don't match",</BUG>
currStage.getName(), nextStage.getName()));
}

for (int i = 0; i < transformList.size() - 1; i++) {
ETLStage currStage = transformList.get(i);
ETLStage nextStage = transformList.get(i + 1);
Transform firstTransform = transforms.get(i);
Transform secondTransform = transforms.get(i + 1);
if (!(isAssignable(firstTransform.getKeyOutType(), secondTransform.getKeyInType()) &&
(isAssignable(firstTransform.getValueOutType(), secondTransform.getValueInType())))) {
throw new IllegalArgumentException(String.format("Transform %s and Transform %s Types don't match",
currStage.getName(), nextStage.getName()));
