Skip to content

Package: Id

Id

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.Documented;
21: import java.lang.annotation.ElementType;
22: import java.lang.annotation.Retention;
23: import java.lang.annotation.RetentionPolicy;
24: import java.lang.annotation.Target;
25:
26: /**
27: * Specifies the identifier of an entity.
28: *
29: * The basic identifier types that have to be supported are {@link java.net.URI}, {@link java.net.URL} and {@link String}.
30: */
31: @Documented
32: @Retention(RetentionPolicy.RUNTIME)
33: @Target(ElementType.FIELD)
34: public @interface Id {
35:
36: /**
37: * Generates the identifier on persist if it is null.
38: *
39: * @return Whether the id is generated
40: */
41: boolean generated() default false;
42: }