Skip to content

Package: JsonLdAttributeOrder

JsonLdAttributeOrder

Coverage

1: /*
2: * JB4JSON-LD
3: * Copyright (C) 2024 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.jsonld.annotation;
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: * Annotation that can be used to define ordering (possibly partial) to use when serializing object attributes.
27: * <p>
28: * Attributes included in annotation declaration will be serialized first (in defined order), followed by any attributes
29: * not included in the definition.
30: * <p>
31: * Note that this annotation expects the values to be names of the Java attributes, NOT their JSON-LD counterparts (IRIs).
32: */
33: @Target(ElementType.TYPE)
34: @Retention(RetentionPolicy.RUNTIME)
35: public @interface JsonLdAttributeOrder {
36:
37: /**
38: * Order in which properties of annotated object are to be handled.
39: *
40: * @return Array of Java attribute names in order in which they should be processed
41: */
42: String[] value() default {};
43: }