private void invokeWithCache(Map<String, Object> inputParams, BaseRow input, ResultFuture<BaseRow> resultFuture) {
        if (openCache()) {
            CacheObj val = getFromCache(buildCacheKey(inputParams));
            if (val != null) {
                if (ECacheContentType.MissVal == val.getType()) {
                    dealMissKey(input, resultFuture);
                } else if (ECacheContentType.SingleLine == val.getType()) {
                    try {
                        BaseRow row = fillData(input, val.getContent());
                        RowDataComplete.completeBaseRow(resultFuture, row);
                    } catch (Exception e) {
                        dealFillDataError(input, resultFuture, e);
                    }
                } else if (ECacheContentType.MultiLine == val.getType()) {
                    try {
                        List<BaseRow> rowList = Lists.newArrayList();
                        for (Object one : (List) val.getContent()) {
                            BaseRow row = fillData(input, one);
                            rowList.add(row);
                        }
                        RowDataComplete.completeBaseRow(resultFuture,rowList);
                    } catch (Exception e) {
                        dealFillDataError(input, resultFuture, e);
                    }
                } else {
                    resultFuture.completeExceptionally(new RuntimeException("not support cache obj type " + val.getType()));
                }
            }
        }
    }
All interfaces inherit naming rules: type + "AsyncReqRow" such as == "MysqlAsyncReqRow
only support Left join / inner join(join),not support right join
Date: 2018/7/9
Company: www.dtstack.com

@author xuchao
core/src/main/java/com/dtstack/flink/sql/side/BaseAsyncReqRow.java