Skip to content

Commit 09a08ae

Browse files
chore: Add option to get the UID type of a UIDObject (#22875)
* chore: Add option to get the UID type of a UIDObject * format * chore: Update method name & add deprecation info
1 parent 6717a19 commit 09a08ae

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed

dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/UidObject.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,16 @@
3939
*/
4040
public interface UidObject {
4141
/**
42-
* @return external unique ID of the object as used in the RESTful API
42+
* @deprecated This method is being phased out in favour of {@link #getUID()} which provides type
43+
* safety, validation and security bonuses. Please use {@link #getUID()} instead.
44+
* @return external unique ID of the object as used in the RESTful API web api backward
45+
* compatibility
4346
*/
47+
@Deprecated(since = "2.43")
4448
@JsonProperty(value = "id")
4549
String getUid();
50+
51+
default UID getUID() {
52+
return UID.of(getUid());
53+
}
4654
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*
2+
* Copyright (c) 2004-2026, University of Oslo
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions are met:
7+
*
8+
* 1. Redistributions of source code must retain the above copyright notice, this
9+
* list of conditions and the following disclaimer.
10+
*
11+
* 2. Redistributions in binary form must reproduce the above copyright notice,
12+
* this list of conditions and the following disclaimer in the documentation
13+
* and/or other materials provided with the distribution.
14+
*
15+
* 3. Neither the name of the copyright holder nor the names of its contributors
16+
* may be used to endorse or promote products derived from this software without
17+
* specific prior written permission.
18+
*
19+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
23+
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
26+
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
*/
30+
package org.hisp.dhis.common;
31+
32+
import static org.junit.jupiter.api.Assertions.assertEquals;
33+
34+
import org.hisp.dhis.category.Category;
35+
import org.junit.jupiter.api.Test;
36+
37+
class UidObjectTest {
38+
39+
@Test
40+
void getUIDTest() {
41+
Category category = new Category();
42+
category.setAutoFields();
43+
UID uidType = category.getUID();
44+
assertEquals(category.getUid(), uidType.getValue());
45+
}
46+
}

0 commit comments

Comments
 (0)