Skip to content

Commit 79d5d6f

Browse files
committed
Merge remote-tracking branch 'origin/main'
2 parents 5cf40de + 9ebb588 commit 79d5d6f

File tree

25 files changed

+281
-145
lines changed

25 files changed

+281
-145
lines changed

lombok.config

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ lombok.accessors.chain = true
66
lombok.builder.classname = Builder
77
lombok.fielddefaults.defaultprivate = true
88
lombok.equalsandhashcode.callsuper = CALL
9+
lombok.toString.callSuper = CALL
910
lombok.copyableannotations += com.fasterxml.jackson.annotation.JsonIgnore
1011
lombok.copyableannotations += org.intellij.lang.annotations.Language
11-
lombok.copyableannotations += org.comroid.annotations.Ignore
12+
lombok.copyableannotations += org.comroid.annotations.Ignore
13+
lombok.utilityClass.flagUsage = error

src/main/java/org/comroid/annotations/internal/Annotations.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import lombok.AllArgsConstructor;
66
import lombok.SneakyThrows;
77
import lombok.Value;
8-
import lombok.experimental.UtilityClass;
98
import lombok.extern.java.Log;
109
import org.comroid.annotations.Alias;
1110
import org.comroid.annotations.Category;
@@ -54,10 +53,17 @@
5453
import static org.comroid.api.func.util.Streams.*;
5554

5655
@Log
57-
@UtilityClass
5856
@ApiStatus.Internal
5957
@SuppressWarnings({ "DuplicatedCode", "BooleanMethodIsAlwaysInverted" })
6058
public class Annotations {
59+
public static boolean readonly(AnnotatedElement element) {
60+
return concat(of(Readonly.class),
61+
SoftDepend.<Annotation>type("jakarta.persistence.Id").stream()).flatMap(type -> findAnnotations(type,
62+
element))
63+
.findAny()
64+
.isPresent();
65+
}
66+
6167
public static final Class<?>[] SystemFilters = new Class<?>[]{ Object.class, Class.class, Annotation.class };
6268

6369
@ApiStatus.Experimental
@@ -66,10 +72,8 @@ public static Constraint.API expect(AnnotatedElement context) {
6672
return Constraint.fail();
6773
}
6874

69-
public static boolean readonly(AnnotatedElement element) {
70-
return concat(of(Readonly.class), SoftDepend.<Annotation>type("javax.persistence.Id").stream()).flatMap(type -> findAnnotations(type, element))
71-
.findAny()
72-
.isPresent();
75+
private Annotations() {
76+
throw new UnsupportedOperationException();
7377
}
7478

7579
public static Set<String> aliases(@NotNull AnnotatedElement of) {

src/main/java/org/comroid/api/Polyfill.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.comroid.api;
22

3-
import lombok.experimental.UtilityClass;
43
import org.comroid.annotations.Doc;
54
import org.comroid.api.data.RegExpUtil;
65
import org.comroid.api.func.Provider;
@@ -47,8 +46,11 @@
4746
import static java.util.Objects.*;
4847

4948
@Experimental
50-
@UtilityClass
5149
public final class Polyfill {
50+
private Polyfill() {
51+
throw new UnsupportedOperationException();
52+
}
53+
5254
private static final CompletableFuture<?> infiniteFuture = new CompletableFuture<>();
5355
private static final Pattern DURATION_PATTERN = Pattern.compile(
5456
"((?<amount>\\d+)(?<unit>[yMwdhms][oi]?n?))");

src/main/java/org/comroid/api/comp/Base64.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package org.comroid.api.comp;
22

3-
import java.io.BufferedReader;
4-
import java.io.IOException;
5-
import java.io.InputStreamReader;
63
import java.nio.charset.StandardCharsets;
74

85
import static java.util.Base64.*;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package org.comroid.api.func;
2+
3+
public interface BuilderDelegate<T, B> {
4+
B builder();
5+
6+
T build(B builder);
7+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package org.comroid.api.func;
2+
3+
import org.comroid.api.func.util.GetOrCreate;
4+
import org.jetbrains.annotations.Nullable;
5+
6+
import java.util.Objects;
7+
import java.util.Optional;
8+
import java.util.function.Function;
9+
import java.util.stream.Stream;
10+
11+
public interface QueryOps<Key, It, Builder> {
12+
Stream<It> all();
13+
14+
default Optional<It> any() {
15+
return all().findAny();
16+
}
17+
18+
Optional<It> get(Key key);
19+
20+
GetOrCreate<It, Builder> getOrCreate(@Nullable Key key);
21+
22+
default GetOrCreate<It, Builder> create() {
23+
return getOrCreate(null);
24+
}
25+
26+
default <NewKey> QueryOps<NewKey, It, Builder> by(final Function<It, NewKey> keyFunction) {
27+
final var parent = this;
28+
return new QueryOps<>() {
29+
@Override
30+
public Stream<It> all() {
31+
return parent.all();
32+
}
33+
34+
@Override
35+
public Optional<It> get(NewKey key) {
36+
return all().filter(it -> Objects.equals(keyFunction.apply(it), key)).findFirst();
37+
}
38+
39+
@Override
40+
public GetOrCreate<It, Builder> getOrCreate(NewKey key) {
41+
return parent.getOrCreate(null).setGet(() -> get(key).orElse(null));
42+
}
43+
};
44+
}
45+
}

src/main/java/org/comroid/api/func/util/Bitmask.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import lombok.Value;
44
import lombok.experimental.NonFinal;
5-
import lombok.experimental.UtilityClass;
65
import org.comroid.annotations.Convert;
76
import org.comroid.annotations.Default;
87
import org.comroid.annotations.Instance;
@@ -30,8 +29,11 @@
3029
import java.util.stream.LongStream;
3130
import java.util.stream.Stream;
3231

33-
@UtilityClass
3432
public final class Bitmask {
33+
private Bitmask() {
34+
throw new UnsupportedOperationException();
35+
}
36+
3537
private static final Map<Class<?>, AtomicLong> LAST_FLAG = new ConcurrentHashMap<>();
3638
public static final long EMPTY = 0x0;
3739

src/main/java/org/comroid/api/func/util/Debug.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.comroid.api.func.util;
22

3-
import lombok.experimental.UtilityClass;
43
import org.comroid.api.data.seri.DataNode;
54
import org.comroid.api.func.comp.StringBasedComparator;
65
import org.comroid.api.info.Log;
@@ -21,9 +20,12 @@
2120
import static java.util.stream.IntStream.*;
2221
import static org.comroid.api.java.StackTraceUtils.*;
2322

24-
@UtilityClass
2523
@lombok.extern.java.Log
2624
public final class Debug {
25+
private Debug() {
26+
throw new UnsupportedOperationException();
27+
}
28+
2729
public static String[] DEBUG_ENV_KEYS = new String[]{ "DEBUG", "DEBUG_ENV", "IS_DEBUG", "TRACE", "TRACE_ENV", "IS_TRACE" };
2830
public static BooleanSupplier[] IS_DEBUG_CHECKS = new BooleanSupplier[]{ Debug::isDebugEnv };
2931
public static Logger logger = Log.get(Debug.class);
Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,25 @@
11
package org.comroid.api.func.util;
22

3-
import lombok.experimental.UtilityClass;
4-
53
import java.util.Optional;
4+
import java.util.function.BiFunction;
65
import java.util.function.Function;
76

87
import static java.util.Optional.*;
98

10-
@UtilityClass
9+
@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
1110
public class Optionals {
1211
public static <I, O> Function<I, Optional<O>> cast(Class<? extends O> type) {
1312
return x -> type.isInstance(x) ? of(type.cast(x)) : empty();
1413
}
14+
15+
public static <T, A, R> Function<T, Optional<R>> combine(
16+
Optional<A> other,
17+
BiFunction<T, A, Optional<R>> combiner
18+
) {
19+
return t -> other.flatMap(a -> combiner.apply(t, a));
20+
}
21+
22+
private Optionals() {
23+
throw new AbstractMethodError("no");
24+
}
1525
}

0 commit comments

Comments
 (0)