xref: /OpenGrok/opengrok-indexer/src/main/java/org/opengrok/indexer/web/api/constraints/PositiveDuration.java (revision aa6abf429bacc2c0baa482bff3022e77ef23c183)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * See LICENSE.txt included in this distribution for the specific
9  * language governing permissions and limitations under the License.
10  *
11  * When distributing Covered Code, include this CDDL HEADER in each
12  * file and include the License file at LICENSE.txt.
13  * If applicable, add the following below this CDDL HEADER, with the
14  * fields enclosed by brackets "[]" replaced with your own identifying
15  * information: Portions Copyright [yyyy] [name of copyright owner]
16  *
17  * CDDL HEADER END
18  */
19 
20 /*
21  * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
22  */
23 package org.opengrok.indexer.web.api.constraints;
24 
25 import jakarta.validation.Constraint;
26 import jakarta.validation.Payload;
27 
28 import java.lang.annotation.ElementType;
29 import java.lang.annotation.Retention;
30 import java.lang.annotation.RetentionPolicy;
31 import java.lang.annotation.Target;
32 
33 /**
34  * Validate that the annotated {@link java.time.Duration} is not null and positive.
35  */
36 @Constraint(validatedBy = PositiveDurationValidator.class)
37 @Target(ElementType.FIELD)
38 @Retention(RetentionPolicy.RUNTIME)
39 public @interface PositiveDuration {
40 
message()41     String message() default "{org.opengrok.indexer.web.api.constraints.PositiveDuration.message}";
42 
groups()43     Class<?>[] groups() default {};
44 
payload()45     Class<? extends Payload>[] payload() default {};
46 
47 }
48