Created DefaultBãßBȍőn interface
This commit is contained in:
parent
3acc28dbbf
commit
2e29efb5fe
78 changed files with 963 additions and 606 deletions
|
|
@ -0,0 +1,45 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.locks.Lock;
|
||||
import java.util.concurrent.locks.ReadWriteLock;
|
||||
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BãßBȍőn<T, K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends BãßBȍőnCoffinStoreʸᴰ<T, K> {
|
||||
|
||||
static class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
||||
private static final Map<Object, BãßBȍőnCoffinOpenʸᴰ<?>> GRAVE_YARD = new HashMap<>();
|
||||
private static final ReadWriteLock FUNERAL = new ReentrantReadWriteLock();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default T BȍőnCoffinHeadStoneʸᴰ() {
|
||||
return (T) this;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
default BãßBȍőnCoffinʸᴰ<K> GET_BBC() {
|
||||
BãßBȍőnCoffinOpenʸᴰ<K> zombieCoffin = null;
|
||||
Lock bibleReader = Ꝑŕḯṿª₮ḕ.FUNERAL.readLock(); // Can't force enum only, thus no jvm safety
|
||||
bibleReader.lock();
|
||||
try {
|
||||
zombieCoffin = (BãßBȍőnCoffinOpenʸᴰ<K>) Ꝑŕḯṿª₮ḕ.GRAVE_YARD.get(BȍőnCoffinHeadStoneʸᴰ());
|
||||
} finally {
|
||||
bibleReader.unlock();
|
||||
}
|
||||
if (zombieCoffin == null) {
|
||||
Lock shemiraWriter = Ꝑŕḯṿª₮ḕ.FUNERAL.writeLock();
|
||||
shemiraWriter.lock();
|
||||
try {
|
||||
zombieCoffin = BãßBȍőnCoffinOpenʸᴰ.newInstance();
|
||||
Ꝑŕḯṿª₮ḕ.GRAVE_YARD.put(BȍőnCoffinHeadStoneʸᴰ(), zombieCoffin);
|
||||
} finally {
|
||||
shemiraWriter.unlock();
|
||||
}
|
||||
}
|
||||
return zombieCoffin;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BãßBȍőnCoffinGhostʸᴰ {
|
||||
|
||||
Object PUT_GHOST(String key, Object value);
|
||||
|
||||
Object GHOST_OBJ(String key);
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default <Y> Y GHOST_OBJ(String key, Class<Y> type) {
|
||||
return (Y) GHOST_OBJ(key);
|
||||
}
|
||||
|
||||
default String GHOST_STR(String key) {
|
||||
return String.class.cast(GHOST_OBJ(key));
|
||||
}
|
||||
|
||||
default Short GHOST_SHORT(String key) {
|
||||
return Short.class.cast(GHOST_OBJ(key));
|
||||
}
|
||||
|
||||
default Character GHOST_CHAR(String key) {
|
||||
return Character.class.cast(GHOST_OBJ(key));
|
||||
}
|
||||
|
||||
default Integer GHOST_INT(String key) {
|
||||
return Integer.class.cast(GHOST_OBJ(key));
|
||||
}
|
||||
|
||||
default Long GHOST_LONG(String key) {
|
||||
return Long.class.cast(GHOST_OBJ(key));
|
||||
}
|
||||
|
||||
default Boolean GHOST_BOOL(String key) {
|
||||
return Boolean.class.cast(GHOST_OBJ(key));
|
||||
}
|
||||
|
||||
default Float GHOST_FLOAT(String key) {
|
||||
return Float.class.cast(GHOST_OBJ(key));
|
||||
}
|
||||
|
||||
default Double GHOST_DOUBLE(String key) {
|
||||
return Double.class.cast(GHOST_OBJ(key));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default Map<String,Object> GHOST_MAP_OBJ(String key) {
|
||||
return Map.class.cast(GHOST_OBJ(key));
|
||||
}
|
||||
|
||||
default Object GHOST_MAP_OBJ_VALUE(String key, String valueKey) {
|
||||
return GHOST_MAP_OBJ(key).get(valueKey);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default Map<String,String> GHOST_MAP_STR(String key) {
|
||||
return Map.class.cast(GHOST_OBJ(key));
|
||||
}
|
||||
|
||||
default String GHOST_MAP_STR_VALUE(String key, String valueKey) {
|
||||
return GHOST_MAP_STR(key).get(valueKey);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default Map<String,Integer> GHOST_MAP_INT(String key) {
|
||||
return Map.class.cast(GHOST_OBJ(key));
|
||||
}
|
||||
|
||||
default Integer GHOST_MAP_INT_VALUE(String key, String valueKey) {
|
||||
return GHOST_MAP_INT(key).get(valueKey);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default List<Object> GHOST_LIST_OBJ(String key) {
|
||||
return List.class.cast(GHOST_OBJ(key));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default List<String> GHOST_LIST_STR(String key) {
|
||||
return List.class.cast(GHOST_OBJ(key));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default List<Integer> GHOST_LIST_INT(String key) {
|
||||
return List.class.cast(GHOST_OBJ(key));
|
||||
}
|
||||
}
|
||||
|
|
@ -6,7 +6,7 @@ import java.util.Map;
|
|||
import java.util.function.Consumer;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BãßBȍőnCoffinOpenʸᴰ<T extends BãßBȍőnCoffinStoreKeyʸᴰ> extends BãßBȍőnCoffinʸᴰ<T>, DefaultInitMethodʸᴰ {
|
||||
public interface BãßBȍőnCoffinOpenʸᴰ<T extends BãßBȍőnCoffinStoreKeyʸᴰ> extends BãßBȍőnCoffinʸᴰ<T> {
|
||||
|
||||
void LOCK_COFFIN();
|
||||
|
||||
|
|
@ -20,30 +20,56 @@ public interface BãßBȍőnCoffinOpenʸᴰ<T extends BãßBȍőnCoffinStoreKey
|
|||
PUT_OBJ(key, new ArrayList<>());
|
||||
}
|
||||
|
||||
static <T extends DefaultEnumBaseʸᴰ<?> & BãßBȍőnCoffinStoreʸᴰ<?>> void lockCoffin(T store, Consumer<String> logHandler) {
|
||||
static void lockCoffin(DefaultEnumBaseʸᴰ<?,?> store, Consumer<String> logHandler) {
|
||||
logHandler.accept("Lock: "+store.BãßClassNaam()+" since: "+store.BãßAuthorCopyright());
|
||||
for (Object o:store.BãßInstances()) {
|
||||
BãßBȍőnCoffinStoreʸᴰ<?> coffin = BãßBȍőnCoffinStoreʸᴰ.class.cast(o);
|
||||
BãßBȍőnCoffinStoreʸᴰ<?, ?> coffin = BãßBȍőnCoffinStoreʸᴰ.class.cast(o);
|
||||
BãßBȍőnCoffinOpenʸᴰ<?> coffinOpen = BãßBȍőnCoffinOpenʸᴰ.class.cast(coffin.GET_BBC());
|
||||
coffinOpen.LOCK_COFFIN();
|
||||
}
|
||||
}
|
||||
|
||||
static class BãßBȍőnFamilyGrave implements BãßBȍőnCoffinGhostʸᴰ {
|
||||
final Map<String,Object> ghosts = new HashMap<>();
|
||||
volatile boolean deathLock = false;
|
||||
|
||||
public void LOCK_GHOST() {
|
||||
deathLock = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object PUT_GHOST(String key, Object value) {
|
||||
if (deathLock) {
|
||||
throw new IllegalStateException("Can't restore body of family ghost.");
|
||||
}
|
||||
return ghosts.put(key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object GHOST_OBJ(String key) {
|
||||
return ghosts.get(key);
|
||||
}
|
||||
}
|
||||
|
||||
static <Y extends BãßBȍőnCoffinStoreKeyʸᴰ> BãßBȍőnCoffinOpenʸᴰ<Y> newInstance() {
|
||||
return new BãßBȍőnCoffinOpenʸᴰ<Y>() {
|
||||
final Map<Y,Object> initMap = new HashMap<>();
|
||||
final Map<Class<?>,BãßBȍőnFamilyGrave> familyGrave = new HashMap<>();
|
||||
volatile boolean deathLock = false;
|
||||
|
||||
@Override
|
||||
public void LOCK_COFFIN() {
|
||||
deathLock = true;
|
||||
for (BãßBȍőnFamilyGrave grave:familyGrave.values()) {
|
||||
grave.LOCK_GHOST();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object GET_OBJ(Y key) {
|
||||
return initMap.get(key);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Object PUT_OBJ(Y key, Object value) {
|
||||
if (deathLock) {
|
||||
|
|
@ -51,6 +77,16 @@ public interface BãßBȍőnCoffinOpenʸᴰ<T extends BãßBȍőnCoffinStoreKey
|
|||
}
|
||||
return initMap.put(key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BãßBȍőnCoffinGhostʸᴰ UNHOLY(Class<?> familyName) {
|
||||
BãßBȍőnFamilyGrave familyGhosts = familyGrave.get(familyName);
|
||||
if (familyGhosts == null) {
|
||||
familyGhosts = new BãßBȍőnFamilyGrave();
|
||||
familyGrave.put(familyName, familyGhosts);
|
||||
}
|
||||
return familyGhosts;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,4 +4,12 @@ package love.distributedrebirth.bassboonyd;
|
|||
public interface BãßBȍőnCoffinStoreKeyʸᴰ {
|
||||
|
||||
String name();
|
||||
|
||||
static class None implements BãßBȍőnCoffinStoreKeyʸᴰ {
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return BãßBȍőnCoffinStoreKeyʸᴰ.class.getSimpleName();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BãßBȍőnCoffinStoreʸᴰ<T extends BãßBȍőnCoffinStoreKeyʸᴰ> {
|
||||
public interface BãßBȍőnCoffinStoreʸᴰ<T, K extends BãßBȍőnCoffinStoreKeyʸᴰ> {
|
||||
|
||||
BãßBȍőnCoffinʸᴰ<T> GET_BBC();
|
||||
BãßBȍőnCoffinʸᴰ<K> GET_BBC();
|
||||
|
||||
T BȍőnCoffinHeadStoneʸᴰ();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,8 +6,10 @@ import java.util.Map;
|
|||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BãßBȍőnCoffinʸᴰ<T extends BãßBȍőnCoffinStoreKeyʸᴰ> {
|
||||
|
||||
BãßBȍőnCoffinGhostʸᴰ UNHOLY(Class<?> familyName);
|
||||
|
||||
Object GET_OBJ(T key);
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default <Y> Y GET_OBJ(T key, Class<Y> type) {
|
||||
return (Y) GET_OBJ(key);
|
||||
|
|
@ -50,16 +52,28 @@ public interface BãßBȍőnCoffinʸᴰ<T extends BãßBȍőnCoffinStoreKeyʸᴰ
|
|||
return Map.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
default Object GET_MAP_OBJ_VALUE(T key, String valueKey) {
|
||||
return GET_MAP_OBJ(key).get(valueKey);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default Map<String,String> GET_MAP_STR(T key) {
|
||||
return Map.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
default String GET_MAP_STR_VALUE(T key, String valueKey) {
|
||||
return GET_MAP_STR(key).get(valueKey);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default Map<String,Integer> GET_MAP_INT(T key) {
|
||||
return Map.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
default Integer GET_MAP_INT_VALUE(T key, String valueKey) {
|
||||
return GET_MAP_INT(key).get(valueKey);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default List<Object> GET_LIST_OBJ(T key) {
|
||||
return List.class.cast(GET_OBJ(key));
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BãßBȍőnInitMarkerʸᴰ {
|
||||
public interface BãßBȍőnꝐŕḯṿª₮ḕ {
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public enum BãßBȍőnꝐŕḯṿª₮ḕInitArgsʸᴰ {
|
||||
|
||||
NONE,
|
||||
BBC,
|
||||
BOON,
|
||||
BOON_AND_BBC
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public enum BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ {
|
||||
|
||||
BOON_PRE_BOOT,
|
||||
BOON_PRE_SERVICE,
|
||||
SERVICE_PRE,
|
||||
SERVICE,
|
||||
SERVICE_POST,
|
||||
BOON_POST_SERVICE,
|
||||
BOON_POST_DONE,
|
||||
}
|
||||
|
|
@ -8,6 +8,9 @@ import java.lang.annotation.Target;
|
|||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target({ElementType.METHOD})
|
||||
public @interface BãßBȍőnInitMethodʸᴰ {
|
||||
|
||||
public @interface BãßBȍőnꝐŕḯṿª₮ḕInitʸᴰ {
|
||||
|
||||
BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ phase() default BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ.SERVICE;
|
||||
|
||||
BãßBȍőnꝐŕḯṿª₮ḕInitArgsʸᴰ args() default BãßBȍőnꝐŕḯṿª₮ḕInitArgsʸᴰ.NONE;
|
||||
}
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnAnnotationInfoʸᴰ(required = {BãßBȍőnAuthorInfoʸᴰ.class})
|
||||
public interface DefaultAuthorInfoʸᴰ {
|
||||
|
||||
default String BãßAuthorNaam() {
|
||||
return getClass().getAnnotation(BãßBȍőnAuthorInfoʸᴰ.class).name();
|
||||
}
|
||||
|
||||
default String BãßAuthorCopyright() {
|
||||
return getClass().getAnnotation(BãßBȍőnAuthorInfoʸᴰ.class).copyright();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
public interface DefaultBãßBȍőn<T, K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends
|
||||
BãßBȍőn<T,K>,
|
||||
InjectInitMethodʸᴰ<T,K>,
|
||||
InjectAuthorInfoʸᴰ<T,K>,
|
||||
InjectClassInfoʸᴰ<T,K>,
|
||||
InjectPackageInfoʸᴰ<T,K> {
|
||||
}
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnAnnotationInfoʸᴰ(required = {BãßBȍőnClassInfoʸᴰ.class})
|
||||
public interface DefaultClassInfoʸᴰ {
|
||||
|
||||
default String BãßClassNaam() {
|
||||
return getClass().getAnnotation(BãßBȍőnClassInfoʸᴰ.class).name();
|
||||
}
|
||||
|
||||
default String BãßClassPurpose() {
|
||||
return getClass().getAnnotation(BãßBȍőnClassInfoʸᴰ.class).purpose();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public interface DefaultEnumBaseʸᴰ<T> extends DefaultAuthorInfoʸᴰ,DefaultClassInfoʸᴰ,DefaultPackageInfoʸᴰ {
|
||||
public interface DefaultEnumBaseʸᴰ<T, K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends DefaultBãßBȍőn<T, K> {
|
||||
|
||||
// Bȍőn prefix is for set instance enum methods (called DefaultEnumSetʸᴰ)
|
||||
// Bãß prefix is for single instance enum methods (called DefaultEnumInstanceʸᴰ)
|
||||
|
||||
int ordinal();
|
||||
|
||||
String name();
|
||||
|
||||
// Bȍőn prefix is for set instance enum methods (called DefaultEnumSetʸᴰ)
|
||||
// Bãß prefix is for single instance enum methods (called DefaultEnumInstanceʸᴰ)
|
||||
|
||||
default String BȍőnNaam() {
|
||||
return name();
|
||||
}
|
||||
|
|
@ -23,10 +23,4 @@ public interface DefaultEnumBaseʸᴰ<T> extends DefaultAuthorInfoʸᴰ,DefaultC
|
|||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
default String BȍőnNaamI18N() {
|
||||
return BãßClassNaam() + BãßBȍőnConstantsʸᴰ.STR_DOT + BȍőnNaam();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public interface DefaultEnumInstanceʸᴰ<T> extends DefaultEnumBaseʸᴰ<T> {
|
||||
public interface DefaultEnumInstanceʸᴰ<T, K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends DefaultEnumBaseʸᴰ<T,K> {
|
||||
|
||||
default T BãßInstance() {
|
||||
return BãßInstances()[BãßBȍőnConstantsʸᴰ.INT_ZERO];
|
||||
|
|
|
|||
|
|
@ -8,50 +8,59 @@ import java.util.function.Function;
|
|||
import java.util.stream.Collectors;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public interface DefaultEnumSetʸᴰ<T> extends DefaultEnumBaseʸᴰ<T> {
|
||||
public interface DefaultEnumSetʸᴰ<T, K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends DefaultEnumBaseʸᴰ<T,K> {
|
||||
|
||||
public static class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
||||
private static final String GHOST_KEY_RANG_TEL_EEN = "rangTelEen";
|
||||
|
||||
@BãßBȍőnꝐŕḯṿª₮ḕInitʸᴰ(args = BãßBȍőnꝐŕḯṿª₮ḕInitArgsʸᴰ.BOON_AND_BBC)
|
||||
private static void init(DefaultEnumSetʸᴰ<?,?> boon, BãßBȍőnCoffinOpenʸᴰ<?> BBC) {
|
||||
BBC.UNHOLY(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_KEY_RANG_TEL_EEN, boon.BȍőnRangTelNul() + BãßBȍőnConstantsʸᴰ.INT_ONE);
|
||||
}
|
||||
}
|
||||
|
||||
default int BȍőnRangTelNul() {
|
||||
return ordinal();
|
||||
}
|
||||
|
||||
default int BȍőnRangTelEen() {
|
||||
return ordinal() + 1;
|
||||
return GET_BBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_INT(Ꝑŕḯṿª₮ḕ.GHOST_KEY_RANG_TEL_EEN);
|
||||
}
|
||||
|
||||
default List<T> BãßInstancesList() {
|
||||
return Arrays.asList(BãßInstances());
|
||||
}
|
||||
|
||||
default <K> Map<K,T> BãßInstancesToMap(Function<T,K> keyMapper) {
|
||||
default Map<String,T> BãßInstancesToMap(Function<T,String> keyMapper) {
|
||||
return BãßInstancesList().stream().collect(Collectors.toMap(keyMapper, v -> v));
|
||||
}
|
||||
|
||||
default T BȍőnVolgende() {
|
||||
T[] values = BãßInstances();
|
||||
int resultIndex = 0;
|
||||
for (int i=0;i<values.length;i++) {
|
||||
int resultIndex = BãßBȍőnConstantsʸᴰ.INT_ZERO;
|
||||
for (int i=BãßBȍőnConstantsʸᴰ.INT_ZERO;i<values.length;i++) {
|
||||
if (this == values[i]) {
|
||||
resultIndex = i + 1;
|
||||
resultIndex = i + BãßBȍőnConstantsʸᴰ.INT_ONE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (resultIndex == values.length) {
|
||||
resultIndex = 0;
|
||||
resultIndex = BãßBȍőnConstantsʸᴰ.INT_ZERO;
|
||||
}
|
||||
return values[resultIndex];
|
||||
}
|
||||
|
||||
default T BȍőnVorige() {
|
||||
T[] values = BãßInstances();
|
||||
int resultIndex = 0;
|
||||
for (int i=0;i<values.length;i++) {
|
||||
int resultIndex = BãßBȍőnConstantsʸᴰ.INT_ZERO;
|
||||
for (int i=BãßBȍőnConstantsʸᴰ.INT_ZERO;i<values.length;i++) {
|
||||
if (this == values[i]) {
|
||||
resultIndex = i - 1;
|
||||
resultIndex = i - BãßBȍőnConstantsʸᴰ.INT_ONE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (resultIndex < 0) {
|
||||
resultIndex = values.length - 1;
|
||||
if (resultIndex < BãßBȍőnConstantsʸᴰ.INT_ZERO) {
|
||||
resultIndex = values.length - BãßBȍőnConstantsʸᴰ.INT_ONE;
|
||||
}
|
||||
return values[resultIndex];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,63 +0,0 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnAnnotationInfoʸᴰ(required = {})
|
||||
public interface DefaultInitMethodʸᴰ {
|
||||
|
||||
default void BOON_INIT(Object boon) {
|
||||
|
||||
final class InitScanner {
|
||||
|
||||
public void scanInterfaces(Object boon, Object bbc) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
||||
for (Class<?> interfaceClass:walkInterfaces(boon.getClass(), new LinkedHashSet<>())) {
|
||||
for (Class<?> declaredClass:((Class<?>) interfaceClass).getDeclaredClasses()) {
|
||||
initStaticMarker(declaredClass, bbc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void scanClass(Object boon, Object bbc) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
||||
for (Class<?> declaredClass:boon.getClass().getDeclaredClasses()) {
|
||||
initStaticMarker(declaredClass, bbc);
|
||||
}
|
||||
}
|
||||
|
||||
private void initStaticMarker(Class<?> declaredClass, Object bbc) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
||||
if (!BãßBȍőnInitMarkerʸᴰ.class.isAssignableFrom(declaredClass)) {
|
||||
return;
|
||||
}
|
||||
for (Method m:declaredClass.getDeclaredMethods()) {
|
||||
if (m.isAnnotationPresent(BãßBȍőnInitMethodʸᴰ.class)) {
|
||||
m.setAccessible(true);
|
||||
m.invoke(null, bbc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Set<Class<?>> walkInterfaces(Class<?> clazz, Set<Class<?>> result) {
|
||||
while (clazz != null) {
|
||||
for (Class<?> next : clazz.getInterfaces()) {
|
||||
if (result.add(next)) {
|
||||
return walkInterfaces(next, result);
|
||||
}
|
||||
}
|
||||
clazz = clazz.getSuperclass();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
InitScanner init = new InitScanner();
|
||||
try {
|
||||
init.scanInterfaces(boon, this);
|
||||
init.scanClass(boon, this);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnAnnotationInfoʸᴰ(required = {BãßBȍőnPackageInfoʸᴰ.class})
|
||||
public interface DefaultPackageInfoʸᴰ {
|
||||
|
||||
default String BãßPackageNaam() {
|
||||
return getClass().getAnnotation(BãßBȍőnPackageInfoʸᴰ.class).name();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnAnnotationInfoʸᴰ(required = {BãßBȍőnAuthorInfoʸᴰ.class})
|
||||
public interface InjectAuthorInfoʸᴰ<T, K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends BãßBȍőn<T,K> {
|
||||
|
||||
public static class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
||||
private static final String GHOST_KEY_AUTHOR_NAME = "authorName";
|
||||
private static final String GHOST_KEY_AUTHOR_COPYRIGHT = "authorCopyright";
|
||||
private static final String DEFAULT_AUTHOR_NAME = "奴隸來自 仙上主天";
|
||||
private static final String DEFAULT_AUTHOR_COPYRIGHT = "©Δ∞ 仙上主天";
|
||||
|
||||
@BãßBȍőnꝐŕḯṿª₮ḕInitʸᴰ(phase = BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ.BOON_PRE_BOOT, args = BãßBȍőnꝐŕḯṿª₮ḕInitArgsʸᴰ.BOON_AND_BBC)
|
||||
private static void init(BãßBȍőn<?,?> boon, BãßBȍőnCoffinOpenʸᴰ<?> BBC) {
|
||||
BãßBȍőnAuthorInfoʸᴰ anno = boon.getClass().getAnnotation(BãßBȍőnAuthorInfoʸᴰ.class);
|
||||
BBC.UNHOLY(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_KEY_AUTHOR_NAME, anno!=null?anno.name():DEFAULT_AUTHOR_NAME);
|
||||
BBC.UNHOLY(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_KEY_AUTHOR_COPYRIGHT, anno!=null?anno.copyright():DEFAULT_AUTHOR_COPYRIGHT);
|
||||
}
|
||||
}
|
||||
|
||||
default String BãßAuthorNaam() {
|
||||
return GET_BBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_STR(Ꝑŕḯṿª₮ḕ.GHOST_KEY_AUTHOR_NAME);
|
||||
}
|
||||
|
||||
default String BãßAuthorCopyright() {
|
||||
return GET_BBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_STR(Ꝑŕḯṿª₮ḕ.GHOST_KEY_AUTHOR_COPYRIGHT);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnAnnotationInfoʸᴰ(required = {BãßBȍőnClassInfoʸᴰ.class})
|
||||
public interface InjectClassInfoʸᴰ<T, K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends BãßBȍőn<T, K> {
|
||||
|
||||
public static class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
||||
private static final String GHOST_KEY_BEAN_NAME = "beanName";
|
||||
private static final String GHOST_KEY_BEAN_PURPOSE = "beanPurpose";
|
||||
private static final String DEFAULT_BEAN_PURPOSE = "Undefined";
|
||||
|
||||
@BãßBȍőnꝐŕḯṿª₮ḕInitʸᴰ(phase = BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ.BOON_PRE_BOOT, args = BãßBȍőnꝐŕḯṿª₮ḕInitArgsʸᴰ.BOON_AND_BBC)
|
||||
private static void init(BãßBȍőn<?,?> boon, BãßBȍőnCoffinOpenʸᴰ<?> BBC) {
|
||||
BãßBȍőnClassInfoʸᴰ anno = boon.getClass().getAnnotation(BãßBȍőnClassInfoʸᴰ.class);
|
||||
BBC.UNHOLY(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_KEY_BEAN_NAME, anno!=null?anno.name():boon.getClass().getSimpleName());
|
||||
BBC.UNHOLY(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_KEY_BEAN_PURPOSE, anno!=null?anno.purpose():DEFAULT_BEAN_PURPOSE);
|
||||
}
|
||||
}
|
||||
|
||||
default String BãßClassNaam() {
|
||||
return GET_BBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_STR(Ꝑŕḯṿª₮ḕ.GHOST_KEY_BEAN_NAME);
|
||||
}
|
||||
|
||||
default String BãßClassPurpose() {
|
||||
return GET_BBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_STR(Ꝑŕḯṿª₮ḕ.GHOST_KEY_BEAN_PURPOSE);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public interface InjectInitMethodʸᴰ<T, K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends BãßBȍőn<T,K> {
|
||||
|
||||
public static class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
||||
|
||||
private static void scanInterfaces(BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ phase, Object boon, BãßBȍőnCoffinOpenʸᴰ<?> bbc) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
||||
for (Class<?> interfaceClass:walkInterfaces(boon.getClass(), new LinkedHashSet<>())) {
|
||||
for (Class<?> declaredClass:((Class<?>) interfaceClass).getDeclaredClasses()) {
|
||||
initPrivateMarker(phase, declaredClass, bbc, boon);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void scanClass(BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ phase, Object boon, BãßBȍőnCoffinOpenʸᴰ<?> bbc) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
||||
for (Class<?> declaredClass:boon.getClass().getDeclaredClasses()) {
|
||||
initPrivateMarker(phase, declaredClass, bbc, boon);
|
||||
}
|
||||
}
|
||||
|
||||
private static void initPrivateMarker(BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ phase, Class<?> declaredClass, BãßBȍőnCoffinOpenʸᴰ<?> bbc, Object boon) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
|
||||
if (!BãßBȍőnꝐŕḯṿª₮ḕ.class.isAssignableFrom(declaredClass)) {
|
||||
return;
|
||||
}
|
||||
for (Method m:declaredClass.getDeclaredMethods()) {
|
||||
if (!m.isAnnotationPresent(BãßBȍőnꝐŕḯṿª₮ḕInitʸᴰ.class)) {
|
||||
continue;
|
||||
}
|
||||
BãßBȍőnꝐŕḯṿª₮ḕInitʸᴰ anno = m.getAnnotation(BãßBȍőnꝐŕḯṿª₮ḕInitʸᴰ.class);
|
||||
if (phase != anno.phase()) {
|
||||
continue; // TODO: redo to fast code path
|
||||
}
|
||||
//System.out.println("annoInvoke: "+anno.args()+" req="+phase+" of "+boon.getClass().getSimpleName()+"."+boon+" from: "+declaredClass.getName());
|
||||
m.setAccessible(true);
|
||||
if (anno.args() == BãßBȍőnꝐŕḯṿª₮ḕInitArgsʸᴰ.BBC) {
|
||||
m.invoke(null, bbc);
|
||||
} else if (anno.args() == BãßBȍőnꝐŕḯṿª₮ḕInitArgsʸᴰ.BOON) {
|
||||
m.invoke(null, boon);
|
||||
} else if (anno.args() == BãßBȍőnꝐŕḯṿª₮ḕInitArgsʸᴰ.BOON_AND_BBC) {
|
||||
m.invoke(null, boon, bbc);
|
||||
} else {
|
||||
m.invoke(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static Set<Class<?>> walkInterfaces(Class<?> clazz, Set<Class<?>> result) {
|
||||
while (clazz != null) {
|
||||
for (Class<?> next : clazz.getInterfaces()) {
|
||||
if (result.add(next)) {
|
||||
walkInterfaces(next, result);
|
||||
}
|
||||
}
|
||||
clazz = clazz.getSuperclass();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
default void BOON_INIT() {
|
||||
BOON_INIT(null);
|
||||
}
|
||||
|
||||
default void BOON_INIT(Consumer<BãßBȍőnCoffinOpenʸᴰ<K>> initBody) {
|
||||
BãßBȍőnCoffinOpenʸᴰ<K> bbc = (BãßBȍőnCoffinOpenʸᴰ<K>) GET_BBC();
|
||||
try {
|
||||
for (BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ phase:BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ.values()) {
|
||||
Ꝑŕḯṿª₮ḕ.scanInterfaces(phase, this, bbc);
|
||||
Ꝑŕḯṿª₮ḕ.scanClass(phase, this, bbc);
|
||||
}
|
||||
if (initBody != null) {
|
||||
initBody.accept(bbc);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnAnnotationInfoʸᴰ(required = {BãßBȍőnPackageInfoʸᴰ.class})
|
||||
public interface InjectPackageInfoʸᴰ<T, K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends BãßBȍőn<T, K> {
|
||||
|
||||
public static class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
||||
private static final String GHOST_KEY_PACKAGE_NAME = "packageName";
|
||||
|
||||
@BãßBȍőnꝐŕḯṿª₮ḕInitʸᴰ(phase = BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ.BOON_PRE_BOOT, args = BãßBȍőnꝐŕḯṿª₮ḕInitArgsʸᴰ.BOON_AND_BBC)
|
||||
private static void init(BãßBȍőn<?,?> boon, BãßBȍőnCoffinOpenʸᴰ<?> BBC) {
|
||||
BãßBȍőnPackageInfoʸᴰ anno = boon.getClass().getAnnotation(BãßBȍőnPackageInfoʸᴰ.class);
|
||||
BBC.UNHOLY(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(GHOST_KEY_PACKAGE_NAME, anno!=null?anno.name():boon.getClass().getPackage().getName());
|
||||
}
|
||||
}
|
||||
|
||||
default String BãßPackageNaam() {
|
||||
return GET_BBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_STR(Ꝑŕḯṿª₮ḕ.GHOST_KEY_PACKAGE_NAME);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,46 +1,61 @@
|
|||
package love.distributedrebirth.bassboonyd.jmx;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAnnotationInfoʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnClassInfoʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinOpenʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinStoreKeyʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinStoreʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnConstantsʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||
import love.distributedrebirth.bassboonyd.DefaultEnumBaseʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnAnnotationInfoʸᴰ(required = {BãßBȍőnClassInfoʸᴰ.class, BãßBȍőnAuthorInfoʸᴰ.class})
|
||||
public interface DefaultEnumBaseᴶᴹˣ<T,K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends DefaultEnumBaseʸᴰ<T>,BãßBȍőnCoffinStoreʸᴰ<K> {
|
||||
public interface DefaultEnumBaseᴶᴹˣ<T,K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends DefaultEnumBaseʸᴰ<T,K> {
|
||||
|
||||
void BȍőnJmxInit(K key);
|
||||
|
||||
default GuageCounterᴶᴹˣ BȍőnJmxInitGuageCounter(K key, String name) {
|
||||
return BȍőnJmxInitGuageCounter(key, name, BãßBȍőnConstantsʸᴰ.STR_EMPTY);
|
||||
public static class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
||||
private static final String GHOST_KEY_JMX = "JMX";
|
||||
}
|
||||
|
||||
default GuageCounterᴶᴹˣ BȍőnJmxInitGuageCounter(K key, String name, String description) {
|
||||
public static Map<String, Object> GHOST_MAP(BãßBȍőnCoffinOpenʸᴰ<?> BBC) {
|
||||
Map<String, Object> result = BBC.UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_MAP_OBJ(Ꝑŕḯṿª₮ḕ.GHOST_KEY_JMX);
|
||||
if (result == null) {
|
||||
result = new HashMap<>();
|
||||
BBC.UNHOLY(Ꝑŕḯṿª₮ḕ.class).PUT_GHOST(Ꝑŕḯṿª₮ḕ.GHOST_KEY_JMX, result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
default GuageCounterᴶᴹˣ BȍőnJmxInitGuageCounter(String name) {
|
||||
return BȍőnJmxInitGuageCounter(name, BãßBȍőnConstantsʸᴰ.STR_EMPTY);
|
||||
}
|
||||
|
||||
default GuageCounterᴶᴹˣ BȍőnJmxInitGuageCounter(String name, String description) {
|
||||
GuageCounterᴶᴹˣ result = new GuageCounterᴶᴹˣ(name, description);
|
||||
GET_BBC().GET_MAP_OBJ(key).put(name, result);
|
||||
GET_BBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_MAP_OBJ(Ꝑŕḯṿª₮ḕ.GHOST_KEY_JMX).put(name, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
default StringAttributeᴶᴹˣ BȍőnJmxInitStringAttribute(K key, String name) {
|
||||
return BȍőnJmxInitStringAttribute(key, name, BãßBȍőnConstantsʸᴰ.STR_EMPTY);
|
||||
default StringAttributeᴶᴹˣ BȍőnJmxInitStringAttribute(String name) {
|
||||
return BȍőnJmxInitStringAttribute(name, BãßBȍőnConstantsʸᴰ.STR_EMPTY);
|
||||
}
|
||||
|
||||
default StringAttributeᴶᴹˣ BȍőnJmxInitStringAttribute(K key, String name, String description) {
|
||||
default StringAttributeᴶᴹˣ BȍőnJmxInitStringAttribute(String name, String description) {
|
||||
StringAttributeᴶᴹˣ result = new StringAttributeᴶᴹˣ(name, description);
|
||||
GET_BBC().GET_MAP_OBJ(key).put(name, result);
|
||||
GET_BBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_MAP_OBJ(Ꝑŕḯṿª₮ḕ.GHOST_KEY_JMX).put(name, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
default BooleanAttributeᴶᴹˣ BȍőnJmxInitBooleanAttribute(K key, String name) {
|
||||
return BȍőnJmxInitBooleanAttribute(key, name, BãßBȍőnConstantsʸᴰ.STR_EMPTY);
|
||||
default BooleanAttributeᴶᴹˣ BȍőnJmxInitBooleanAttribute(String name) {
|
||||
return BȍőnJmxInitBooleanAttribute(name, BãßBȍőnConstantsʸᴰ.STR_EMPTY);
|
||||
}
|
||||
|
||||
default BooleanAttributeᴶᴹˣ BȍőnJmxInitBooleanAttribute(K key, String name, String description) {
|
||||
default BooleanAttributeᴶᴹˣ BȍőnJmxInitBooleanAttribute(String name, String description) {
|
||||
BooleanAttributeᴶᴹˣ result = new BooleanAttributeᴶᴹˣ(name, description);
|
||||
GET_BBC().GET_MAP_OBJ(key).put(name, result);
|
||||
GET_BBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_MAP_OBJ(Ꝑŕḯṿª₮ḕ.GHOST_KEY_JMX).put(name, result);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,29 +11,34 @@ import love.distributedrebirth.bassboonyd.BãßBȍőnClassInfoʸᴰ;
|
|||
import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinOpenʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinStoreKeyʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnConstantsʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnꝐŕḯṿª₮ḕInitArgsʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnꝐŕḯṿª₮ḕInitʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.DefaultEnumInstanceʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnAnnotationInfoʸᴰ(required = {BãßBȍőnClassInfoʸᴰ.class, BãßBȍőnAuthorInfoʸᴰ.class})
|
||||
public interface DefaultEnumInstanceᴶᴹˣ<T,K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends DefaultEnumBaseᴶᴹˣ<T,K>,DefaultEnumInstanceʸᴰ<T> {
|
||||
public interface DefaultEnumInstanceᴶᴹˣ<T,K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends DefaultEnumBaseᴶᴹˣ<T,K>,DefaultEnumInstanceʸᴰ<T,K> {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default void BȍőnJmxInit(K key) {
|
||||
BãßBȍőnCoffinOpenʸᴰ<K> coffin = BãßBȍőnCoffinOpenʸᴰ.class.cast(GET_BBC());
|
||||
coffin.PUT_MAP(key);
|
||||
try {
|
||||
StringBuilder name = new StringBuilder();
|
||||
name.append(BãßPackageNaam());
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_COLON);
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_TYPE);
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_IS);
|
||||
name.append(BãßClassNaam());
|
||||
|
||||
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
|
||||
ObjectName objectName1 = new ObjectName(name.toString());
|
||||
server.registerMBean(new MBeanDynamicᴶᴹˣ(BãßClassPurpose(), GET_BBC().GET_MAP_OBJ(key)), objectName1);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
public static class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
||||
|
||||
@BãßBȍőnꝐŕḯṿª₮ḕInitʸᴰ(phase = BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ.BOON_PRE_SERVICE, args = BãßBȍőnꝐŕḯṿª₮ḕInitArgsʸᴰ.BOON_AND_BBC)
|
||||
private static void init(DefaultEnumBaseᴶᴹˣ<?,?> boon, BãßBȍőnCoffinOpenʸᴰ<?> BBC) {
|
||||
try {
|
||||
StringBuilder name = new StringBuilder();
|
||||
name.append(boon.BãßPackageNaam());
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_COLON);
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_TYPE);
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_IS);
|
||||
name.append(boon.BãßClassNaam());
|
||||
|
||||
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
|
||||
ObjectName objectName1 = new ObjectName(name.toString());
|
||||
server.registerMBean(new MBeanDynamicᴶᴹˣ(boon.BãßClassPurpose(), DefaultEnumBaseᴶᴹˣ.GHOST_MAP(BBC)), objectName1);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,33 +11,38 @@ import love.distributedrebirth.bassboonyd.BãßBȍőnClassInfoʸᴰ;
|
|||
import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinOpenʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinStoreKeyʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnConstantsʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnꝐŕḯṿª₮ḕ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnꝐŕḯṿª₮ḕInitArgsʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnꝐŕḯṿª₮ḕInitʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.DefaultEnumSetʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnAnnotationInfoʸᴰ(required = {BãßBȍőnClassInfoʸᴰ.class, BãßBȍőnAuthorInfoʸᴰ.class})
|
||||
public interface DefaultEnumSetᴶᴹˣ<T,K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends DefaultEnumBaseᴶᴹˣ<T,K>,DefaultEnumSetʸᴰ<T> {
|
||||
public interface DefaultEnumSetᴶᴹˣ<T,K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends DefaultEnumBaseᴶᴹˣ<T,K>,DefaultEnumSetʸᴰ<T,K> {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default void BȍőnJmxInit(K key) {
|
||||
BãßBȍőnCoffinOpenʸᴰ<K> coffin = BãßBȍőnCoffinOpenʸᴰ.class.cast(GET_BBC());
|
||||
coffin.PUT_MAP(key);
|
||||
try {
|
||||
StringBuilder name = new StringBuilder();
|
||||
name.append(BãßPackageNaam());
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_COLON);
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_TYPE);
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_IS);
|
||||
name.append(BãßClassNaam());
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_COMMA);
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_NAME);
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_IS);
|
||||
name.append(BȍőnNaam());
|
||||
|
||||
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
|
||||
ObjectName objectName1 = new ObjectName(name.toString());
|
||||
server.registerMBean(new MBeanDynamicᴶᴹˣ(BãßClassPurpose(), GET_BBC().GET_MAP_OBJ(key)), objectName1);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
public static class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
||||
|
||||
@BãßBȍőnꝐŕḯṿª₮ḕInitʸᴰ(phase = BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ.BOON_PRE_SERVICE, args = BãßBȍőnꝐŕḯṿª₮ḕInitArgsʸᴰ.BOON_AND_BBC)
|
||||
private static void init(DefaultEnumBaseᴶᴹˣ<?,?> boon, BãßBȍőnCoffinOpenʸᴰ<?> BBC) {
|
||||
try {
|
||||
StringBuilder name = new StringBuilder();
|
||||
name.append(boon.BãßPackageNaam());
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_COLON);
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_TYPE);
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_IS);
|
||||
name.append(boon.BãßClassNaam());
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_COMMA);
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_NAME);
|
||||
name.append(BãßBȍőnConstantsʸᴰ.STR_IS);
|
||||
name.append(boon.BȍőnNaam());
|
||||
|
||||
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
|
||||
ObjectName objectName1 = new ObjectName(name.toString());
|
||||
server.registerMBean(new MBeanDynamicᴶᴹˣ(boon.BãßClassPurpose(), DefaultEnumBaseᴶᴹˣ.GHOST_MAP(BBC)), objectName1);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
package love.distributedrebirth.bassboonyd.jmx;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinStoreKeyʸᴰ;
|
||||
|
||||
/**
|
||||
* Only use when no other coffin keys are needed on instance or enum.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
public enum MBeanStoreKeyᴶᴹˣ implements BãßBȍőnCoffinStoreKeyʸᴰ {
|
||||
JMX,
|
||||
;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue