com.biz.verification.handler.CheckParameterDateTimeFormatHandler Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of biz-all Show documentation
Show all versions of biz-all Show documentation
BizX 是一个灵活而高效的业务开发框架, 其中也有很多为业务开发所需要的工具类的提供。
The newest version!
package com.biz.verification.handler;
import com.biz.common.date.calendar.CalendarUtils;
import com.biz.common.date.datetime.DateTimeUtils;
import com.biz.common.utils.Common;
import com.biz.verification.annotation.check.BizXCheckDateTimeFormat;
import com.biz.verification.error.BizXVerificationException;
import com.biz.verification.strategy.CheckParameterStrategy;
import lombok.extern.slf4j.Slf4j;
import java.lang.annotation.Annotation;
import java.util.Calendar;
/**
* 检查时间格式的具体实现类。
* 实现了 {@link CheckParameterStrategy} 接口,提供了对 {@link BizXCheckDateTimeFormat} 注解的处理逻辑。
*
*
* 示例用法:
* {@code
* public class Example {
* @BizXCheckDateTime(
* format = "yyyy-MM-dd",
* error = @BizXCheckErrorMessage(code = 1002, message = "Invalid date format")
* )
* private String date;
* }
* }
*
*
* @author francis
* @version 1.0.0
* @see BizXCheckDateTimeFormat
* @see BizXVerificationException
* @see CheckParameterStrategy
* @since 1.0.1
**/
@Slf4j
public class CheckParameterDateTimeFormatHandler implements CheckParameterStrategy {
/**
* 获取检查的注解类型。
*
* @return 需要检查的注解类型 {@link BizXCheckDateTimeFormat}
*/
@Override
public Class extends Annotation> getCheckAnnotation() {
return BizXCheckDateTimeFormat.class;
}
/**
* 检查参数是否符合注解的要求。
*
* @param annotation 需要检查的注解实例
* @param value 需要检查的对象
* @param className 类名称
* @param methodName 方法名称
* @param fieldName 参数名称
* @throws BizXVerificationException 如果检查不通过,则抛出此异常
*/
@Override
public void check(Annotation annotation, Object value, String className, String methodName, String fieldName) throws BizXVerificationException {
if (value == null) {
return;
}
if (annotation instanceof BizXCheckDateTimeFormat) {
BizXCheckDateTimeFormat check = Common.to(annotation);
try {
if (value instanceof String) {
String str = Common.to(value);
if (Common.isBlank(check.format())) {
DateTimeUtils.strToDate(str);
} else {
DateTimeUtils.strToDate(str, check.format());
}
} else if (value instanceof java.util.Date) {
DateTimeUtils.dateToStr(Common.to(value), check.format());
} else if (value instanceof Calendar) {
CalendarUtils.isValidFormat(Common.to(value), check.format());
}
} catch (Exception e) {
throw new BizXVerificationException(check.error().code(), check.error().message(), className, methodName, fieldName);
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy