
com.fluxtion.runtime.dataflow.groupby.OuterJoin Maven / Gradle / Ivy
package com.fluxtion.runtime.dataflow.groupby;
import com.fluxtion.runtime.dataflow.Tuple;
public class OuterJoin extends AbstractJoin {
@Override
@SuppressWarnings("unckecked")
public GroupBy> join(
GroupBy leftGroupBy, GroupBy rightGroupBY) {
reset();
if (leftGroupBy != null) {
leftGroupBy.toMap().entrySet().forEach(left -> {
V2 right = rightGroupBY == null ? null : rightGroupBY.toMap().get(left.getKey());
joinedGroup.toMap().put(
left.getKey(),
tupleObjectPool.checkOut().setFirst(left.getValue()).setSecond(right));
});
}
if (rightGroupBY != null) {
rightGroupBY.toMap().entrySet().forEach(right -> {
V1 left = leftGroupBy == null ? null : leftGroupBy.toMap().get(right.getKey());
joinedGroup.toMap().put(
right.getKey(),
tupleObjectPool.checkOut().setFirst(left).setSecond(right.getValue()));
});
}
return (GroupBy>) (Object) joinedGroup;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy