Skip to content

Commit 488d543

Browse files
committed
refactor(core): replace jakarta annotation with jspecify for nullability
- Replace jakarta.annotation.Nonnull with org.jspecify.annotations.NonNull - Replace jakarta.annotation.Nullable with org.jspecify.annotations.Nullable - Update build.gradle.kts to use jspecify dependency instead of jakarta.annotation.api - Update libs.versions.toml to reference jspecify version 1.0.0 - Apply jspecify annotations consistently across all affected classes - Remove deprecated jakarta annotation imports from all files
1 parent a32d8e4 commit 488d543

File tree

59 files changed

+233
-315
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+233
-315
lines changed

cosid-core/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@
1212
*/
1313

1414
dependencies {
15-
api(libs.jakarta.annotation.api)
15+
api(libs.jspecify)
1616
testImplementation(project(":cosid-test"))
1717
}

cosid-core/src/main/java/me/ahoo/cosid/Decorator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package me.ahoo.cosid;
22

33
import com.google.errorprone.annotations.ThreadSafe;
4-
import jakarta.annotation.Nonnull;
4+
import org.jspecify.annotations.NonNull;
55

66
/**
77
* Decorator pattern interface for wrapping and enhancing ID generators.
@@ -36,7 +36,7 @@ public interface Decorator<D> {
3636
*
3737
* @return The actual object being decorated
3838
*/
39-
@Nonnull
39+
@NonNull
4040
D getActual();
4141

4242
/**

cosid-core/src/main/java/me/ahoo/cosid/IdConverter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import me.ahoo.cosid.stat.Statistical;
1818

1919
import com.google.errorprone.annotations.ThreadSafe;
20-
import jakarta.annotation.Nonnull;
20+
import org.jspecify.annotations.NonNull;
2121

2222
/**
2323
* ID converter for transforming between numeric and string representations of IDs.
@@ -52,7 +52,7 @@ public interface IdConverter extends Statistical {
5252
* @param id The {@code long} type ID to convert
5353
* @return The {@link String} representation of the ID
5454
*/
55-
@Nonnull
55+
@NonNull
5656
String asString(long id);
5757

5858
/**
@@ -66,7 +66,7 @@ public interface IdConverter extends Statistical {
6666
* @param idString The {@link String} type ID to convert
6767
* @return The {@code long} representation of the ID
6868
*/
69-
long asLong(@Nonnull String idString);
69+
long asLong(@NonNull String idString);
7070

7171
/**
7272
* Get statistical information about this converter.

cosid-core/src/main/java/me/ahoo/cosid/IdGenerator.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import me.ahoo.cosid.stat.generator.IdGeneratorStat;
1919

2020
import com.google.errorprone.annotations.ThreadSafe;
21-
import jakarta.annotation.Nonnull;
21+
import org.jspecify.annotations.NonNull;
2222

2323
/**
2424
* Id Generator.
@@ -51,7 +51,7 @@ public interface IdGenerator extends StringIdGenerator, Statistical {
5151
*
5252
* @return ID converter for transforming numeric IDs to string format
5353
*/
54-
@Nonnull
54+
@NonNull
5555
default IdConverter idConverter() {
5656
return Radix62IdConverter.PAD_START;
5757
}
@@ -76,9 +76,8 @@ default IdConverter idConverter() {
7676
*
7777
* @return A unique distributed ID as a string value
7878
*/
79-
@Nonnull
8079
@Override
81-
default String generateAsString() {
80+
default @NonNull String generateAsString() {
8281
return idConverter().asString(generate());
8382
}
8483

cosid-core/src/main/java/me/ahoo/cosid/IdGeneratorDecorator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import me.ahoo.cosid.stat.generator.IdGeneratorStat;
44

55
import com.google.errorprone.annotations.ThreadSafe;
6-
import jakarta.annotation.Nonnull;
6+
import org.jspecify.annotations.NonNull;
77

88
/**
99
* IdGenerator decorator for enhancing ID generator functionality.
@@ -38,7 +38,7 @@ public interface IdGeneratorDecorator extends IdGenerator, Decorator<IdGenerator
3838
*
3939
* @return The actual ID generator being decorated
4040
*/
41-
@Nonnull
41+
@NonNull
4242
IdGenerator getActual();
4343

4444
/**

cosid-core/src/main/java/me/ahoo/cosid/IntegerIdGenerator.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
package me.ahoo.cosid;
1515

1616
import com.google.errorprone.annotations.ThreadSafe;
17-
import jakarta.annotation.Nonnull;
17+
import org.jspecify.annotations.NonNull;
1818

1919
/**
2020
* Integer ID generator that adapts a long-based ID generator to produce integer IDs.
@@ -91,9 +91,8 @@ public int generate() throws IdOverflowException {
9191
* @return A unique distributed ID as a string value
9292
* @throws IdOverflowException if the generated long ID exceeds the integer range
9393
*/
94-
@Nonnull
9594
@Override
96-
public String generateAsString() throws IdOverflowException {
95+
public @NonNull String generateAsString() throws IdOverflowException {
9796
long id = actual.generate();
9897
ensureInteger(id);
9998
return actual.idConverter().asString(id);

cosid-core/src/main/java/me/ahoo/cosid/StringIdGenerator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616

1717
import com.google.errorprone.annotations.ThreadSafe;
18-
import jakarta.annotation.Nonnull;
18+
import org.jspecify.annotations.NonNull;
1919

2020
/**
2121
* String type ID generator.
@@ -40,6 +40,6 @@ public interface StringIdGenerator {
4040
*
4141
* @return A unique distributed ID as a string value
4242
*/
43-
@Nonnull
43+
@NonNull
4444
String generateAsString();
4545
}

cosid-core/src/main/java/me/ahoo/cosid/StringIdGeneratorDecorator.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
package me.ahoo.cosid;
1515

16-
import jakarta.annotation.Nonnull;
16+
import org.jspecify.annotations.NonNull;
1717

1818
/**
1919
* String ID generator decorator for customizing string ID generation.
@@ -72,9 +72,8 @@ public StringIdGeneratorDecorator(IdGenerator actual, IdConverter idConverter) {
7272
*
7373
* @return The custom ID converter
7474
*/
75-
@Nonnull
7675
@Override
77-
public IdConverter idConverter() {
76+
public @NonNull IdConverter idConverter() {
7877
return idConverter;
7978
}
8079

@@ -86,7 +85,7 @@ public IdConverter idConverter() {
8685
*
8786
* @return The actual ID generator being decorated
8887
*/
89-
@Nonnull
88+
@NonNull
9089
@Override
9190
public IdGenerator getActual() {
9291
return actual;

cosid-core/src/main/java/me/ahoo/cosid/converter/DatePrefixIdConverter.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import me.ahoo.cosid.stat.Stat;
1919
import me.ahoo.cosid.stat.converter.DatePrefixConverterStat;
2020

21-
import jakarta.annotation.Nonnull;
21+
import org.jspecify.annotations.NonNull;
2222

2323
import java.time.LocalDateTime;
2424
import java.time.format.DateTimeFormatter;
@@ -37,22 +37,20 @@ public DatePrefixIdConverter(String pattern, String delimiter, IdConverter actua
3737
}
3838

3939

40-
@Nonnull
4140
@Override
42-
public String asString(long id) {
41+
public @NonNull String asString(long id) {
4342
return LocalDateTime.now().format(formatter) + delimiter + actual.asString(id);
4443
}
4544

4645
@Override
47-
public long asLong(@Nonnull String idString) {
46+
public long asLong(@NonNull String idString) {
4847
int appendedLength = pattern.length() + delimiter.length();
4948
String idStr = idString.substring(appendedLength);
5049
return actual.asLong(idStr);
5150
}
5251

53-
@Nonnull
5452
@Override
55-
public IdConverter getActual() {
53+
public @NonNull IdConverter getActual() {
5654
return actual;
5755
}
5856

cosid-core/src/main/java/me/ahoo/cosid/converter/GroupedPrefixIdConverter.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
import me.ahoo.cosid.stat.Stat;
2020
import me.ahoo.cosid.stat.converter.GroupedPrefixConverterStat;
2121

22-
import jakarta.annotation.Nonnull;
2322
import com.google.common.base.Preconditions;
23+
import org.jspecify.annotations.NonNull;
2424

2525
public class GroupedPrefixIdConverter implements IdConverter, Decorator<IdConverter> {
2626
public static final String DEFAULT_DELIMITER = "-";
@@ -33,19 +33,17 @@ public GroupedPrefixIdConverter(String delimiter, IdConverter actual) {
3333
this.actual = actual;
3434
}
3535

36-
@Nonnull
3736
@Override
38-
public IdConverter getActual() {
37+
public @NonNull IdConverter getActual() {
3938
return actual;
4039
}
4140

4241
public String getDelimiter() {
4342
return delimiter;
4443
}
4544

46-
@Nonnull
4745
@Override
48-
public String asString(long id) {
46+
public @NonNull String asString(long id) {
4947
String idStr = actual.asString(id);
5048
String groupKey = GroupedAccessor.requiredGet().getKey();
5149
if (delimiter.isEmpty()) {
@@ -55,7 +53,7 @@ public String asString(long id) {
5553
}
5654

5755
@Override
58-
public long asLong(@Nonnull String idString) {
56+
public long asLong(@NonNull String idString) {
5957
throw new UnsupportedOperationException("GroupedPrefixIdConverter does not support converting String to Long!");
6058
}
6159

0 commit comments

Comments
 (0)