Replacement for java.lang.String is needed

This commit is contained in:
Willem Cazander 2022-10-24 03:57:39 +02:00
parent be643fa4bb
commit ac1e1e5c43
27 changed files with 692 additions and 390 deletions

View file

@ -13,9 +13,9 @@ import love.distributedrebirth.bassboon.Bãß;
import love.distributedrebirth.bassboon.DefaultBãßBȍőnʸᴰ; import love.distributedrebirth.bassboon.DefaultBãßBȍőnʸᴰ;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª;
import love.distributedrebirth.bassboon.death.GhostKey鬼鑰匙;
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderEgg注; import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderEgg注;
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注; import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4Unicode4DService; import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4Unicode4DService;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection; import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
@ -45,7 +45,7 @@ public class NotepadDeskApp extends AbstractDeskApp implements DeskAppRenderer,
}; };
public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<DefaultBãßBȍőnʸᴰ<?>> { public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<DefaultBãßBȍőnʸᴰ<?>> {
private static final GhostKey鬼鑰匙 GHOST_BUNDLE = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_BUNDLE = StringGhostKey.asciiᴳʰᵒˢᵗ();
@BãßBȍőnSpiderEgg注() @BãßBȍőnSpiderEgg注()
public VrGem4Unicode4DService locateVrGem4Unicode4DService(DefaultBãßBȍőnʸᴰ<NotepadDeskApp> boon) { public VrGem4Unicode4DService locateVrGem4Unicode4DService(DefaultBãßBȍőnʸᴰ<NotepadDeskApp> boon) {

View file

@ -4,8 +4,8 @@ import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª;
import love.distributedrebirth.bassboon.death.GhostKey鬼鑰匙;
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注; import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@BãßBȍőnAnnotation注(optional = {BãßBȍőnAuthor注.class}) @BãßBȍőnAnnotation注(optional = {BãßBȍőnAuthor注.class})
@ -13,8 +13,8 @@ public interface BãßBȍőnAuthorʸᴰ<T extends BãßBȍőnʸᴰ<T>> extends B
@BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonLaw.class}) @BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonLaw.class})
public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnAuthorʸᴰ<?>> { public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnAuthorʸᴰ<?>> {
private static final GhostKey鬼鑰匙 GHOST_NAME = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_NAME = StringGhostKey.asciiᴳʰᵒˢᵗ();
private static final GhostKey鬼鑰匙 GHOST_COPYRIGHT = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_COPYRIGHT = StringGhostKey.asciiᴳʰᵒˢᵗ();
private static final String DEFAULT_NAME = "奴隸來自 仙上主天"; private static final String DEFAULT_NAME = "奴隸來自 仙上主天";
private static final String DEFAULT_COPYRIGHT = "©Δ∞ 仙上主天"; private static final String DEFAULT_COPYRIGHT = "©Δ∞ 仙上主天";

View file

@ -4,8 +4,8 @@ import love.distributedrebirth.bassboon.BãßBȍőnʸᴰ;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª;
import love.distributedrebirth.bassboon.death.GhostKey鬼鑰匙;
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注; import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@BãßBȍőnAnnotation注(optional = {BãßBȍőnDuytsFlüstern注.class}) @BãßBȍőnAnnotation注(optional = {BãßBȍőnDuytsFlüstern注.class})
@ -13,7 +13,7 @@ public interface BãßBȍőnDuytsFlüsternʸᴰ<T extends BãßBȍőnʸᴰ<T>> e
@BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonLaw.class}) @BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonLaw.class})
final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnDuytsFlüsternʸᴰ<?>> { final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnDuytsFlüsternʸᴰ<?>> {
private static final GhostKey鬼鑰匙 GHOST_PURPOSE = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_PURPOSE = StringGhostKey.asciiᴳʰᵒˢᵗ();
private static final String DEFAULT_PURPOSE = "Undefined"; private static final String DEFAULT_PURPOSE = "Undefined";
@BãßBȍőnSpiderWire注 @BãßBȍőnSpiderWire注

View file

@ -5,8 +5,8 @@ import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª;
import love.distributedrebirth.bassboon.death.BãßBȍőnCoffinDuytschenᵗˣᵗ; import love.distributedrebirth.bassboon.death.BãßBȍőnCoffinDuytschenᵗˣᵗ;
import love.distributedrebirth.bassboon.death.GhostKey鬼鑰匙;
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注; import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@BãßBȍőnAnnotation注(optional = {BãßBȍőnExport注.class}) @BãßBȍőnAnnotation注(optional = {BãßBȍőnExport注.class})
@ -14,8 +14,8 @@ public interface BãßBȍőnExportʸᴰ<T extends BãßBȍőnʸᴰ<T>> extends B
@BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonLaw.class}) @BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonLaw.class})
final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnExportʸᴰ<?>> { final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnExportʸᴰ<?>> {
private static final GhostKey鬼鑰匙 GHOST_ARTIFACT = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_ARTIFACT = StringGhostKey.asciiᴳʰᵒˢᵗ();
private static final GhostKey鬼鑰匙 GHOST_GROUP = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_GROUP = StringGhostKey.asciiᴳʰᵒˢᵗ();
@BãßBȍőnSpiderWire注 @BãßBȍőnSpiderWire注
private BãßBȍőnExportʸᴰ<?> boon; private BãßBȍőnExportʸᴰ<?> boon;

View file

@ -4,88 +4,89 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface BãßBȍőnCoffinGhost { public interface BãßBȍőnCoffinGhost {
Object GHOST_OBJ(GhostKey鬼鑰匙 key); Object GHOST_OBJ(StringGhostKey key);
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
default <Y> Y GHOST_OBJ(GhostKey鬼鑰匙 key, Class<Y> type) { default <Y> Y GHOST_OBJ(StringGhostKey key, Class<Y> type) {
return (Y) GHOST_OBJ(key); return (Y) GHOST_OBJ(key);
} }
default String GHOST_STR(GhostKey鬼鑰匙 key) { default String GHOST_STR(StringGhostKey key) {
return String.class.cast(GHOST_OBJ(key)); return String.class.cast(GHOST_OBJ(key));
} }
default Short GHOST_SHORT(GhostKey鬼鑰匙 key) { default Short GHOST_SHORT(StringGhostKey key) {
return Short.class.cast(GHOST_OBJ(key)); return Short.class.cast(GHOST_OBJ(key));
} }
default Character GHOST_CHAR(GhostKey鬼鑰匙 key) { default Character GHOST_CHAR(StringGhostKey key) {
return Character.class.cast(GHOST_OBJ(key)); return Character.class.cast(GHOST_OBJ(key));
} }
default Integer GHOST_INT(GhostKey鬼鑰匙 key) { default Integer GHOST_INT(StringGhostKey key) {
return Integer.class.cast(GHOST_OBJ(key)); return Integer.class.cast(GHOST_OBJ(key));
} }
default Long GHOST_LONG(GhostKey鬼鑰匙 key) { default Long GHOST_LONG(StringGhostKey key) {
return Long.class.cast(GHOST_OBJ(key)); return Long.class.cast(GHOST_OBJ(key));
} }
default Boolean GHOST_BOOL(GhostKey鬼鑰匙 key) { default Boolean GHOST_BOOL(StringGhostKey key) {
return Boolean.class.cast(GHOST_OBJ(key)); return Boolean.class.cast(GHOST_OBJ(key));
} }
default Float GHOST_FLOAT(GhostKey鬼鑰匙 key) { default Float GHOST_FLOAT(StringGhostKey key) {
return Float.class.cast(GHOST_OBJ(key)); return Float.class.cast(GHOST_OBJ(key));
} }
default Double GHOST_DOUBLE(GhostKey鬼鑰匙 key) { default Double GHOST_DOUBLE(StringGhostKey key) {
return Double.class.cast(GHOST_OBJ(key)); return Double.class.cast(GHOST_OBJ(key));
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
default Map<String,Object> GHOST_MAP_OBJ(GhostKey鬼鑰匙 key) { default Map<String,Object> GHOST_MAP_OBJ(StringGhostKey key) {
return Map.class.cast(GHOST_OBJ(key)); return Map.class.cast(GHOST_OBJ(key));
} }
default Object GHOST_MAP_OBJ_VALUE(GhostKey鬼鑰匙 key, String mapKey) { default Object GHOST_MAP_OBJ_VALUE(StringGhostKey key, String mapKey) {
return GHOST_MAP_OBJ(key).get(mapKey); return GHOST_MAP_OBJ(key).get(mapKey);
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
default Map<String,String> GHOST_MAP_STR(GhostKey鬼鑰匙 key) { default Map<String,String> GHOST_MAP_STR(StringGhostKey key) {
return Map.class.cast(GHOST_OBJ(key)); return Map.class.cast(GHOST_OBJ(key));
} }
default String GHOST_MAP_STR_VALUE(GhostKey鬼鑰匙 key, String mapKey) { default String GHOST_MAP_STR_VALUE(StringGhostKey key, String mapKey) {
return GHOST_MAP_STR(key).get(mapKey); return GHOST_MAP_STR(key).get(mapKey);
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
default Map<String,Integer> GHOST_MAP_INT(GhostKey鬼鑰匙 key) { default Map<String,Integer> GHOST_MAP_INT(StringGhostKey key) {
return Map.class.cast(GHOST_OBJ(key)); return Map.class.cast(GHOST_OBJ(key));
} }
default Integer GHOST_MAP_INT_VALUE(GhostKey鬼鑰匙 key, String mapKey) { default Integer GHOST_MAP_INT_VALUE(StringGhostKey key, String mapKey) {
return GHOST_MAP_INT(key).get(mapKey); return GHOST_MAP_INT(key).get(mapKey);
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
default List<Object> GHOST_LIST_OBJ(GhostKey鬼鑰匙 key) { default List<Object> GHOST_LIST_OBJ(StringGhostKey key) {
return List.class.cast(GHOST_OBJ(key)); return List.class.cast(GHOST_OBJ(key));
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
default List<String> GHOST_LIST_STR(GhostKey鬼鑰匙 key) { default List<String> GHOST_LIST_STR(StringGhostKey key) {
return List.class.cast(GHOST_OBJ(key)); return List.class.cast(GHOST_OBJ(key));
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
default List<Integer> GHOST_LIST_INT(GhostKey鬼鑰匙 key) { default List<Integer> GHOST_LIST_INT(StringGhostKey key) {
return List.class.cast(GHOST_OBJ(key)); return List.class.cast(GHOST_OBJ(key));
} }
} }

View file

@ -4,17 +4,18 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface BãßBȍőnCoffinGhostSpell extends BãßBȍőnCoffinGhost { public interface BãßBȍőnCoffinGhostSpell extends BãßBȍőnCoffinGhost {
Object PUT_GHOST(GhostKey鬼鑰匙 key, Object value); Object PUT_GHOST(StringGhostKey key, Object value);
default void PUT_GHOST_MAP(GhostKey鬼鑰匙 key) { default void PUT_GHOST_MAP(StringGhostKey key) {
PUT_GHOST(key, new HashMap<>()); PUT_GHOST(key, new HashMap<>());
} }
default void PUT_GHOST_LIST(GhostKey鬼鑰匙 key) { default void PUT_GHOST_LIST(StringGhostKey key) {
PUT_GHOST(key, new ArrayList<>()); PUT_GHOST(key, new ArrayList<>());
} }

View file

@ -7,6 +7,7 @@ import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface BãßBȍőnCoffinGhostSpellLock extends BãßBȍőnCoffinGhostSpell { public interface BãßBȍőnCoffinGhostSpellLock extends BãßBȍőnCoffinGhostSpell {
@ -18,9 +19,9 @@ public interface BãßBȍőnCoffinGhostSpellLock extends BãßBȍőnCoffinGhostS
} }
static BãßBȍőnCoffinGhostSpellLock instanceᴺᵉʷ() { static BãßBȍőnCoffinGhostSpellLock instanceᴺᵉʷ() {
Function<Map<GhostKey鬼鑰匙,Object>,BãßBȍőnCoffinGhost> keyMaker = v -> { Function<Map<StringGhostKey,Object>,BãßBȍőnCoffinGhost> keyMaker = v -> {
Map<GhostKey鬼鑰匙,Object> summonedGhosts = new HashMap<>(v); Map<StringGhostKey,Object> summonedGhosts = new HashMap<>(v);
for (GhostKey鬼鑰匙 entity:v.keySet()) { for (StringGhostKey entity:v.keySet()) {
Object spirit = summonedGhosts.get(entity); Object spirit = summonedGhosts.get(entity);
if (spirit instanceof List) { if (spirit instanceof List) {
summonedGhosts.put(entity, Collections.unmodifiableList((List<?>) spirit)); summonedGhosts.put(entity, Collections.unmodifiableList((List<?>) spirit));
@ -31,13 +32,13 @@ public interface BãßBȍőnCoffinGhostSpellLock extends BãßBȍőnCoffinGhostS
} }
return new BãßBȍőnCoffinGhost() { return new BãßBȍőnCoffinGhost() {
@Override @Override
public Object GHOST_OBJ(GhostKey鬼鑰匙 key) { public Object GHOST_OBJ(StringGhostKey key) {
return summonedGhosts.get(key); return summonedGhosts.get(key);
} }
}; };
}; };
return new BãßBȍőnCoffinGhostSpellLock() { return new BãßBȍőnCoffinGhostSpellLock() {
private final Map<GhostKey鬼鑰匙,Object> ouijaBoard = new HashMap<>(); private final Map<StringGhostKey,Object> ouijaBoard = new HashMap<>();
@Override @Override
public BãßBȍőnCoffinGhost LOCK() { public BãßBȍőnCoffinGhost LOCK() {
@ -45,12 +46,12 @@ public interface BãßBȍőnCoffinGhostSpellLock extends BãßBȍőnCoffinGhostS
} }
@Override @Override
public Object GHOST_OBJ(GhostKey鬼鑰匙 key) { public Object GHOST_OBJ(StringGhostKey key) {
return ouijaBoard.get(key); return ouijaBoard.get(key);
} }
@Override @Override
public Object PUT_GHOST(GhostKey鬼鑰匙 key, Object value) { public Object PUT_GHOST(StringGhostKey key, Object value) {
return ouijaBoard.put(key, value); return ouijaBoard.put(key, value);
} }
}; };

View file

@ -1,50 +0,0 @@
package love.distributedrebirth.bassboon.death;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import love.distributedrebirth.bassboon.Bãß;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.jpp.lang.StringDEC6B;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface GhostKey鬼鑰匙 extends StringDEC6B {
enum 𓉡 {
ײןןזןןןזזזןײ;
private final Map<Class<?>, AtomicInteger> 精神龸鑰匙 = Collections.synchronizedMap(new HashMap<>());
private final int 開始龸價值龸阿瑪利亞 = 0xB00BBABE - Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE;
}
static GhostKey鬼鑰匙 asciiᴳʰᵒˢᵗ() {
Class<?> parentClass = StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE).getCallerClass();
AtomicInteger cnt = 𓉡.ײןןזןןןזזזןײ.精神龸鑰匙.get(parentClass);
if (cnt == null) {
cnt = new AtomicInteger(𓉡.ײןןזןןןזזזןײ.開始龸價值龸阿瑪利亞);
𓉡.ײןןזןןןזזזןײ.精神龸鑰匙.put(parentClass, cnt);
}
int fieldNumber = cnt.incrementAndGet();
StringBuilder buf = new StringBuilder();
buf.append(Integer.toHexString(parentClass.hashCode()).toUpperCase()); // our callers are named Ꝑŕḯṿª so use hashCode
buf.append(StringDEC6B.BasicAscii.UNDERSCORE);
buf.append(Integer.toHexString(fieldNumber).toUpperCase());
return asciiᴺᵉʷ(buf.toString());
}
static GhostKey鬼鑰匙 asciiᴺᵉʷ(String text) {
for (int i=0;i<text.length();i++) {
if (!BasicAscii.UNICODE.isValidKey(text.charAt(i))) {
throw new IllegalArgumentException("Invalid character: "+text.charAt(i));
}
}
return new GhostKey鬼鑰匙() {
@Override
public String toString() {
return text;
}
};
}
}

View file

@ -4,11 +4,39 @@ import love.distributedrebirth.bassboon.Bãß;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface StringDEC6B extends StringProxy { public final class StringDEC6B implements StringType<StringDEC6B> {
private final String text;
public StringDEC6B(String text) {
this(text, false);
}
public StringDEC6B(String text, boolean isKey) {
if (text == null) {
throw new NullPointerException("Invalid DEC6B text: null");
}
for (int i=0;i<text.length();i++) {
if (!BasicAscii.UNICODE.isValid(text.charAt(i), isKey)) {
throw new IllegalArgumentException("Invalid DEC6B character: "+text.charAt(i));
}
}
this.text = text;
}
@Override
public String toString() {
return text;
}
@Override
public StringDEC6B wrapᴼᶠ(String str) {
return new StringDEC6B(str);
}
// BASIC uses https://en.wikipedia.org/wiki/Six-bit_character_code#Examples_of_six-bit_ASCII_variants // BASIC uses https://en.wikipedia.org/wiki/Six-bit_character_code#Examples_of_six-bit_ASCII_variants
enum BasicAscii { protected enum BasicAscii {
UNICODE; UNICODE; // ^^^ move to jpp.text
public static char UNDERSCORE = '_'; // mmmm maybe use the enum for all control flow chars only ... public static char UNDERSCORE = '_'; // mmmm maybe use the enum for all control flow chars only ...
@ -29,20 +57,10 @@ public interface StringDEC6B extends StringProxy {
"[\\]^" + "[\\]^" +
UNDERSCORE; UNDERSCORE;
public boolean isValid(char c, boolean isKey) {
String allowed = isKey?VALUES_KEY:VALUES;
public boolean isValid(char c) { for (int i=0;i<allowed.length();i++) {
for (int i=0;i<VALUES.length();i++) { if (c == allowed.charAt(i)) {
if (c == VALUES.charAt(i)) {
return true;
}
}
return false;
}
public boolean isValidKey(char c) {
for (int i=0;i<VALUES_KEY.length();i++) {
if (c == VALUES_KEY.charAt(i)) {
return true; return true;
} }
} }
@ -50,7 +68,7 @@ public interface StringDEC6B extends StringProxy {
} }
public byte toSixBit(char c) { public byte toSixBit(char c) {
if (!isValid(c)) { if (!isValid(c, false)) {
throw new IllegalArgumentException("Invalid DEC6B character: "+c); throw new IllegalArgumentException("Invalid DEC6B character: "+c);
} }
byte result = 0; byte result = 0;
@ -63,18 +81,4 @@ public interface StringDEC6B extends StringProxy {
return result; return result;
} }
} }
static StringDEC6B asciiᴺᵉʷ(String text) {
for (int i=0;i<text.length();i++) {
if (!BasicAscii.UNICODE.isValid(text.charAt(i))) {
throw new IllegalArgumentException("Invalid DEC6B character: "+text.charAt(i));
}
}
return new StringDEC6B() {
@Override
public String toString() {
return text;
}
};
}
} }

View file

@ -0,0 +1,45 @@
package love.distributedrebirth.bassboon.jpp.lang;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import love.distributedrebirth.bassboon.Bãß;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public final class StringGhostKey implements StringTypeConst<StringGhostKey> {
private final static Map<Class<?>, AtomicInteger> क्षस = Collections.synchronizedMap(new HashMap<>());
private final static int 開始龸價值龸阿瑪利亞 = 0xB00BBABE - Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ONE;
private final StringDEC6B 개인키;
private StringGhostKey(String text) {
개인키 = new StringDEC6B(text, true);
}
@Override
public String toString() {
return 개인키.toString();
}
public static StringGhostKey asciiᴺᵉʷ(String text) {
return new StringGhostKey(text);
}
public static StringGhostKey asciiᴳʰᵒˢᵗ() {
Class<?> ײןןזןןןזזזןײ = StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE).getCallerClass();
AtomicInteger 𓉡 = क्षस.get(ײןןזןןןזזזןײ);
if (𓉡 == Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.PTR_VOID) {
𓉡 = new AtomicInteger(開始龸價值龸阿瑪利亞);
क्षस.put(ײןןזןןןזזזןײ, 𓉡);
}
int หมายเลขสนาม = 𓉡.incrementAndGet();
StringBuilder تخزين = new StringBuilder();
تخزين.append(Integer.toHexString(ײןןזןןןזזזןײ.hashCode()).toUpperCase()); // our callers are named Ꝑŕḯṿª
تخزين.append(StringDEC6B.BasicAscii.UNDERSCORE);
تخزين.append(Integer.toHexString(หมายเลขสนาม).toUpperCase());
return asciiᴺᵉʷ(تخزين.toString());
}
}

View file

@ -1,205 +0,0 @@
package love.distributedrebirth.bassboon.jpp.lang;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.util.Locale;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface StringProxy {
String toString();
default char charAt(int index) {
return toString().charAt(index);
}
default int codePointAt(int index) {
return toString().codePointAt(index);
}
default int codePointBefore(int index) {
return toString().codePointBefore(index);
}
default int codePointCount(int beginIndex, int endIndex) {
return toString().codePointCount(beginIndex, endIndex);
}
default int compareTo(String anotherString) {
return toString().compareTo(anotherString);
}
default int compareToIgnoreCase(String str) {
return toString().compareToIgnoreCase(str);
}
default String concat(String str) {
return toString().concat(str);
}
default boolean contains(CharSequence s) {
return toString().contains(s);
}
default boolean contentEquals(CharSequence cs) {
return toString().contentEquals(cs);
}
default boolean contentEquals(StringBuffer sb) {
return toString().contentEquals(sb);
}
default boolean endsWith(String suffix) {
return toString().endsWith(suffix);
}
default boolean equalsIgnoreCase(String anotherString) {
return toString().equalsIgnoreCase(anotherString);
}
default byte[] getBytes() {
return toString().getBytes();
}
default byte[] getBytes(Charset charset) {
return toString().getBytes(charset);
}
default byte[] getBytes(String charsetName) throws UnsupportedEncodingException {
return toString().getBytes(charsetName);
}
default void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) {
toString().getChars(srcBegin, srcEnd, dst, dstBegin);
}
default int indexOf(int ch) {
return toString().indexOf(ch);
}
default int indexOf(int ch, int fromIndex) {
return toString().indexOf(ch, fromIndex);
}
default int indexOf(String str) {
return toString().indexOf(str);
}
default int indexOf(String str, int fromIndex) {
return toString().indexOf(str, fromIndex);
}
default String intern() {
return toString().intern();
}
default boolean isEmpty() {
return toString().isEmpty();
}
default int lastIndexOf(int ch) {
return toString().lastIndexOf(ch);
}
default int lastIndexOf(int ch, int fromIndex) {
return toString().lastIndexOf(ch, fromIndex);
}
default int lastIndexOf(String str) {
return toString().lastIndexOf(str);
}
default int lastIndexOf(String str, int fromIndex) {
return toString().lastIndexOf(str, fromIndex);
}
default int length() {
return toString().length();
}
default boolean matches(String regex) {
return toString().matches(regex);
}
default int offsetByCodePoints(int index, int codePointOffset) {
return toString().offsetByCodePoints(index, codePointOffset);
}
default boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) {
return toString().regionMatches(ignoreCase, toffset, other, ooffset, len);
}
default boolean regionMatches(int toffset, String other, int ooffset, int len) {
return toString().regionMatches(toffset, other, ooffset, len);
}
default String replace(char oldChar, char newChar) {
return toString().replace(oldChar, newChar);
}
default String replace(CharSequence target, CharSequence replacement) {
return toString().replace(target, replacement);
}
default String replaceAll(String regex, String replacement) {
return toString().replaceAll(regex, replacement);
}
default String replaceFirst(String regex, String replacement) {
return toString().replaceFirst(regex, replacement);
}
default String[] split(String regex) {
return toString().split(regex);
}
default String[] split(String regex, int limit) {
return toString().split(regex, limit);
}
default boolean startsWith(String prefix) {
return toString().startsWith(prefix);
}
default boolean startsWith(String prefix, int toffset) {
return toString().startsWith(prefix, toffset);
}
default CharSequence subSequence(int beginIndex, int endIndex) {
return toString().subSequence(beginIndex, endIndex);
}
default String substring(int beginIndex) {
return toString().substring(beginIndex);
}
default String substring(int beginIndex, int endIndex) {
return toString().substring(beginIndex, endIndex);
}
default char[] toCharArray() {
return toString().toCharArray();
}
default String toLowerCase() {
return toString().toLowerCase();
}
default String toLowerCase(Locale locale) {
return toString().toLowerCase(locale);
}
default String toUpperCase() {
return toString().toUpperCase();
}
default String toUpperCase(Locale locale) {
return toString().toUpperCase(locale);
}
default String trim() {
return toString().trim();
}
}

View file

@ -3,7 +3,7 @@ package love.distributedrebirth.bassboon.jpp.lang;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface StringTweet extends StringProxy { public interface StringTweet extends StringTypeConst<StringTweet> {
public static Class<Length035> MAX_035 = Length035.class; public static Class<Length035> MAX_035 = Length035.class;
public static Class<Length070> MAX_070 = Length070.class; public static Class<Length070> MAX_070 = Length070.class;

View file

@ -0,0 +1,143 @@
package love.distributedrebirth.bassboon.jpp.lang;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface StringType<T extends StringType<T>> extends StringTypeConst<T> {
T wrapᴼᶠ(String str);
@SuppressWarnings("unchecked")
default T[] wrapᴼᶠ(String[] arr) {
List<T> result = new ArrayList<>();
for (int i=0;i<arr.length;i++) {
result.add(wrapᴼᶠ(arr[i]));
}
return (T[]) result.toArray();
}
// ---- Hide implementation wrapper
// // Protected methods in interfaces would be nice, else use this;
// public interface StringTypeWrapper {
//
// StringType<?> wrapᴼᶠ(String str);
// }
// enum Factory {
// IMPL;
//
// @SuppressWarnings("unchecked")
// protected final <Y> Y wrapᴼᶠ(StringType<?> stringType, String str) {
// try {
// for (Field field:stringType.getClass().getDeclaredFields()) {
// if (!Modifier.isStatic(field.getModifiers())) {
// continue;
// }
// if (!StringTypeWrapper.class.isAssignableFrom(field.getType())) {
// continue;
// }
// StringTypeWrapper wrapper = (StringTypeWrapper) field.get(null);
// return (Y) wrapper.wrapᴼᶠ(str);
// }
// throw new RuntimeException("Missing static field with type: "+StringTypeWrapper.class);
// } catch (Exception e) {
// throw new RuntimeException(e);
// }
// }
//
// @SuppressWarnings("unchecked")
// protected final <Y> Y[] wrapᴼᶠ(StringType<?> stringType, String[] arr) {
// List<Y> result = new ArrayList<>();
// for (int i=0;i<arr.length;i++) {
// result.add(wrapᴼᶠ(stringType, arr[i]));
// }
// return (Y[]) result.toArray();
// }
// }
// ---- Local
default T concat(T str) {
return wrapᴼᶠ(toString().concat(str.toString()));
}
default T replaceAll(T regex, T replacement) {
return wrapᴼᶠ(toString().replaceAll(regex.toString(), replacement.toString()));
}
default T replaceFirst(T regex, T replacement) {
return wrapᴼᶠ(toString().replaceFirst(regex.toString(), replacement.toString()));
}
default T[] split(T regex) {
return wrapᴼᶠ(toString().split(regex.toString()));
}
default T[] split(T regex, int limit) {
return wrapᴼᶠ(toString().split(regex.toString(), limit));
}
// ---- String
default T concat(String str) {
return wrapᴼᶠ(toString().concat(str));
}
// @Deprecated
// default T replace(char oldChar, char newChar) {
// return wrapᴼᶠ(toString().replace(oldChar, newChar));
// }
//
// @Deprecated
// default T replace(CharSequence target, CharSequence replacement) {
// return wrapᴼᶠ(toString().replace(target, replacement));
// }
default T replaceAll(String regex, String replacement) {
return wrapᴼᶠ(toString().replaceAll(regex, replacement));
}
default T replaceFirst(String regex, String replacement) {
return wrapᴼᶠ(toString().replaceFirst(regex, replacement));
}
default T[] split(String regex) {
return wrapᴼᶠ(toString().split(regex));
}
default T[] split(String regex, int limit) {
return wrapᴼᶠ(toString().split(regex, limit));
}
default T substring(int beginIndex) {
return wrapᴼᶠ(toString().substring(beginIndex));
}
default T substring(int beginIndex, int endIndex) {
return wrapᴼᶠ(toString().substring(beginIndex, endIndex));
}
default T toLowerCase() {
return wrapᴼᶠ(toString().toLowerCase());
}
default T toLowerCase(Locale locale) {
return wrapᴼᶠ(toString().toLowerCase(locale));
}
default T toUpperCase() {
return wrapᴼᶠ(toString().toUpperCase());
}
default T toUpperCase(Locale locale) {
return wrapᴼᶠ(toString().toUpperCase(locale));
}
default T trim() {
return wrapᴼᶠ(toString().trim());
}
}

View file

@ -0,0 +1,299 @@
package love.distributedrebirth.bassboon.jpp.lang;
import java.util.Iterator;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.IntStream;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
/**
* String without any char or byte methods.
*/
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface StringTypeConst<T extends StringTypeConst<T>> extends Comparable<T>, Iterable<Integer> /*, CharSequence */ {
// ---- Local
String toString();
default long lengthBytes() {
return toString().length() + toString().length();
}
default long lengthChars() {
return toString().length();
}
default long lengthCodePoints() {
return toString().codePointCount(0, toString().length());
}
default int codePointAtStream(int index) {
return toString().codePoints().skip(index).iterator().next();
}
default int indexOfStream(int codePoint) {
return indexOfStream(codePoint, 0);
}
default int indexOfStream(int codePoint, int fromIndex) {
return searchIndexOfStream(codePoint, fromIndex, true);
}
default int lastIndexOfStream(int codePoint) {
return lastIndexOfStream(codePoint, 0);
}
default int lastIndexOfStream(int codePoint, int fromIndex) {
return searchIndexOfStream(codePoint, fromIndex, false);
}
// slow and untested
default int searchIndexOfStream(int codePoint, int fromIndex, boolean returnFirstIndex) {
AtomicBoolean done = new AtomicBoolean(false);
AtomicInteger index = new AtomicInteger(fromIndex);
AtomicInteger result = new AtomicInteger(fromIndex);
toString().codePoints().skip(fromIndex).forEach(v -> {
if (v == codePoint && !done.get()) {
done.set(returnFirstIndex);
result.set(index.get());
}
index.incrementAndGet();
});
return result.get();
}
// ---- Typed
default boolean contains(T s) {
return toString().contains(s.toString());
}
default boolean contentEquals(T cs) {
return toString().contentEquals(cs.toString());
}
default int compareToIgnoreCase(T str) {
return toString().compareToIgnoreCase(str.toString());
}
default boolean endsWith(T suffix) {
return toString().endsWith(suffix.toString());
}
default boolean equalsIgnoreCase(T anotherString) {
return toString().equalsIgnoreCase(anotherString.toString());
}
default int indexOf(T str) {
return toString().indexOf(str.toString());
}
default int indexOf(T str, int fromIndex) {
return toString().indexOf(str.toString(), fromIndex);
}
default boolean startsWith(T prefix) {
return toString().startsWith(prefix.toString());
}
default boolean startsWith(T prefix, int toffset) {
return toString().startsWith(prefix.toString(), toffset);
}
default int lastIndexOf(T str) {
return toString().lastIndexOf(str.toString());
}
default int lastIndexOf(T str, int fromIndex) {
return toString().lastIndexOf(str.toString(), fromIndex);
}
default boolean matches(T regex) {
return toString().matches(regex.toString());
}
default boolean regionMatches(boolean ignoreCase, int toffset, T other, int ooffset, int len) {
return toString().regionMatches(ignoreCase, toffset, other.toString(), ooffset, len);
}
default boolean regionMatches(int toffset, T other, int ooffset, int len) {
return toString().regionMatches(toffset, other.toString(), ooffset, len);
}
// @Deprecated
// default byte[] getBytes(T charsetName) throws UnsupportedEncodingException {
// return toString().getBytes(charsetName.toString());
// }
// ---- Iterable
default Iterator<Integer> iterator() {
return toString().codePoints().iterator();
}
// ---- Comparable
default int compareTo(T anotherString) {
return toString().compareTo(anotherString.toString());
}
// ---- CharSequence
// @Deprecated
// default char charAt(int index) {
// return toString().charAt(index);
// }
//
// default IntStream chars() {
// return toString().chars();
// }
default IntStream codePoints() {
return toString().codePoints();
}
// @Deprecated
// default CharSequence subSequence(int beginIndex, int endIndex) {
// return toString().subSequence(beginIndex, endIndex);
// }
//
// @Deprecated
// default int length() {
// return toString().length(); // <=== docs are lying, it only works on charAt and works only with ascii
// }
// ---- String
// @Deprecated
// default int codePointAt(int index) {
// return toString().codePointAt(index); // <=== method gives wrong results
// }
//
// @Deprecated
// default int codePointBefore(int index) {
// return toString().codePointBefore(index);
// }
//
// @Deprecated // seems to work
// default int codePointCount(int beginIndex, int endIndex) {
// return toString().codePointCount(beginIndex, endIndex);
// }
default int compareToIgnoreCase(String str) {
return toString().compareToIgnoreCase(str);
}
// @Deprecated
// default boolean contains(CharSequence s) {
// return toString().contains(s);
// }
//
// @Deprecated
// default boolean contentEquals(CharSequence cs) {
// return toString().contentEquals(cs);
// }
default boolean contentEquals(StringBuffer sb) {
return toString().contentEquals(sb);
}
default boolean endsWith(String suffix) {
return toString().endsWith(suffix);
}
default boolean equalsIgnoreCase(String anotherString) {
return toString().equalsIgnoreCase(anotherString);
}
// @Deprecated
// default byte[] getBytes() {
// return toString().getBytes();
// }
//
// @Deprecated
// default byte[] getBytes(Charset charset) {
// return toString().getBytes(charset);
// }
//
// @Deprecated
// default byte[] getBytes(String charsetName) throws UnsupportedEncodingException {
// return toString().getBytes(charsetName);
// }
//
// @Deprecated
// default void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) {
// toString().getChars(srcBegin, srcEnd, dst, dstBegin);
// }
//
// @Deprecated
// default int indexOf(int ch) {
// return toString().indexOf(ch);
// }
//
// @Deprecated
// default int indexOf(int ch, int fromIndex) {
// return toString().indexOf(ch, fromIndex);
// }
default int indexOf(String str) {
return toString().indexOf(str);
}
default int indexOf(String str, int fromIndex) {
return toString().indexOf(str, fromIndex);
}
default boolean isEmpty() {
return toString().isEmpty();
}
default boolean startsWith(String prefix) {
return toString().startsWith(prefix);
}
default boolean startsWith(String prefix, int toffset) {
return toString().startsWith(prefix, toffset);
}
// @Deprecated
// default int lastIndexOf(int ch) {
// return toString().lastIndexOf(ch);
// }
//
// @Deprecated
// default int lastIndexOf(int ch, int fromIndex) {
// return toString().lastIndexOf(ch, fromIndex);
// }
default int lastIndexOf(String str) {
return toString().lastIndexOf(str);
}
default int lastIndexOf(String str, int fromIndex) {
return toString().lastIndexOf(str, fromIndex);
}
default boolean matches(String regex) {
return toString().matches(regex);
}
// @Deprecated
// default int offsetByCodePoints(int index, int codePointOffset) {
// return toString().offsetByCodePoints(index, codePointOffset);
// }
default boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) {
return toString().regionMatches(ignoreCase, toffset, other, ooffset, len);
}
default boolean regionMatches(int toffset, String other, int ooffset, int len) {
return toString().regionMatches(toffset, other, ooffset, len);
}
// @Deprecated
// default char[] toCharArray() {
// return toString().toCharArray();
// }
}

View file

@ -3,22 +3,21 @@ package love.distributedrebirth.bassboon.jpp.lang;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public enum StringUnicode { public final class StringUnicode implements StringType<StringUnicode> {
REAL;
public long lengthChars(String text) { private final String text;
return text.length();
public StringUnicode(String text) {
this.text = text;
} }
public long lengthCodePoints(String text) { @Override
return text.codePoints().count(); public String toString() {
return text;
} }
public long codePointCount(String text) { @Override
return text.codePointCount(0, text.length()); public StringUnicode wrapᴼᶠ(String str) {
} return new StringUnicode(str);
public int codePointAt(String text, int index) {
return text.codePoints().skip(index).iterator().next();
} }
} }

View file

@ -1,10 +1,17 @@
package love.distributedrebirth.bassboon.jpp.lang.number; package love.distributedrebirth.bassboon.jpp.lang.number;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.function.Consumer;
import love.distributedrebirth.bassboon.Bãß;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.jpp.util.PrimitiveByteIterator; import love.distributedrebirth.bassboon.jpp.util.PrimitiveByteIterator;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface NumberValue { public interface NumberValue extends Iterable<NumberValue.NumberValueStep> {
//String toString(); //String toString();
@ -12,5 +19,35 @@ public interface NumberValue {
//String toString(... //String toString(...
PrimitiveByteIterator iterator(); PrimitiveByteIterator iteratorBytes();
default Iterator<NumberValueStep> iteratorAsBigInteger() {
List<Byte> bytes = new ArrayList<>();
iteratorBytes().forEachRemaining((Consumer<? super Byte>)v -> {
bytes.add(v);
});
byte[] byteArray = new byte[bytes.size()];
for (int i=0;i<byteArray.length;i++) {
byteArray[i] = bytes.get(i);
}
return new Iterator<NumberValue.NumberValueStep>() {
private BigInteger value = new BigInteger(byteArray);
@Override
public NumberValueStep next() {
value = value.subtract(BigInteger.ONE);
return NumberValueStep.ONE;
}
@Override
public boolean hasNext() {
return value.compareTo(BigInteger.ZERO) != Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;
}
};
}
interface NumberValueStep {
public static final NumberValueStep ONE = new NumberValueStep() {};
}
} }

View file

@ -6,8 +6,8 @@ import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnDuytsFlüstern注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnDuytsFlüstern注;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿªḕ響ᴼᶠ; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿªḕ響ᴼᶠ;
import love.distributedrebirth.bassboon.death.GhostKey鬼鑰匙;
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注; import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
import love.distributedrebirth.bassboon.yd.abacus.BãßBȍőnAbacusEnumBase響ᴼᶠ; import love.distributedrebirth.bassboon.yd.abacus.BãßBȍőnAbacusEnumBase響ᴼᶠ;
import love.distributedrebirth.bassboon.yd.abacus.BãßBȍőnAbacusSetʸᴰ; import love.distributedrebirth.bassboon.yd.abacus.BãßBȍőnAbacusSetʸᴰ;
@ -17,8 +17,8 @@ import love.distributedrebirth.bassboon.yd.abacus.BãßBȍőnAbacusSetʸᴰ;
public interface BãßBȍőnNumberMatrixʸᴰ<T extends BãßBȍőnNumberMatrixʸᴰ<T>> extends BãßBȍőnAbacusSetʸᴰ<T> { public interface BãßBȍőnNumberMatrixʸᴰ<T extends BãßBȍőnNumberMatrixʸᴰ<T>> extends BãßBȍőnAbacusSetʸᴰ<T> {
public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnNumberMatrixʸᴰ<?>> { public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnNumberMatrixʸᴰ<?>> {
private static final GhostKey鬼鑰匙 GHOST_MATRIX_DIMENSION = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_MATRIX_DIMENSION = StringGhostKey.asciiᴳʰᵒˢᵗ();
private static final GhostKey鬼鑰匙 GHOST_NUMBER_BLOCK = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_NUMBER_BLOCK = StringGhostKey.asciiᴳʰᵒˢᵗ();
@BãßBȍőnSpiderWire注 @BãßBȍőnSpiderWire注
private BãßBȍőnNumberMatrixʸᴰ<?> boon; private BãßBȍőnNumberMatrixʸᴰ<?> boon;

View file

@ -14,18 +14,18 @@ import love.distributedrebirth.bassboon.clazz.BãßBȍőnDuytschen注;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª;
import love.distributedrebirth.bassboon.death.GhostKey鬼鑰匙;
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注; import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface BãßBȍőnAbacusEnumBaseʸᴰ<T extends BãßBȍőnʸᴰ<T> & AbacusEnum & BãßBȍőnAbacus<T>> extends AbacusEnum, BãßBȍőnAbacus<T>, DefaultBãßBȍőnʸᴰ<T> { public interface BãßBȍőnAbacusEnumBaseʸᴰ<T extends BãßBȍőnʸᴰ<T> & AbacusEnum & BãßBȍőnAbacus<T>> extends AbacusEnum, BãßBȍőnAbacus<T>, DefaultBãßBȍőnʸᴰ<T> {
@BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonBereshit.class}) @BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonBereshit.class})
public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnAbacusEnumBaseʸᴰ<?>> { public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnAbacusEnumBaseʸᴰ<?>> {
private static final GhostKey鬼鑰匙 GHOST_RANK_ONE = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_RANK_ONE = StringGhostKey.asciiᴳʰᵒˢᵗ();
private static final GhostKey鬼鑰匙 GHOST_LENGTH = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_LENGTH = StringGhostKey.asciiᴳʰᵒˢᵗ();
private static final GhostKey鬼鑰匙 GHOST_RANK_RING_TONE = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_RANK_RING_TONE = StringGhostKey.asciiᴳʰᵒˢᵗ();
private static final GhostKey鬼鑰匙 GHOST_MAP_TONE = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_MAP_TONE = StringGhostKey.asciiᴳʰᵒˢᵗ();
@BãßBȍőnSpiderWire注 @BãßBȍőnSpiderWire注
private BãßBȍőnAbacusEnumBaseʸᴰ<?> boon; private BãßBȍőnAbacusEnumBaseʸᴰ<?> boon;

View file

@ -6,15 +6,15 @@ import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª;
import love.distributedrebirth.bassboon.death.GhostKey鬼鑰匙;
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注; import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface BãßBȍőnAbacusZombieʸᴰ<T extends BãßBȍőnʸᴰ<T>, K extends BãßBȍőnAbacusZombieBullet> extends DefaultBãßBȍőnʸᴰ<T> { public interface BãßBȍőnAbacusZombieʸᴰ<T extends BãßBȍőnʸᴰ<T>, K extends BãßBȍőnAbacusZombieBullet> extends DefaultBãßBȍőnʸᴰ<T> {
@BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonBereshit.class}) @BãßBȍőnPiratePhase注(dependencies = {BãßBȍőnPirateʸᴰ.βrahmanBoonBereshit.class})
public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnAbacusZombieʸᴰ<?,?>> { public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnAbacusZombieʸᴰ<?,?>> {
private static final GhostKey鬼鑰匙 GHOST_ZOMBIE = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_ZOMBIE = StringGhostKey.asciiᴳʰᵒˢᵗ();
@BãßBȍőnSpiderWire注 @BãßBȍőnSpiderWire注
private BãßBȍőnAbacusZombieʸᴰ<?,?> boon; private BãßBȍőnAbacusZombieʸᴰ<?,?> boon;

View file

@ -19,9 +19,9 @@ import love.distributedrebirth.bassboon.clazz.BãßBȍőnDuytsFlüstern響ᴼᶠ
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPiratePhase注;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnPirateʸᴰ;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª;
import love.distributedrebirth.bassboon.death.GhostKey鬼鑰匙;
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderEgg注; import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderEgg注;
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注; import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@BãßBȍőnAnnotation注(required = {BãßBȍőnDuytsFlüstern注.class}) @BãßBȍőnAnnotation注(required = {BãßBȍőnDuytsFlüstern注.class})
@ -35,7 +35,7 @@ public interface BãßBȍőnMBeanServerʸᴰ<T extends BãßBȍőnʸᴰ<T>> exte
protected static final String STR_COLON = ":"; protected static final String STR_COLON = ":";
protected static final String STR_IS = "="; protected static final String STR_IS = "=";
protected static final String STR_COMMA = ","; protected static final String STR_COMMA = ",";
private static final GhostKey鬼鑰匙 GHOST_JMX = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_JMX = StringGhostKey.asciiᴳʰᵒˢᵗ();
@BãßBȍőnSpiderWire注 @BãßBȍőnSpiderWire注
private BãßBȍőnMBeanServerʸᴰ<?> boon; private BãßBȍőnMBeanServerʸᴰ<?> boon;

View file

@ -27,11 +27,11 @@ public class NumberMatrixFactoryTest {
} }
@Test @Test
public void testFilmRoles() { public void testFilmSizes() {
for (int i=2;i<4;i++) { for (int i=2;i<4;i++) {
NumberMatrixSet film = NumberMatrixFactory.ײاللهזأَكْبَرײ.geefFilmSet(i); NumberMatrixSet film = NumberMatrixFactory.ײاللهזأَكْبَرײ.geefFilmSet(i);
Assertions.assertEquals(i, film.geefDimensie()); Assertions.assertEquals(i, film.geefDimensie());
System.out.println("dimension: "+film.geefDimensie()+" size: "+film.waardes().length); Assertions.assertEquals(film.waardes().length, film.waardes()[0].teŀráàmGroote());
} }
} }
} }

View file

@ -11,6 +11,13 @@ public class StringTweetTest {
@Test @Test
public void testTweetSmall() { public void testTweetSmall() {
StringTweet tweet = StringTweet.tweetᴺᵉʷ("test", StringTweet.MAX_280); StringTweet tweet = StringTweet.tweetᴺᵉʷ("test", StringTweet.MAX_280);
Assertions.assertEquals(4, tweet.length()); Assertions.assertEquals(4, tweet.lengthChars());
}
@Test
public void testTweetCompare() {
StringTweet tweet1 = StringTweet.tweetᴺᵉʷ("test", StringTweet.MAX_140);
StringTweet tweet2 = StringTweet.tweetᴺᵉʷ("test", StringTweet.MAX_280);
Assertions.assertEquals(0, tweet1.compareTo(tweet2));
} }
} }

View file

@ -18,47 +18,67 @@ public class StringUnicodeTest {
String china4 = ""; String china4 = "";
String china = china1 + china2 + china3 + china4; String china = china1 + china2 + china3 + china4;
StringUnicode testStr = new StringUnicode(test);
StringUnicode countStr = new StringUnicode(count);
StringUnicode chinaStr = new StringUnicode(china);
@Test
public void testWrapper() {
Assertions.assertEquals(5, chinaStr.concat(count).lengthCodePoints());
}
@Test @Test
public void testCountChina() { public void testCountChina() {
Assertions.assertEquals(4, china.length()); Assertions.assertEquals(4, china.length());
Assertions.assertEquals(4, StringUnicode.REAL.lengthCodePoints(china)); Assertions.assertEquals(4, chinaStr.lengthChars());
Assertions.assertEquals(4, chinaStr.lengthCodePoints());
} }
@Test @Test
public void testCountOne() { public void testCountOne() {
Assertions.assertEquals(1, count.length()); Assertions.assertEquals(1, count.length());
Assertions.assertEquals(1, StringUnicode.REAL.lengthCodePoints(count)); Assertions.assertEquals(1, countStr.lengthCodePoints());
} }
@Test @Test
public void testStringLength() { public void testStringLength() {
Assertions.assertNotEquals(StringUnicode.REAL.lengthCodePoints(test), test.length()); Assertions.assertNotEquals(testStr.lengthCodePoints(), test.length());
Assertions.assertEquals(testStr.lengthChars(), test.length());
} }
@Test @Test
public void testStringChars() { public void testStringLoopIterable() {
Assertions.assertEquals(StringUnicode.REAL.lengthChars(test), test.length());
}
@Test
public void testStringCodePointCount() {
Assertions.assertEquals(StringUnicode.REAL.lengthCodePoints(test), StringUnicode.REAL.codePointCount(test));
}
@Test
public void testStringLoopInt() {
StringBuilder buf = new StringBuilder(); StringBuilder buf = new StringBuilder();
for (int i=0;i<StringUnicode.REAL.lengthCodePoints(test);i++) { for (int codePoint:testStr) {
int codePoint = StringUnicode.REAL.codePointAt(test, i);
buf.appendCodePoint(codePoint); buf.appendCodePoint(codePoint);
} }
Assertions.assertEquals(test, buf.toString()); Assertions.assertEquals(test, buf.toString());
} }
@Test @Test
public void testStringLoopFail() { public void testStringLoopIntSteam() {
StringBuilder buf = new StringBuilder(); StringBuilder buf = new StringBuilder();
for (int i=0;i<test.length();i++) { for (int i=0;i<testStr.lengthCodePoints();i++) {
int codePoint = testStr.codePointAtStream(i);
buf.appendCodePoint(codePoint);
}
Assertions.assertEquals(test, buf.toString());
}
@Test
public void testStringLoopIntFail() {
StringBuilder buf = new StringBuilder();
for (int i=0;i<testStr.lengthCodePoints();i++) {
int codePoint = testStr.toString().codePointAt(i); // method is not working
buf.appendCodePoint(codePoint);
}
Assertions.assertNotEquals(test, buf.toString());
}
@Test
public void testStringLoopFailStrange() {
StringBuilder buf = new StringBuilder();
for (int i=0;i<test.codePoints().count();i++) {
int v = test.codePointAt(i); // java docs are lying int v = test.codePointAt(i); // java docs are lying
buf.appendCodePoint(v); buf.appendCodePoint(v);
} }
@ -66,12 +86,12 @@ public class StringUnicodeTest {
} }
@Test @Test
public void testStringLoopChar() { public void testStringLoopFailJavaDoc() {
StringBuilder buf = new StringBuilder(); StringBuilder buf = new StringBuilder();
for (int i=0;i<test.length();i++) { // java docs are lying for (int i=0;i<test.length();i++) { // java docs are lying
char v = test.charAt(i); int v = test.codePointAt(i);
buf.append(v); buf.appendCodePoint(v);
} }
Assertions.assertEquals(test, buf.toString()); Assertions.assertNotEquals(test, buf.toString());
} }
} }

View file

@ -4,16 +4,16 @@ import love.distributedrebirth.bassboon.clazz.BãßBȍőnAnnotation注;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿªḕ響ᴼᶠ; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿªḕ響ᴼᶠ;
import love.distributedrebirth.bassboon.death.GhostKey鬼鑰匙;
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注; import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@BãßBȍőnAnnotation注(required = {BãßBȍőnPartAlt1注.class}) @BãßBȍőnAnnotation注(required = {BãßBȍőnPartAlt1注.class})
public interface BãßBȍőnPartAlt1ʸᴰ<T extends BãßBȍőnPartʸᴰ<T>> extends BãßBȍőnPartʸᴰ<T> { public interface BãßBȍőnPartAlt1ʸᴰ<T extends BãßBȍőnPartʸᴰ<T>> extends BãßBȍőnPartʸᴰ<T> {
public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnPartAlt1ʸᴰ<?>> { public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnPartAlt1ʸᴰ<?>> {
private static final GhostKey鬼鑰匙 GHOST_ALT1_NAME = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_ALT1_NAME = StringGhostKey.asciiᴳʰᵒˢᵗ();
private static final GhostKey鬼鑰匙 GHOST_ALT1_WEBSITE = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_ALT1_WEBSITE = StringGhostKey.asciiᴳʰᵒˢᵗ();
@BãßBȍőnSpiderWire注 @BãßBȍőnSpiderWire注
private BãßBȍőnPartAlt1ʸᴰ<?> boon; private BãßBȍőnPartAlt1ʸᴰ<?> boon;

View file

@ -4,16 +4,16 @@ import love.distributedrebirth.bassboon.clazz.BãßBȍőnAnnotation注;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿªḕ響ᴼᶠ; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿªḕ響ᴼᶠ;
import love.distributedrebirth.bassboon.death.GhostKey鬼鑰匙;
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注; import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@BãßBȍőnAnnotation注(required = {BãßBȍőnPartAlt2注.class}) @BãßBȍőnAnnotation注(required = {BãßBȍőnPartAlt2注.class})
public interface BãßBȍőnPartAlt2ʸᴰ<T extends BãßBȍőnPartʸᴰ<T>> extends BãßBȍőnPartAlt1ʸᴰ<T> { public interface BãßBȍőnPartAlt2ʸᴰ<T extends BãßBȍőnPartʸᴰ<T>> extends BãßBȍőnPartAlt1ʸᴰ<T> {
public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnPartAlt2ʸᴰ<?>> { public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnPartAlt2ʸᴰ<?>> {
private static final GhostKey鬼鑰匙 GHOST_ALT2_NAME = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_ALT2_NAME = StringGhostKey.asciiᴳʰᵒˢᵗ();
private static final GhostKey鬼鑰匙 GHOST_ALT2_WEBSITE = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_ALT2_WEBSITE = StringGhostKey.asciiᴳʰᵒˢᵗ();
@BãßBȍőnSpiderWire注 @BãßBȍőnSpiderWire注
private BãßBȍőnPartAlt2ʸᴰ<?> boon; private BãßBȍőnPartAlt2ʸᴰ<?> boon;

View file

@ -4,16 +4,16 @@ import love.distributedrebirth.bassboon.clazz.BãßBȍőnAnnotation注;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿªḕ響ᴼᶠ; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿªḕ響ᴼᶠ;
import love.distributedrebirth.bassboon.death.GhostKey鬼鑰匙;
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注; import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@BãßBȍőnAnnotation注(required = {BãßBȍőnPartAlt3注.class}) @BãßBȍőnAnnotation注(required = {BãßBȍőnPartAlt3注.class})
public interface BãßBȍőnPartAlt3ʸᴰ<T extends BãßBȍőnPartʸᴰ<T>> extends BãßBȍőnPartAlt2ʸᴰ<T> { public interface BãßBȍőnPartAlt3ʸᴰ<T extends BãßBȍőnPartʸᴰ<T>> extends BãßBȍőnPartAlt2ʸᴰ<T> {
public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnPartAlt3ʸᴰ<?>> { public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnPartAlt3ʸᴰ<?>> {
private static final GhostKey鬼鑰匙 GHOST_ALT3_NAME = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_ALT3_NAME = StringGhostKey.asciiᴳʰᵒˢᵗ();
private static final GhostKey鬼鑰匙 GHOST_ALT3_WEBSITE = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_ALT3_WEBSITE = StringGhostKey.asciiᴳʰᵒˢᵗ();
@BãßBȍőnSpiderWire注 @BãßBȍőnSpiderWire注
private BãßBȍőnPartAlt3ʸᴰ<?> boon; private BãßBȍőnPartAlt3ʸᴰ<?> boon;

View file

@ -4,16 +4,16 @@ import love.distributedrebirth.bassboon.clazz.BãßBȍőnAnnotation注;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿªḕ響ᴼᶠ; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿªḕ響ᴼᶠ;
import love.distributedrebirth.bassboon.death.GhostKey鬼鑰匙;
import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注; import love.distributedrebirth.bassboon.death.spider.BãßBȍőnSpiderWire注;
import love.distributedrebirth.bassboon.jpp.lang.StringGhostKey;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@BãßBȍőnAnnotation注(required = {BãßBȍőnPartAlt4注.class}) @BãßBȍőnAnnotation注(required = {BãßBȍőnPartAlt4注.class})
public interface BãßBȍőnPartAlt4ʸᴰ<T extends BãßBȍőnPartʸᴰ<T>> extends BãßBȍőnPartAlt3ʸᴰ<T> { public interface BãßBȍőnPartAlt4ʸᴰ<T extends BãßBȍőnPartʸᴰ<T>> extends BãßBȍőnPartAlt3ʸᴰ<T> {
public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnPartAlt4ʸᴰ<?>> { public static final class Ꝑŕḯṿª implements BãßBȍőnꝐŕḯṿª<BãßBȍőnPartAlt4ʸᴰ<?>> {
private static final GhostKey鬼鑰匙 GHOST_ALT4_NAME = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_ALT4_NAME = StringGhostKey.asciiᴳʰᵒˢᵗ();
private static final GhostKey鬼鑰匙 GHOST_ALT4_WEBSITE = GhostKey鬼鑰匙.asciiᴳʰᵒˢᵗ(); private static final StringGhostKey GHOST_ALT4_WEBSITE = StringGhostKey.asciiᴳʰᵒˢᵗ();
@BãßBȍőnSpiderWire注 @BãßBȍőnSpiderWire注
private BãßBȍőnPartAlt4ʸᴰ<?> boon; private BãßBȍőnPartAlt4ʸᴰ<?> boon;