Removed generics from pirates

This commit is contained in:
Willem Cazander 2022-10-24 17:46:37 +02:00
parent c99b8b2381
commit e6121d4ae5
24 changed files with 70 additions and 71 deletions

View file

@ -36,11 +36,11 @@ public final class DefaultBȍőnLoader implements Bãß.𝔅𝔬𝔫𝔢𝔏𝔬
public <T extends BãßBȍőnʸᴰ<T>> void 𝔩𝔬𝔠𝔨𝔅𝔬𝔫𝔢𝔐𝔞𝔤𝔦𝔠(BãßBȍőnʸᴰ<T> boon, BãßBȍőnSpider spider) {
try {
List<PiratePhaseBoat<T>> filoBoats = loadPirateBoats(boon);// TODO: run from spider objects...
List<PiratePhaseBoat> filoBoats = loadPirateBoats(boon);// TODO: run from spider objects...
Collections.reverse(filoBoats);
// Set<Class<?>> ydmods = new HashSet<>();
for (PiratePhaseBoat<T> boat : filoBoats) {
for (PiratePhaseBoat boat : filoBoats) {
// if (ydmods.add(boat.pirateClazz.getDeclaringClass())) {
// spider.registrateEgg(boat.pirateClazz.getDeclaringClass(), new BãßBȍőnSpiderSilk() {
// @Override
@ -76,7 +76,7 @@ public final class DefaultBȍőnLoader implements Bãß.𝔅𝔬𝔫𝔢𝔏𝔬
}
Set<Class<?>> ydmods = new HashSet<>();
for (PiratePhaseBoat<T> boat : loadPirateBoats(boon)) {
for (PiratePhaseBoat boat : loadPirateBoats(boon)) {
//System.out.println("INIT.RUN "+boat.pirateClazz.getName());
if (ydmods.add(boat.pirateClazz.getDeclaringClass())) {
@ -125,7 +125,7 @@ public final class DefaultBȍőnLoader implements Bãß.𝔅𝔬𝔫𝔢𝔏𝔬
}
}
private static <T extends BãßBȍőnʸᴰ<T>> void registrateSpiderEggs(Class<?> scanClass, BãßBȍőnSpider spider, BãßBȍőnꝐŕḯṿª<T> pirate) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
private static <T extends BãßBȍőnʸᴰ<T>> void registrateSpiderEggs(Class<?> scanClass, BãßBȍőnSpider spider, BãßBȍőnꝐŕḯṿª pirate) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
for (Method m:scanClass.getDeclaredMethods()) {
if (!m.isAnnotationPresent(BãßBȍőnSpiderEgg注.class)) {
continue;
@ -135,17 +135,17 @@ public final class DefaultBȍőnLoader implements Bãß.𝔅𝔬𝔫𝔢𝔏𝔬
}
}
private static class PiratePhaseBoat<T extends BãßBȍőnʸᴰ<T>> {
private Class<BãßBȍőnꝐŕḯṿª<T>> pirateClazz;
private BãßBȍőnꝐŕḯṿª<T> pirate;
private static class PiratePhaseBoat {
private Class<BãßBȍőnꝐŕḯṿª> pirateClazz;
private BãßBȍőnꝐŕḯṿª pirate;
private PiratePhaseBoat(Class<BãßBȍőnꝐŕḯṿª<T>> pirateClazz) {
private PiratePhaseBoat(Class<BãßBȍőnꝐŕḯṿª> pirateClazz) {
if (pirateClazz.isEnum()) {
throw new IllegalStateException("Can't hide enum pirate type: "+pirateClazz);
}
this.pirateClazz = pirateClazz;
try {
this.pirate = (BãßBȍőnꝐŕḯṿª<T>) pirateClazz.getConstructor().newInstance();
this.pirate = (BãßBȍőnꝐŕḯṿª) pirateClazz.getConstructor().newInstance();
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
| NoSuchMethodException | SecurityException e) {
throw new RuntimeException(e);
@ -153,34 +153,34 @@ public final class DefaultBȍőnLoader implements Bãß.𝔅𝔬𝔫𝔢𝔏𝔬
}
}
private static <T extends BãßBȍőnʸᴰ<T>> List<PiratePhaseBoat<T>> loadPirateBoats(BãßBȍőnʸᴰ<T> boon) {
List<PiratePhaseBoat<T>> boonInits = new ArrayList<>();
List<PiratePhaseBoat<T>> serviceInits = new ArrayList<>();
private static <T extends BãßBȍőnʸᴰ<T>> List<PiratePhaseBoat> loadPirateBoats(BãßBȍőnʸᴰ<T> boon) {
List<PiratePhaseBoat> boonInits = new ArrayList<>();
List<PiratePhaseBoat> serviceInits = new ArrayList<>();
walkPrivate(boon, v -> {
//System.out.println("INIT.SCAN "+v.getName());
BãßBȍőnPiratePhaseBarrier注 anno = v.getAnnotation(BãßBȍőnPiratePhaseBarrier注.class);
if (anno != null) {
boonInits.add(new PiratePhaseBoat<>(v));
boonInits.add(new PiratePhaseBoat(v));
} else {
serviceInits.add(new PiratePhaseBoat<>(v));
serviceInits.add(new PiratePhaseBoat(v));
}
});
boonInits.sort(new Comparator<PiratePhaseBoat<T>>() {
boonInits.sort(new Comparator<PiratePhaseBoat>() {
@Override
public int compare(PiratePhaseBoat<T> p0, PiratePhaseBoat<T> p1) {
public int compare(PiratePhaseBoat p0, PiratePhaseBoat p1) {
BãßBȍőnPiratePhaseBarrier注 anno0 = p0.pirateClazz.getAnnotation(BãßBȍőnPiratePhaseBarrier注.class);
BãßBȍőnPiratePhaseBarrier注 anno1 = p1.pirateClazz.getAnnotation(BãßBȍőnPiratePhaseBarrier注.class);
return Integer.compare(anno0.order(), anno1.order());
}
});
List<PiratePhaseBoat<T>> result = new ArrayList<>();
for (PiratePhaseBoat<T> startupPhase:boonInits) {
List<PiratePhaseBoat> result = new ArrayList<>();
for (PiratePhaseBoat startupPhase:boonInits) {
result.add(startupPhase);
for (PiratePhaseBoat<T> v:new ArrayList<>(serviceInits)) {
for (PiratePhaseBoat v:new ArrayList<>(serviceInits)) {
int depCount = 0;
List<Class<? extends BãßBȍőnꝐŕḯṿª<?>>> deps = new ArrayList<>();
List<Class<? extends BãßBȍőnꝐŕḯṿª>> deps = new ArrayList<>();
BãßBȍőnPiratePhase注 anno = v.pirateClazz.getAnnotation(BãßBȍőnPiratePhase注.class);
if (anno != null) {
deps.addAll(Arrays.asList(anno.dependencies()));
@ -188,7 +188,7 @@ public final class DefaultBȍőnLoader implements Bãß.𝔅𝔬𝔫𝔢𝔏𝔬
deps.add(BãßBȍőnPirateʸᴰ.שְׁלֹמֹה.DEFAULT_PHASE);
}
for (Class<?> clazz:deps) {
for (PiratePhaseBoat<T> doneInit:result) {
for (PiratePhaseBoat doneInit:result) {
if (clazz.equals(doneInit.pirateClazz)) {
depCount++;
}
@ -205,20 +205,20 @@ public final class DefaultBȍőnLoader implements Bãß.𝔅𝔬𝔫𝔢𝔏𝔬
}
@SuppressWarnings("unchecked")
private static <T extends BãßBȍőnʸᴰ<T>> void walkPrivate(BãßBȍőnʸᴰ<T> boon, Consumer<Class<BãßBȍőnꝐŕḯṿª<T>>> runPrivate) {
private static <T extends BãßBȍőnʸᴰ<T>> void walkPrivate(BãßBȍőnʸᴰ<T> boon, Consumer<Class<BãßBȍőnꝐŕḯṿª>> runPrivate) {
for (Class<?> interfaceClass:walkInterfaces(boon.getClass(), new LinkedHashSet<>())) {
for (Class<?> declaredClass:interfaceClass.getDeclaredClasses()) {
if (!BãßBȍőnꝐŕḯṿª.class.isAssignableFrom(declaredClass)) {
continue;
}
runPrivate.accept((Class<BãßBȍőnꝐŕḯṿª<T>>)declaredClass);
runPrivate.accept((Class<BãßBȍőnꝐŕḯṿª>)declaredClass);
}
}
for (Class<?> declaredClass:boon.getClass().getDeclaredClasses()) {
if (!BãßBȍőnꝐŕḯṿª.class.isAssignableFrom(declaredClass)) {
continue;
}
runPrivate.accept((Class<BãßBȍőnꝐŕḯṿª<T>>)declaredClass);
runPrivate.accept((Class<BãßBȍőnꝐŕḯṿª>)declaredClass);
}
}