commit
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
package com.spring.common.validation;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.util.Date;
|
||||
|
||||
import javax.validation.ConstraintValidator;
|
||||
import javax.validation.ConstraintValidatorContext;
|
||||
|
||||
import org.quartz.CronExpression;
|
||||
|
||||
public class CronExpressionValidator implements ConstraintValidator<ValidCronExpression, String> {
|
||||
|
||||
@Override
|
||||
public boolean isValid(String cronExpression, ConstraintValidatorContext context) {
|
||||
if (cronExpression == null || cronExpression.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
boolean result = false;
|
||||
if(CronExpression.isValidExpression(cronExpression)){
|
||||
try {
|
||||
CronExpression targetExpression = new CronExpression(cronExpression);
|
||||
if (targetExpression.getNextValidTimeAfter(new Date(System.currentTimeMillis())) != null) {
|
||||
result = true;
|
||||
}
|
||||
} catch (ParseException e) {
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.spring.common.validation;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
@Documented
|
||||
@Constraint(validatedBy = CronExpressionValidator.class)
|
||||
@Target({ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface ValidCronExpression {
|
||||
String message() default "Invalid cron expression";
|
||||
Class<?>[] groups() default {};
|
||||
Class<? extends Payload>[] payload() default {};
|
||||
}
|
||||
Reference in New Issue
Block a user