All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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