package com.ruoyi.system.utils.wx.tools; import java.util.concurrent.TimeUnit; /** * 缓存 * * @author xiaochen */ class WxCache { /** * 缓存的初始化容量 */ private int initialCapacity = 50; /** * 缓存最大容量 */ private long maximumSize = 200L; /** * 缓存时长 */ private long duration = 7000L; /** * 时长单位,自动转换 * 支持: * 时 * 分 * 秒 * 天 */ private TimeUnit timeunit = TimeUnit.SECONDS; public int getInitialCapacity() { return initialCapacity; } public void setInitialCapacity(int initialCapacity) { this.initialCapacity = initialCapacity; } public long getMaximumSize() { return maximumSize; } public void setMaximumSize(long maximumSize) { this.maximumSize = maximumSize; } public long getDuration() { return duration; } public void setDuration(long duration) { this.duration = duration; } public TimeUnit getTimeunit() { return timeunit; } public void setTimeunit(TimeUnit timeunit) { this.timeunit = timeunit; } public static class Builder { private int initialCapacity; private long maximumSize; private long duration; private TimeUnit timeunit; public Builder setInitialCapacity(int initialCapacity) { this.initialCapacity = initialCapacity; return this; } public Builder setMaximumSize(long maximumSize) { this.maximumSize = maximumSize; return this; } public Builder setDuration(long duration) { this.duration = duration; return this; } public Builder setTimeUnit(TimeUnit timeunit) { this.timeunit = timeunit; return this; } public WxCache build() { return new WxCache(this); } } public static Builder options() { return new Builder(); } private WxCache(Builder builder) { this.initialCapacity = 0 == builder.initialCapacity ? this.initialCapacity : builder.initialCapacity; this.maximumSize = 0L == builder.maximumSize ? this.maximumSize : builder.maximumSize; this.duration = 0L == builder.duration ? this.duration : builder.duration; this.timeunit = null == builder.timeunit ? this.timeunit : builder.timeunit; } @Override public String toString() { return "WxCache{" + "initialCapacity=" + initialCapacity + ", maximumSize=" + maximumSize + ", duration=" + duration + ", timeunit=" + timeunit + '}'; } }