Removed generics from pirates
This commit is contained in:
parent
c99b8b2381
commit
e6121d4ae5
24 changed files with 70 additions and 71 deletions
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue