diff --git a/src/main/java/cloud/tianai/captcha/generator/common/model/dto/GenerateParam.java b/src/main/java/cloud/tianai/captcha/generator/common/model/dto/GenerateParam.java index 06ae069..1637e80 100644 --- a/src/main/java/cloud/tianai/captcha/generator/common/model/dto/GenerateParam.java +++ b/src/main/java/cloud/tianai/captcha/generator/common/model/dto/GenerateParam.java @@ -10,27 +10,37 @@ import lombok.*; * @Description 生成参数 */ @Data -@Builder -@NoArgsConstructor -@AllArgsConstructor // param作为扩展字段暂时将param从equals和toString中移除掉 以适应 CacheImageCaptchaGenerator @EqualsAndHashCode(exclude = "param") public class GenerateParam { - - /** 背景格式化类型. */ + /** + * 背景格式化类型. + */ private String backgroundFormatName = "jpeg"; - /** 模板图片格式化类型. */ + /** + * 模板图片格式化类型. + */ private String templateFormatName = "png"; - /** 是否混淆. */ + /** + * 是否混淆. + */ private Boolean obfuscate = false; - /** 类型. */ + /** + * 类型. + */ private String type = CaptchaTypeConstant.SLIDER; - /** 背景图片标签, 用户二级过滤背景图片,或指定某背景图片. */ + /** + * 背景图片标签, 用户二级过滤背景图片,或指定某背景图片. + */ private String backgroundImageTag; - /** 滑动图片标签,用户二级过滤模板图片,或指定某模板图片.. */ + /** + * 滑动图片标签,用户二级过滤模板图片,或指定某模板图片.. + */ private String templateImageTag; - /** 扩展参数. */ + /** + * 扩展参数. + */ private AnyMap param = new AnyMap(); public void addParam(String key, Object value) { @@ -68,7 +78,7 @@ public class GenerateParam { } - public void addParam(ParamKey paramKey, T value) { + public void addParam(ParamKey paramKey, T value) { addParam(paramKey.getKey(), value); } @@ -80,5 +90,69 @@ public class GenerateParam { return (T) getOrDefault(paramKey.getKey(), defaultValue); } + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private String backgroundFormatName = "jpeg"; + private String templateFormatName = "png"; + private Boolean obfuscate = false; + private String type = CaptchaTypeConstant.SLIDER; + private String backgroundImageTag; + private String templateImageTag; + private AnyMap param = new AnyMap(); + + private Builder() { + } + + public Builder backgroundFormatName(String backgroundFormatName) { + this.backgroundFormatName = backgroundFormatName; + return this; + } + + public Builder templateFormatName(String templateFormatName) { + this.templateFormatName = templateFormatName; + return this; + } + + public Builder obfuscate(Boolean obfuscate) { + this.obfuscate = obfuscate; + return this; + } + + public Builder type(String type) { + this.type = type; + return this; + } + + public Builder backgroundImageTag(String backgroundImageTag) { + this.backgroundImageTag = backgroundImageTag; + return this; + } + + public Builder templateImageTag(String templateImageTag) { + this.templateImageTag = templateImageTag; + return this; + } + + public Builder param(AnyMap param) { + this.param = param; + return this; + } + + public GenerateParam build() { + GenerateParam generateParam = new GenerateParam(); + generateParam.backgroundFormatName = backgroundFormatName; + generateParam.templateFormatName = templateFormatName; + generateParam.obfuscate = obfuscate; + generateParam.type = type; + generateParam.backgroundImageTag = backgroundImageTag; + generateParam.templateImageTag = templateImageTag; + generateParam.param = param; + return generateParam; + } + } + }