gdxapp4d/gdxapp4d-lib-bassboonyd/src/main/java/love/distributedrebirth/bassboonyd/DefaultEnumSetʸᴰ.java

78 lines
2.5 KiB
Java
Raw Normal View History

2022-02-02 16:29:29 +01:00
package love.distributedrebirth.bassboonyd;
import java.util.Arrays;
import java.util.List;
2022-02-11 13:48:24 +01:00
import java.util.Map;
import java.util.function.Consumer;
2022-02-11 13:48:24 +01:00
import java.util.function.Function;
import java.util.stream.Collectors;
2022-10-17 16:42:12 +02:00
import love.distributedrebirth.bassboonyd.clazz.BãßBȍőnAuthor注;
2022-10-17 16:25:23 +02:00
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿª;
import love.distributedrebirth.bassboonyd.sinit.BãßBȍőnꝐŕḯṿªḕInit注;
2022-10-15 02:34:58 +02:00
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
2022-10-17 19:05:12 +02:00
public interface DefaultEnumSetʸᴰ<T, K extends BãßBȍőnCoffinNail> extends DefaultEnumBaseʸᴰ<T,K> {
2022-10-14 01:35:53 +02:00
public static class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª {
private static final String GHOST_KEY_RANG_TEL_EEN = "rangTelEen";
2022-10-15 02:34:58 +02:00
@BãßBȍőnꝐŕḯṿªḕInit注()
private static void init(DefaultEnumSetʸᴰ<?,?> boon) {
boon.toBBC().UNHOLY(Ꝑŕḯṿª.class).PUT_GHOST(GHOST_KEY_RANG_TEL_EEN, boon.BȍőnRangTelNul() + Bãß.Cỗᶇṧⱦᶏꬼȶʂ.INT_ONE);
2022-10-14 01:35:53 +02:00
}
}
2022-02-02 17:34:46 +01:00
2022-02-02 18:01:10 +01:00
default int BȍőnRangTelNul() {
2022-02-02 17:34:46 +01:00
return ordinal();
}
2022-02-02 18:01:10 +01:00
default int BȍőnRangTelEen() {
2022-10-15 13:20:04 +02:00
return toBBC().UNHOLY(Ꝑŕḯṿª.class).GHOST_INT(Ꝑŕḯṿª.GHOST_KEY_RANG_TEL_EEN);
2022-02-02 17:34:46 +01:00
}
2022-02-02 18:01:10 +01:00
default List<T> BãßInstancesList() {
return Arrays.asList(BãßInstances());
}
2022-10-14 01:35:53 +02:00
default Map<String,T> BãßInstancesToMap(Function<T,String> keyMapper) {
2022-02-11 13:48:24 +01:00
return BãßInstancesList().stream().collect(Collectors.toMap(keyMapper, v -> v));
}
2022-02-02 18:01:10 +01:00
default T BȍőnVolgende() {
T[] values = BãßInstances();
int resultIndex = Bãß.Cỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;
for (int i=Bãß.Cỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;i<values.length;i++) {
if (this == values[i]) {
resultIndex = i + Bãß.Cỗᶇṧⱦᶏꬼȶʂ.INT_ONE;
break;
}
}
if (resultIndex == values.length) {
resultIndex = Bãß.Cỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;
}
return values[resultIndex];
}
2022-02-02 18:01:10 +01:00
default T BȍőnVorige() {
T[] values = BãßInstances();
int resultIndex = Bãß.Cỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;
for (int i=Bãß.Cỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;i<values.length;i++) {
if (this == values[i]) {
resultIndex = i - Bãß.Cỗᶇṧⱦᶏꬼȶʂ.INT_ONE;
break;
}
}
if (resultIndex < Bãß.Cỗᶇṧⱦᶏꬼȶʂ.INT_ZERO) {
resultIndex = values.length - Bãß.Cỗᶇṧⱦᶏꬼȶʂ.INT_ONE;
}
return values[resultIndex];
}
2022-02-02 18:55:21 +01:00
default void BãßVoorElk(Consumer<T> consumer) {
2022-02-02 18:01:10 +01:00
for (T value:BãßInstances()) {
consumer.accept(value);
}
}
}