package com.eloancn.back.submitted.service.helper; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * builder for dy query param * * @author zhengdalong * @version V1.0 * @date 2019/1/10 7:39 PM */ public class EsJobQueryParam<Q> { private final Integer shardingItem; private final Integer shardingTotalCount; private final Date queryBeginTime; private final Date queryEndTime; private final Q q; EsJobQueryParam(Builder<Q> builder) { this.shardingItem = builder.shardingItem; this.shardingTotalCount = builder.shardingTotalCount; this.queryBeginTime = builder.queryBeginTime; this.queryEndTime = builder.queryEndTime; this.q = builder.q; } public static class Builder<K2> { Integer shardingItem; Integer shardingTotalCount; Date queryBeginTime; Date queryEndTime; K2 q; private Builder() { } //static K2 ? public static <K3> Builder<K3> builder() { return new Builder<K3>(); } public Builder<K2> setShardingItem(Integer shardingItem) { this.shardingItem = shardingItem; return this; } public Builder<K2> setShardingTotalCount(Integer shardingTotalCount) { this.shardingTotalCount = shardingTotalCount; return this; } public Builder<K2> setQueryBeginTime(Date queryBeginTime) { this.queryBeginTime = queryBeginTime; return this; } public Builder<K2> setQueryEndTime(Date queryEndTime) { this.queryEndTime = queryEndTime; return this; } public Builder<K2> setKey(K2 q) { this.q = q; return this; } public EsJobQueryParam<K2> build() { return new EsJobQueryParam(this); } } private final static String FILED_SHARDING_ITEM = "shardingItem"; private final static String FIELD_SHARDING_TOTAL_COUNT = "shardingTotalCount"; private final static String FIELD_QUERY_BEGIN_TIME = "queryBeginTime"; private final static String FIELD_QUERY_END_TIME = "queryEndTime"; public Map<String, Object> parse() { Map<String, Object> param = new HashMap<>(); param.put(FILED_SHARDING_ITEM, shardingItem); param.put(FIELD_SHARDING_TOTAL_COUNT, shardingTotalCount); param.put(FIELD_QUERY_BEGIN_TIME, queryBeginTime); param.put(FIELD_QUERY_END_TIME, queryEndTime); return param; } public Integer getShardingItem() { return shardingItem; } public Integer getShardingTotalCount() { return shardingTotalCount; } public Date getQueryBeginTime() { return queryBeginTime; } public Date getQueryEndTime() { return queryEndTime; } public Q getQ() { return q; } }
转载于:https://my.oschina.net/payzheng/blog/2999984