Skip to content

Package: Convert

Convert

Coverage

1: /*
2: * JOPA
3: * Copyright (C) 2023 Czech Technical University in Prague
4: *
5: * This library is free software; you can redistribute it and/or
6: * modify it under the terms of the GNU Lesser General Public
7: * License as published by the Free Software Foundation; either
8: * version 3.0 of the License, or (at your option) any later version.
9: *
10: * This library is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public
16: * License along with this library.
17: */
18: package cz.cvut.kbss.jopa.model.annotations;
19:
20: import java.lang.annotation.ElementType;
21: import java.lang.annotation.Retention;
22: import java.lang.annotation.RetentionPolicy;
23: import java.lang.annotation.Target;
24:
25: /**
26: * Specifies the conversion of a Basic field or property.
27: * <p>
28: * The {@code Convert} annotation should not be used to specify conversion of the following: Id attributes, version
29: * attributes, relationship attributes, and attributes explicitly denoted as Enumerated or Temporal. Applications that
30: * specify such conversions will not be portable.
31: * <p>
32: * The {@code Convert} annotation may be applied to a basic attribute or to an element collection of basic type (in
33: * which case the converter is applied to the elements of the collection).
34: */
35: @Target({ElementType.FIELD,ElementType.METHOD})
36: @Retention(RetentionPolicy.RUNTIME)
37: public @interface Convert {
38:
39: /**
40: * Specifies the converter to be applied.
41: * <p>
42: * A value for this element must be specified if multiple converters would otherwise apply.
43: */
44: Class<?> converter() default void.class;
45:
46: /**
47: * Used to disable an auto-apply converter. If disableConversion is true, the converter element should not be
48: * specified.
49: */
50: boolean disableConversion() default false;
51: }