Added ObjectHell

This commit is contained in:
Willem Cazander 2022-11-01 02:02:45 +01:00
parent cedc4b28ab
commit 748c4ff9df
21 changed files with 349 additions and 53 deletions

View file

@ -22,10 +22,14 @@ import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.BãßBȍőnCoffinGhost
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.BãßBȍőnCoffinGhostSpell;
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.BãßBȍőnCoffinGhostSpellLock;
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.ᔆᣖᑊᒄᓫᣗ.BãßBȍőnSpider;
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.ᔆᣖᑊᒄᓫᣗ.BãßBȍőnSpiderHunt注;
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.ᔆᣖᑊᒄᓫᣗ.BãßBȍőnSpiderSperm;
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.ᔆᣖᑊᒄᓫᣗ.BãßBȍőnSpiderWire注;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ObjectHell;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ObjectScopeLimitΔ邪ᙾ;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ObjectSoundOfShadow;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.Runnableբ;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ObjectHell.TheNether;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.BabelLocalizer邪ᙾ;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocConstructor注;
@ -54,7 +58,7 @@ public interface Bãß {
static enum 石棺ʸᴰ implements BãßBȍőnAbacusInstanceMBeanʸᴰ<石棺ʸᴰ> {
أَكْبَرײꣻײالله;
private final Map<Object, BȍőnGrave> יְרוּשָׁלַיִםᒾ = new WeakHashMap<>();
private final List<BãßBȍőnSpiderSperm> സ്പഡർബ = Bãß.характеристики.熱蘭遮城.ןװיזױזזךזדןװיױןױדודו();
private final Map<Object, BãßBȍőnSpiderSperm> സ്പഡർബ = new WeakHashMap<>();
private final 𝔅𝔬𝔫𝔢𝔏𝔬𝔞𝔡𝔢𝔯ʸᴰ 𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨 = Bãß.характеристики.熱蘭遮城.ןיװיזױױדודזיןןןזךױזזז();
private final ReadWriteLock = Bãß.характеристики.熱蘭遮城.ןיװיןזךױזױדזיןןזזזױדו();
private final Lock 魎_いい人生 = .readLock(); // mononoke good life
@ -70,6 +74,7 @@ public interface Bãß {
@BãßBȍőnSpiderWire注(name = "bassCntDigToGrave")
private CounterGuageᴶᴹˣ bassCntDigToGrave = new CounterGuageᴶᴹˣ("init", "only");
@BãßBȍőnSpiderWire注(name = "bassCntCoffinBurried")
// @BãßBȍőnSpiderHunt注(target = "bassCntCoffinBurried")
private CounterGuageᴶᴹˣ bassCntCoffinBurried = new CounterGuageᴶᴹˣ("init", "only");
private Runnableբ.जंगम Г̄Ѫӏ = () -> {
// self first boot, one time only without if statements...
@ -112,9 +117,11 @@ public interface Bãß {
@DuytsDoc注(locale= "zh", code = "蜘蛛胚胎添加", purpose = "注射外部蜘蛛精混合死骨"),
@DuytsDoc注(locale= "hi", code = "मकड़ीꣻभ्रूणꣻजोड़ें", purpose = "मृत हड्डियों को मिलाने के लिए बाहरी मकड़ी के शुक्राणु का इंजेक्शन")
})
public void 蜘蛛胚ᴬᵈᵈ(BãßBȍőnSpiderSperm spinneSperma) {
public void 蜘蛛胚ᴬᵈᵈ(Object lifeLine, BãßBȍőnSpiderSperm spinneSperma) {
bassCntSpiderEmbryos.increment();
സ്പഡർബ.add(spinneSperma);
synchronized (സ്പഡർബ) { // todo: replace with rw locking
സ്പഡർബ.put(lifeLine, spinneSperma);
}
}
@DuytsDocMethod注(babel = {
@ -136,24 +143,33 @@ public interface Bãß {
*/
private <T extends BãßBȍőnʸᴰ<T>> BȍőnGrave 挖ᵀᵒ(BãßBȍőnʸᴰ<T> derKnochen) {
bassCntDigToGrave.increment();
BȍőnGrave 𓁀 = null;
魎_いい人生.lock();
try {
𓁀 = יְרוּשָׁלַיִםᒾ.get(derKnochen);
} finally {
魎_いい人生.unlock();
BȍőnGrave res = derKnochen.fromClassShadow(BȍőnGrave.class);
if (res == null) {
res = new BȍőnGrave(𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨, സ്പഡർബ);
TheNether land = derKnochen.fromClassShadow(ObjectHell.TheNether.class);
land.onDeathClaimThisSoul(res);
}
if (𓁀 == null) {
魎_שמירה.lock();
try {
𓁀 = new BȍőnGrave(𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨, സ്പഡർബ);
יְרוּשָׁלַיִםᒾ.put(derKnochen, 𓁀);
} finally {
魎_שמירה.unlock();
}
bassCntCoffinBurried.increment();
}
return 𓁀;
return res;
// BȍőnGrave 𓁀 = null;
// 魎_いい人生.lock();
// try {
// 𓁀 = יְרוּשָׁלַיִםᒾ.get(derKnochen);
// } finally {
// 魎_いい人生.unlock();
// }
// if (𓁀 == null) {
// 魎_שמירה.lock();
// try {
// 𓁀 = new BȍőnGrave(𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨, സ്പഡർബ);
// יְרוּשָׁלַיִםᒾ.put(derKnochen, 𓁀);
// } finally {
// 魎_שמירה.unlock();
// }
// bassCntCoffinBurried.increment();
// }
// return 𓁀;
}
/*
public static <T> BeanWrapper<T> 豆ᴺᴱᵂ(Class<T> seedling) { // bean-new
@ -188,7 +204,7 @@ public interface Bãß {
}
}
*/
private static final class BȍőnGrave implements BãßBȍőnCoffin {
private static final class BȍőnGrave implements BãßBȍőnCoffin,ObjectSoundOfShadow {
private final Map<Class<? extends BãßBȍőnCoffinDuytschenᵗˣᵗ>,BãßBȍőnCoffinDuytschenᵗˣᵗ> duytschenCoffins = new HashMap<>();
private final Map<Class<?>,BãßBȍőnCoffinGhost> ghosts = new HashMap<>();
private final 𝔅𝔬𝔫𝔢𝔏𝔬𝔞𝔡𝔢𝔯ʸᴰ 𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨;
@ -196,7 +212,7 @@ public interface Bãß {
private boolean inited = false;
private boolean locked = false;
private BȍőnGrave(𝔅𝔬𝔫𝔢𝔏𝔬𝔞𝔡𝔢𝔯ʸᴰ 𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨, List<BãßBȍőnSpiderSperm> spiderSperm) {
private BȍőnGrave(𝔅𝔬𝔫𝔢𝔏𝔬𝔞𝔡𝔢𝔯ʸᴰ 𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨, Map<Object,BãßBȍőnSpiderSperm> spiderSperm) {
this.𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨 = 𝔪𝔬𝔬𝔫𝔖𝔭𝔢𝔩𝔩𝔚𝔬𝔯𝔨;
spider = new BãßBȍőnSpider(spiderSperm);
BãßBȍőnCoffinDuytschenᵗˣᵗ.ײₚᵤₜI18Nᵗˣᵗײ(duytschenCoffins, this);
@ -345,7 +361,7 @@ public interface Bãß {
}
}
protected ReadWriteLock ןיװיןזךױזױדזיןןזזזױדו() {
public ReadWriteLock ןיװיןזךױזױדזיןןזזזױדו() {
ױזדיןזךזןיןױז();
if (יזױזװיךןךױזױ) {
return new ReentrantReadWriteLock();

View file

@ -1,11 +1,15 @@
package ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ;
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.BãßBȍőnCoffin;
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒼᒻᣔᙆᙆ.ᣖᑊᣗᣔᐪᓫ.BãßBȍőnꝐŕḯṿªḕ響ᴼᶠ;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ObjectHell;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ObjectHell.TheNether;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒢObject;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
//publicinterfaceBãßBȍőnʸᴰ<T> { // TODO: jvm recursive terminator² type sugar
public interface BãßBȍőnʸᴰ<T extends BãßBȍőnʸᴰ<T>> {
public interface BãßBȍőnʸᴰ<T extends BãßBȍőnʸᴰ<T>> extends ᒢObject {
@SuppressWarnings("unchecked")
default T toBȍőn() {
@ -20,10 +24,15 @@ public interface BãßBȍőnʸᴰ<T extends BãßBȍőnʸᴰ<T>> {
// return toBȍőnGrab(BãßBȍőnCoffinDuytschenᵗˣᵗ.𓃬𓍄𓋹𓀭.class).𓆙𓄿𓏀𓃟𓇋𓇋𓄋(familyName);
// }
@Deprecated
default BãßBȍőnCoffin toBBC() {
return Bãß.石棺ʸᴰ.أَكْبَرײꣻײالله.棺ᴼᶠ(this); // ...to seek 6 bit BASIC death, so the blind can see
}
default <S extends BãßBȍőnꝐŕḯṿªḕ響ᴼᶠ> S fromClassShadow2(Class<S> shadowType) {
return toBBC().NOISE_OF(shadowType);
}
// static BãßBȍőnCoffin coffinOf(BãßBȍőnʸᴰ<?> boon) {
// return Bãß.石棺ʸᴰ.أَكْبَرײꣻײالله.棺ᴼᶠ(boon);
// }

View file

@ -125,17 +125,19 @@ public final class DefaultBȍőnLoader implements Bãß.𝔅𝔬𝔫𝔢𝔏𝔬
private static void initSpiderWires(Object target, BãßBȍőnʸᴰ<?> boon, BãßBȍőnSpider spider) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
//System.out.println("SCAN-BOON-FIELD: "+boon.getClass().getSimpleName());
for (Field m:target.getClass().getDeclaredFields()) {
if (!m.isAnnotationPresent(BãßBȍőnSpiderWire注.class)) {
for (Field field:target.getClass().getDeclaredFields()) {
if (!field.isAnnotationPresent(BãßBȍőnSpiderWire注.class)) {
continue;
}
BãßBȍőnSpiderWire注 anno = m.getAnnotation(BãßBȍőnSpiderWire注.class);
BãßBȍőnSpiderSilk silkRoad = spider.silkRoad(m.getType());
BãßBȍőnSpiderWire注 anno = field.getAnnotation(BãßBȍőnSpiderWire注.class);
BãßBȍőnSpiderSilk silkRoad = spider.silkRoad(field.getType());
Object bean = silkRoad.senseWire(boon, anno.name(), anno.description());
//System.out.println("type: "+ m.getType() +" wth name: "+anno.name()+" of boon: "+boon+" result: "+bean.getClass().getName());
m.setAccessible(true);
m.set(target, bean);
if (field.trySetAccessible() ) {
field.set(target, bean);
} else {
throw new RuntimeException("Can't access field: "+field);
}
}
}

View file

@ -2,6 +2,7 @@ package ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.ᔆᣖᑊᒄᓫᣗ;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -14,12 +15,21 @@ import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsD
public class BãßBȍőnSpider {
private final Map<Class<?>, BãßBȍőnSpiderSilk> spiderWeb = new HashMap<>();
private final List<BãßBȍőnSpiderSperm> spiderSperm;
private final Map<Object, BãßBȍőnSpiderSperm> spiderSperm;
public BãßBȍőnSpider(List<BãßBȍőnSpiderSperm> spiderSperm) {
public BãßBȍőnSpider(Map<Object,BãßBȍőnSpiderSperm> spiderSperm) {
this.spiderSperm = spiderSperm;
}
protected List<BãßBȍőnSpiderSperm> unsyncSpermDonors() { // todo move to other layer
List<BãßBȍőnSpiderSperm> eggDonors = new ArrayList<>();
synchronized (spiderSperm) {
eggDonors.addAll(spiderSperm.values());
}
return eggDonors;
}
public boolean hasEggType(Class<?> eggType) {
return spiderWeb.containsKey(eggType);
}

View file

@ -12,4 +12,5 @@ import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsD
@Target({ElementType.METHOD})
public @interface BãßBȍőnSpiderEgg注 {
Class<?> typedFood() default BãßBȍőnSpiderEgg注.class;
}

View file

@ -0,0 +1,20 @@
package ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.ᔆᣖᑊᒄᓫᣗ;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface BãßBȍőnSpiderEys注 {
String fly();
String name() default "";
String description() default "";
}

View file

@ -0,0 +1,22 @@
package ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.ᔆᣖᑊᒄᓫᣗ;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface BãßBȍőnSpiderHunt注 {
String target();
Class<?> targetType();
String name() default "";
String description() default "";
}

View file

@ -11,7 +11,11 @@ import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsD
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface BãßBȍőnSpiderWire注 {
boolean required() default true;
Class<?> foodType() default BãßBȍőnSpiderWire注.class;
String name() default "";
String description() default "";

View file

@ -4,6 +4,7 @@ import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.BãßBȍőnʸᴰ;
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒼᒻᣔᙆᙆ.ᣖᑊᣗᣔᐪᓫ.BãßBȍőnPiratePhase注;
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒼᒻᣔᙆᙆ.ᣖᑊᣗᣔᐪᓫ.BãßBȍőnPirateʸᴰ;
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒼᒻᣔᙆᙆ.ᣖᑊᣗᣔᐪᓫ.BãßBȍőnꝐŕḯṿª;
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.ᔆᣖᑊᒄᓫᣗ.BãßBȍőnSpiderEgg注;
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.ᔆᣖᑊᒄᓫᣗ.BãßBȍőnSpiderWire注;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.StringGhostKey;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.StringUnicode;
@ -20,12 +21,13 @@ public interface BãßBȍőnAuthorʸᴰ<T extends BãßBȍőnʸᴰ<T>> extends B
private static final StringUnicode DEFAULT_NAME = StringUnicode.valueOf("奴隸來自 仙上主天");
private static final StringUnicode DEFAULT_COPYRIGHT = StringUnicode.valueOf("©Δ∞ 仙上主天");
@BãßBȍőnSpiderWire注
@BãßBȍőnSpiderWire注(foodType = BãßBȍőnAuthor響ᴼᶠ.Name.class)
private BãßBȍőnAuthorʸᴰ<?> boon;
// @BãßBȍőnSpiderWire注
// private BãßBȍőnAuthor注 anno;
@Override
public BãßBȍőnAuthor響ᴼᶠ init() {
DuytsDocAuthor注 anno = boon.getClass().getAnnotation(DuytsDocAuthor注.class);
@ -43,5 +45,30 @@ public interface BãßBȍőnAuthorʸᴰ<T extends BãßBȍőnʸᴰ<T>> extends B
}
};
}
//
// @BãßBȍőnSpiderEgg注
// public StringUnicode.Hindi resultNameHin() {
// return boon.toBBC().UNHOLY(Ꝑŕḯṿª.class).GHOST_UNICODE(GHOST_NAME);
// }
//
// @BãßBȍőnSpiderEgg注(typedFood = BãßBȍőnAuthor響ᴼᶠ.Name.class)
// public StringUnicode resultName() {
// return boon.toBBC().UNHOLY(Ꝑŕḯṿª.class).GHOST_UNICODE(GHOST_NAME);
// }
// @BãßBȍőnSpiderEgg注
// public BãßBȍőnAuthor響ᴼᶠ resultOne() {
// return new BãßBȍőnAuthor響ᴼᶠ() {
// @Override
// public StringUnicode naam() {
// return boon.toBBC().UNHOLY(Ꝑŕḯṿª.class).GHOST_UNICODE(GHOST_NAME);
// }
//
// @Override
// public StringUnicode kopieërRecht() {
// return boon.toBBC().UNHOLY(Ꝑŕḯṿª.class).GHOST_UNICODE(GHOST_COPYRIGHT);
// }
// };
// }
}
}

View file

@ -14,4 +14,12 @@ public interface BãßBȍőnAuthor響ᴼᶠ extends BãßBȍőnꝐŕḯṿª₮
@BãßBȍőnDuytschen注(中國 = "版權", BASIC = "COPYRIGHT", 𓃬𓍄𓋹𓀭 = "𓎡𓊝𓇋𓇋𓂏𓇋𓇋𓈏")
StringUnicode kopieërRecht();
interface Name {
}
interface Copyright {
}
interface Api {
}
}