diff --git a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnCoffinOpenʸᴰ.java b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnCoffinOpenʸᴰ.java index 70f6b5fd..b38a22c1 100644 --- a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnCoffinOpenʸᴰ.java +++ b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnCoffinOpenʸᴰ.java @@ -1,11 +1,10 @@ package love.distributedrebirth.bassboonyd; -import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") -public interface BãßBȍőnCoffinOpenʸᴰ extends BãßBȍőnCoffinʸᴰ { +public interface BãßBȍőnCoffinOpenʸᴰ extends BãßBȍőnCoffinʸᴰ, DefaultInitMethodʸᴰ { void LOCK_COFFIN(); @@ -19,18 +18,6 @@ public interface BãßBȍőnCoffinOpenʸᴰ()); } - default void BOON_INIT(Object boon) { - try { - for (Method m:boon.getClass().getMethods()) { - if (m.isAnnotationPresent(BãßBȍőnInitMethodʸᴰ.class)) { - m.invoke(boon, this); - } - } - } catch (Exception e) { - throw new RuntimeException(e); - } - } - static BãßBȍőnCoffinOpenʸᴰ newInstance() { return new BãßBȍőnCoffinOpenʸᴰ() { final Map initMap = new HashMap<>(); diff --git a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnConstantsʸᴰ.java b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnConstantsʸᴰ.java index d5af9ef6..1742357c 100644 --- a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnConstantsʸᴰ.java +++ b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnConstantsʸᴰ.java @@ -5,8 +5,22 @@ public class BãßBȍőnConstantsʸᴰ { public static final String STR_VALUES = "values"; + public static final String STR_NAME = "name"; + + public static final String STR_TYPE = "type"; + public static final String STR_DOT = "."; + public static final String STR_EMPTY = ""; + + public static final String STR_SPACE = " "; + + public static final String STR_COMMA = ","; + + public static final String STR_COLON = ":"; + + public static final String STR_IS = "="; + public static final int INT_ZERO = 0; public static final int INT_ONE = 1; diff --git a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnEnumʸᴰ.java b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/DefaultEnumBaseʸᴰ.java similarity index 91% rename from demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnEnumʸᴰ.java rename to demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/DefaultEnumBaseʸᴰ.java index 3979e6a2..57c14f3c 100644 --- a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnEnumʸᴰ.java +++ b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/DefaultEnumBaseʸᴰ.java @@ -2,7 +2,9 @@ package love.distributedrebirth.bassboonyd; @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnAnnotationInfoʸᴰ(required = {BãßBȍőnClassInfoʸᴰ.class, BãßBȍőnAuthorInfoʸᴰ.class}) -public interface BãßBȍőnEnumʸᴰ extends DefaultAuthorInfoʸᴰ,DefaultClassInfoʸᴰ,DefaultPackageInfoʸᴰ { +public interface DefaultEnumBaseʸᴰ extends DefaultAuthorInfoʸᴰ,DefaultClassInfoʸᴰ,DefaultPackageInfoʸᴰ { + + int ordinal(); String name(); @@ -23,8 +25,9 @@ public interface BãßBȍőnEnumʸᴰ extends DefaultAuthorInfoʸᴰ,DefaultC } } - + /* default String BȍőnNaamI18N() { return BãßClassNaam() + BãßBȍőnConstantsʸᴰ.STR_DOT + name(); } + */ } diff --git a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnEnumInstanceʸᴰ.java b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/DefaultEnumInstanceʸᴰ.java similarity index 57% rename from demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnEnumInstanceʸᴰ.java rename to demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/DefaultEnumInstanceʸᴰ.java index 3df24618..4e5960e6 100644 --- a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnEnumInstanceʸᴰ.java +++ b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/DefaultEnumInstanceʸᴰ.java @@ -1,13 +1,7 @@ package love.distributedrebirth.bassboonyd; @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") -public interface BãßBȍőnEnumInstanceʸᴰ extends BãßBȍőnEnumʸᴰ { - - int ordinal(); - - default T BȍőnInstance() { - return BãßInstances()[ordinal()]; - } +public interface DefaultEnumInstanceʸᴰ extends DefaultEnumBaseʸᴰ { default T BãßInstance() { return BãßInstances()[BãßBȍőnConstantsʸᴰ.INT_ZERO]; diff --git a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnEnumSetʸᴰ.java b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/DefaultEnumSetʸᴰ.java similarity index 93% rename from demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnEnumSetʸᴰ.java rename to demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/DefaultEnumSetʸᴰ.java index aa9aaccf..6b097612 100644 --- a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/BãßBȍőnEnumSetʸᴰ.java +++ b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/DefaultEnumSetʸᴰ.java @@ -7,9 +7,7 @@ import java.util.function.Consumer; import java.util.stream.Stream; @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") -public interface BãßBȍőnEnumSetʸᴰ extends BãßBȍőnEnumʸᴰ { - - int ordinal(); +public interface DefaultEnumSetʸᴰ extends DefaultEnumBaseʸᴰ { default int BȍőnRangTelNul() { return ordinal(); diff --git a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/DefaultInitMethodʸᴰ.java b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/DefaultInitMethodʸᴰ.java new file mode 100644 index 00000000..5269f042 --- /dev/null +++ b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/DefaultInitMethodʸᴰ.java @@ -0,0 +1,20 @@ +package love.distributedrebirth.bassboonyd; + +import java.lang.reflect.Method; + +@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") +@BãßBȍőnAnnotationInfoʸᴰ(required = {}) +public interface DefaultInitMethodʸᴰ { + + default void BOON_INIT(Object boon) { + try { + for (Method m:boon.getClass().getMethods()) { + if (m.isAnnotationPresent(BãßBȍőnInitMethodʸᴰ.class)) { + m.invoke(boon, this); + } + } + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} diff --git a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/BãßBȍőnEnumJmxʸᴰ.java b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/BãßBȍőnEnumJmxʸᴰ.java deleted file mode 100644 index 6d8bbf5f..00000000 --- a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/BãßBȍőnEnumJmxʸᴰ.java +++ /dev/null @@ -1,116 +0,0 @@ -package love.distributedrebirth.bassboonyd.jmx; - -import java.lang.management.ManagementFactory; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import javax.management.Attribute; -import javax.management.AttributeList; -import javax.management.AttributeNotFoundException; -import javax.management.DynamicMBean; -import javax.management.InvalidAttributeValueException; -import javax.management.MBeanAttributeInfo; -import javax.management.MBeanException; -import javax.management.MBeanInfo; -import javax.management.MBeanNotificationInfo; -import javax.management.MBeanServer; -import javax.management.ObjectName; -import javax.management.ReflectionException; - -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ȍőnEnumʸᴰ; - -@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") -@BãßBȍőnAnnotationInfoʸᴰ(required = {BãßBȍőnClassInfoʸᴰ.class, BãßBȍőnAuthorInfoʸᴰ.class}) -public interface BãßBȍőnEnumJmxʸᴰ extends BãßBȍőnEnumʸᴰ,BãßBȍőnCoffinStoreʸᴰ { - - @SuppressWarnings("unchecked") - default void BȍőnJmxInit(K key) { - BãßBȍőnCoffinOpenʸᴰ coffin = BãßBȍőnCoffinOpenʸᴰ.class.cast(GET_BBC()); - coffin.PUT_MAP(key); - try { - MBeanServer server = ManagementFactory.getPlatformMBeanServer(); - ObjectName objectName1 = new ObjectName(BãßPackageNaam() + ":name=" + BãßClassNaam()); - server.registerMBean(new GuageDynamicMBean(GET_BBC().GET_MAP_OBJ(key)), objectName1); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - default GuageCounterᴶᴹˣ BȍőnJmxInitGuageCounter(K key, String name) { - return BȍőnJmxInitGuageCounter(key,name,""); - } - - default GuageCounterᴶᴹˣ BȍőnJmxInitGuageCounter(K key, String name, String description) { - GuageCounterᴶᴹˣ result = new GuageCounterᴶᴹˣ(name, description); - GET_BBC().GET_MAP_OBJ(key).put(name, result); - return result; - } - - default StringAttributeᴶᴹˣ BȍőnJmxInitStringAttribute(K key, String name, String description) { - StringAttributeᴶᴹˣ result = new StringAttributeᴶᴹˣ(name, description); - GET_BBC().GET_MAP_OBJ(key).put(name, result); - return result; - } - - default BooleanAttributeᴶᴹˣ BȍőnJmxInitBooleanAttribute(K key, String name, String description) { - BooleanAttributeᴶᴹˣ result = new BooleanAttributeᴶᴹˣ(name, description); - GET_BBC().GET_MAP_OBJ(key).put(name, result); - return result; - } - - class GuageDynamicMBean implements DynamicMBean { - - private final Map guages; - - public GuageDynamicMBean(Map guages) { - this.guages = guages; - } - - @Override - public MBeanInfo getMBeanInfo() { - MBeanAttributeInfo[] dAttributes = new MBeanAttributeInfo[guages.keySet().size()]; - List keySet = guages.keySet().stream().collect(Collectors.toList()); - for (int i = 0; i < dAttributes.length; i++) { - String name = keySet.get(i); - MBeanAttributeᴶᴹˣ gc = MBeanAttributeᴶᴹˣ.class.cast(guages.get(name)); - dAttributes[i] = new MBeanAttributeInfo(gc.getName(), gc.BãßValueType().getSimpleName(), - gc.getDescription(), true, false, false); - } - return new MBeanInfo(this.getClass().getName(), null, dAttributes, null, null, - new MBeanNotificationInfo[0]); - } - - @Override - public Object getAttribute(String name) throws AttributeNotFoundException, MBeanException, ReflectionException { - MBeanAttributeᴶᴹˣ gc = MBeanAttributeᴶᴹˣ.class.cast(guages.get(name)); - return gc.getValue(); - } - - @Override - public AttributeList getAttributes(String[] arg0) { - return null; - } - - @Override - public Object invoke(String arg0, Object[] arg1, String[] arg2) throws MBeanException, ReflectionException { - return null; - } - - @Override - public void setAttribute(Attribute arg0) - throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException { - } - - @Override - public AttributeList setAttributes(AttributeList arg0) { - return null; - } - } -} diff --git a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/DefaultEnumBaseᴶᴹˣ.java b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/DefaultEnumBaseᴶᴹˣ.java new file mode 100644 index 00000000..f65726a6 --- /dev/null +++ b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/DefaultEnumBaseᴶᴹˣ.java @@ -0,0 +1,46 @@ +package love.distributedrebirth.bassboonyd.jmx; + +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ȍőnCoffinStoreKeyʸᴰ; +import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinStoreʸᴰ; +import love.distributedrebirth.bassboonyd.BãßBȍőnConstantsʸᴰ; +import love.distributedrebirth.bassboonyd.DefaultEnumBaseʸᴰ; + +@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") +@BãßBȍőnAnnotationInfoʸᴰ(required = {BãßBȍőnClassInfoʸᴰ.class, BãßBȍőnAuthorInfoʸᴰ.class}) +public interface DefaultEnumBaseᴶᴹˣ extends DefaultEnumBaseʸᴰ,BãßBȍőnCoffinStoreʸᴰ { + + void BȍőnJmxInit(K key); + + default GuageCounterᴶᴹˣ BȍőnJmxInitGuageCounter(K key, String name) { + return BȍőnJmxInitGuageCounter(key, name, BãßBȍőnConstantsʸᴰ.STR_EMPTY); + } + + default GuageCounterᴶᴹˣ BȍőnJmxInitGuageCounter(K key, String name, String description) { + GuageCounterᴶᴹˣ result = new GuageCounterᴶᴹˣ(name, description); + GET_BBC().GET_MAP_OBJ(key).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(K key, String name, String description) { + StringAttributeᴶᴹˣ result = new StringAttributeᴶᴹˣ(name, description); + GET_BBC().GET_MAP_OBJ(key).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(K key, String name, String description) { + BooleanAttributeᴶᴹˣ result = new BooleanAttributeᴶᴹˣ(name, description); + GET_BBC().GET_MAP_OBJ(key).put(name, result); + return result; + } +} diff --git a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/DefaultEnumInstanceᴶᴹˣ.java b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/DefaultEnumInstanceᴶᴹˣ.java new file mode 100644 index 00000000..0e995914 --- /dev/null +++ b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/DefaultEnumInstanceᴶᴹˣ.java @@ -0,0 +1,39 @@ +package love.distributedrebirth.bassboonyd.jmx; + +import java.lang.management.ManagementFactory; + +import javax.management.MBeanServer; +import javax.management.ObjectName; + +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ȍőnConstantsʸᴰ; +import love.distributedrebirth.bassboonyd.DefaultEnumInstanceʸᴰ; + +@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") +@BãßBȍőnAnnotationInfoʸᴰ(required = {BãßBȍőnClassInfoʸᴰ.class, BãßBȍőnAuthorInfoʸᴰ.class}) +public interface DefaultEnumInstanceᴶᴹˣ extends DefaultEnumBaseᴶᴹˣ,DefaultEnumInstanceʸᴰ { + + @SuppressWarnings("unchecked") + default void BȍőnJmxInit(K key) { + BãßBȍőnCoffinOpenʸᴰ 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ᴶᴹˣ(GET_BBC().GET_MAP_OBJ(key)), objectName1); + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} diff --git a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/DefaultEnumSetᴶᴹˣ.java b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/DefaultEnumSetᴶᴹˣ.java new file mode 100644 index 00000000..a981fade --- /dev/null +++ b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/DefaultEnumSetᴶᴹˣ.java @@ -0,0 +1,43 @@ +package love.distributedrebirth.bassboonyd.jmx; + +import java.lang.management.ManagementFactory; + +import javax.management.MBeanServer; +import javax.management.ObjectName; + +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ȍőnConstantsʸᴰ; +import love.distributedrebirth.bassboonyd.DefaultEnumSetʸᴰ; + +@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") +@BãßBȍőnAnnotationInfoʸᴰ(required = {BãßBȍőnClassInfoʸᴰ.class, BãßBȍőnAuthorInfoʸᴰ.class}) +public interface DefaultEnumSetᴶᴹˣ extends DefaultEnumBaseᴶᴹˣ,DefaultEnumSetʸᴰ { + + @SuppressWarnings("unchecked") + default void BȍőnJmxInit(K key) { + BãßBȍőnCoffinOpenʸᴰ 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ᴶᴹˣ(GET_BBC().GET_MAP_OBJ(key)), objectName1); + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} diff --git a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/GuageCounterᴶᴹˣ.java b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/GuageCounterᴶᴹˣ.java index 6ec575b1..10cf1433 100644 --- a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/GuageCounterᴶᴹˣ.java +++ b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/GuageCounterᴶᴹˣ.java @@ -15,6 +15,10 @@ public class GuageCounterᴶᴹˣ extends AbstractMBeanAttributeᴶᴹˣ { counter++; } + public void increment(long value) { + counter = counter + value; + } + public Object getValue() { return Long.valueOf(counter); } diff --git a/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/MBeanDynamicᴶᴹˣ.java b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/MBeanDynamicᴶᴹˣ.java new file mode 100644 index 00000000..88a30756 --- /dev/null +++ b/demo4d-bassboonyd/src/main/love/distributedrebirth/bassboonyd/jmx/MBeanDynamicᴶᴹˣ.java @@ -0,0 +1,65 @@ +package love.distributedrebirth.bassboonyd.jmx; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import javax.management.Attribute; +import javax.management.AttributeList; +import javax.management.AttributeNotFoundException; +import javax.management.DynamicMBean; +import javax.management.InvalidAttributeValueException; +import javax.management.MBeanAttributeInfo; +import javax.management.MBeanException; +import javax.management.MBeanInfo; +import javax.management.MBeanNotificationInfo; +import javax.management.ReflectionException; + +public class MBeanDynamicᴶᴹˣ implements DynamicMBean { + + private final Map guages; + + public MBeanDynamicᴶᴹˣ(Map guages) { + this.guages = guages; + } + + @Override + public MBeanInfo getMBeanInfo() { + MBeanAttributeInfo[] dAttributes = new MBeanAttributeInfo[guages.keySet().size()]; + List keySet = guages.keySet().stream().collect(Collectors.toList()); + for (int i = 0; i < dAttributes.length; i++) { + String name = keySet.get(i); + MBeanAttributeᴶᴹˣ gc = MBeanAttributeᴶᴹˣ.class.cast(guages.get(name)); + dAttributes[i] = new MBeanAttributeInfo(gc.getName(), gc.BãßValueType().getSimpleName(), + gc.getDescription(), true, false, false); + } + return new MBeanInfo(this.getClass().getName(), null, dAttributes, null, null, + new MBeanNotificationInfo[0]); + } + + @Override + public Object getAttribute(String name) throws AttributeNotFoundException, MBeanException, ReflectionException { + MBeanAttributeᴶᴹˣ gc = MBeanAttributeᴶᴹˣ.class.cast(guages.get(name)); + return gc.getValue(); + } + + @Override + public AttributeList getAttributes(String[] arg0) { + return null; + } + + @Override + public Object invoke(String arg0, Object[] arg1, String[] arg2) throws MBeanException, ReflectionException { + return null; + } + + @Override + public void setAttribute(Attribute arg0) + throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException { + } + + @Override + public AttributeList setAttributes(AttributeList arg0) { + return null; + } +} \ No newline at end of file diff --git a/demo4d-gdxapp/src/main/love/distributedrebirth/gdxapp/Demo4DMain.java b/demo4d-gdxapp/src/main/love/distributedrebirth/gdxapp/Demo4DMain.java index 656a3529..56871633 100644 --- a/demo4d-gdxapp/src/main/love/distributedrebirth/gdxapp/Demo4DMain.java +++ b/demo4d-gdxapp/src/main/love/distributedrebirth/gdxapp/Demo4DMain.java @@ -31,6 +31,8 @@ import love.distributedrebirth.gdxapp.screen.ScreenIntroMission; import love.distributedrebirth.gdxapp.screen.ScreenLoading; import love.distributedrebirth.gdxapp.screen.ScreenUnicode4D; import love.distributedrebirth.gdxapp.screen.SystemBaseGlyphRenderer; +import love.distributedrebirth.numberxd.base2t.Base2Terminator; +import love.distributedrebirth.numberxd.base2t.glyph.BaseGlyphSet; import love.distributedrebirth.numberxd.base2t.part.warp.TOSWarpCore; import love.distributedrebirth.numberxd.base2t.part.warp.TOSWarpCoreDriver; import love.distributedrebirth.numberxd.base2t.part.warp.WaterBucket; @@ -94,6 +96,10 @@ public class Demo4DMain extends Game { System.out.println("warpcore-nolock: requested"); } + // ref to init, remove later... + BaseGlyphSet.values()[0].BãßAuthorCopyright(); + Base2Terminator.INSTANCE.BãßAuthorCopyright(); + if (args.contains("full-screen")) { System.out.println("full-screen: requested"); Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode()); diff --git a/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/Base2Terminator.java b/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/Base2Terminator.java index b691d7df..8e5e210f 100644 --- a/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/Base2Terminator.java +++ b/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/Base2Terminator.java @@ -8,19 +8,21 @@ import java.util.Iterator; import java.util.List; 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ȍőnCoffinʸᴰ; -import love.distributedrebirth.bassboonyd.BãßBȍőnEnumInstanceʸᴰ; -import love.distributedrebirth.numberxd.base2t.glyph.BãßBȍőnGlyphSetKeyʸᴰ; +import love.distributedrebirth.bassboonyd.BãßBȍőnPackageInfoʸᴰ; +import love.distributedrebirth.bassboonyd.jmx.DefaultEnumInstanceᴶᴹˣ; +import love.distributedrebirth.bassboonyd.jmx.GuageCounterᴶᴹˣ; +import love.distributedrebirth.bassboonyd.jmx.MBeanStoreKeyᴶᴹˣ; import love.distributedrebirth.numberxd.base2t.part.T08PartOctal; import love.distributedrebirth.numberxd.base2t.type.V072Tong; import love.distributedrebirth.numberxd.base2t.type.V144Tocta; -/** - * Terminate from and to classical bytes. - */ @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") -public enum Base2Terminator implements BãßBȍőnEnumInstanceʸᴰ { +@BãßBȍőnClassInfoʸᴰ(name = "Base2Terminator", purpose = "Terminate from and to classical bytes.") +@BãßBȍőnPackageInfoʸᴰ(name = "love.distributedrebirth.numberxd") +public enum Base2Terminator implements DefaultEnumInstanceᴶᴹˣ { INSTANCE; @@ -29,11 +31,28 @@ public enum Base2Terminator implements BãßBȍőnEnumInstanceʸᴰ BBC = BãßBȍőnCoffinOpenʸᴰ.newInstance(); - public BãßBȍőnCoffinʸᴰ GET_BBC() { return BBC; } + private final GuageCounterᴶᴹˣ readV072TongTypeReads; + private final GuageCounterᴶᴹˣ readV072TongByteWrites; + private final GuageCounterᴶᴹˣ readV144ToctaTypeReads; + private final GuageCounterᴶᴹˣ readV144ToctaByteWrites; + private final GuageCounterᴶᴹˣ writeV072TongByteReads; + private final GuageCounterᴶᴹˣ writeV072TongTypeWrites; + private final GuageCounterᴶᴹˣ writeV144ToctaBytesReads; + private final GuageCounterᴶᴹˣ writeV144ToctaTypeWrites; + private final BãßBȍőnCoffinOpenʸᴰ BBC = BãßBȍőnCoffinOpenʸᴰ.newInstance(); + public BãßBȍőnCoffinʸᴰ GET_BBC() { return BBC; } private Base2Terminator() { BBC.BOON_INIT(this); + BȍőnJmxInit(MBeanStoreKeyᴶᴹˣ.JMX); + readV072TongTypeReads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "readV072TongTypeReads"); + readV072TongByteWrites = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "readV072TongByteWrites"); + readV144ToctaTypeReads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "readV144ToctaTypeReads"); + readV144ToctaByteWrites = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "readV144ToctaByteWrites"); + writeV072TongByteReads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "writeV072TongByteReads"); + writeV072TongTypeWrites = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "writeV072TongTypeWrites"); + writeV144ToctaBytesReads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "writeV144ToctaBytesReads"); + writeV144ToctaTypeWrites = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "writeV144ToctaTypeWrites"); } public int Bãß2ReadTong(InputStream input, List output) throws IOException { @@ -49,6 +68,8 @@ public enum Base2Terminator implements BãßBȍőnEnumInstanceʸᴰ data, OutputStream output) throws IOException { - return Bãß2Write(data, output); + int totalBytes = Bãß2Write(data, output); + writeV072TongByteReads.increment(totalBytes); + writeV072TongTypeWrites.increment(data.size()); + return totalBytes; + } public int Bãß2WriteTocta(List data, OutputStream output) throws IOException { - return Bãß2Write(data, output); + int totalBytes = Bãß2Write(data, output); + writeV144ToctaBytesReads.increment(totalBytes); + writeV144ToctaTypeWrites.increment(data.size()); + return totalBytes; } private > int Bãß2Write(List data, OutputStream output) throws IOException { diff --git a/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/BasePartFactory.java b/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/BasePartFactory.java index 928c7215..421c7fc3 100644 --- a/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/BasePartFactory.java +++ b/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/BasePartFactory.java @@ -1,7 +1,9 @@ package love.distributedrebirth.numberxd.base2t; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; -import love.distributedrebirth.bassboonyd.BãßBȍőnEnumInstanceʸᴰ; +import love.distributedrebirth.bassboonyd.jmx.DefaultEnumInstanceᴶᴹˣ; +import love.distributedrebirth.bassboonyd.jmx.GuageCounterᴶᴹˣ; +import love.distributedrebirth.bassboonyd.jmx.MBeanStoreKeyᴶᴹˣ; import love.distributedrebirth.numberxd.base2t.part.BãßBȍőnPartʸᴰ; import love.distributedrebirth.numberxd.base2t.part.T02PartBinary; import love.distributedrebirth.numberxd.base2t.part.T03PartTrit; @@ -18,14 +20,53 @@ import love.distributedrebirth.numberxd.base2t.part.T16PartHex; import love.distributedrebirth.numberxd.base2t.part.T20PartScore; import love.distributedrebirth.numberxd.base2t.part.T60PartSexagesimal; import love.distributedrebirth.bassboonyd.BãßBȍőnClassInfoʸᴰ; +import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinOpenʸᴰ; +import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinʸᴰ; +import love.distributedrebirth.bassboonyd.BãßBȍőnPackageInfoʸᴰ; @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnClassInfoʸᴰ(name = "BasePartFactory", purpose = "Factory to access the bases.") -public enum BasePartFactory implements BãßBȍőnEnumInstanceʸᴰ { +@BãßBȍőnPackageInfoʸᴰ(name = "love.distributedrebirth.numberxd") +public enum BasePartFactory implements DefaultEnumInstanceᴶᴹˣ { INSTANCE; + private final GuageCounterᴶᴹˣ baseT02Reads; + private final GuageCounterᴶᴹˣ baseT03Reads; + private final GuageCounterᴶᴹˣ baseT04Reads; + private final GuageCounterᴶᴹˣ baseT05Reads; + private final GuageCounterᴶᴹˣ baseT06Reads; + private final GuageCounterᴶᴹˣ baseT07Reads; + private final GuageCounterᴶᴹˣ baseT08Reads; + private final GuageCounterᴶᴹˣ baseT09Reads; + private final GuageCounterᴶᴹˣ baseT10Reads; + private final GuageCounterᴶᴹˣ baseT11Reads; + private final GuageCounterᴶᴹˣ baseT12Reads; + private final GuageCounterᴶᴹˣ baseT16Reads; + private final GuageCounterᴶᴹˣ baseT20Reads; + private final GuageCounterᴶᴹˣ baseT60Reads; private static final int[] SUPPORTED_BASES = {2,3,4,5,6,7,8,9,10,11,12,16,20,60}; + private final BãßBȍőnCoffinOpenʸᴰ BBC = BãßBȍőnCoffinOpenʸᴰ.newInstance(); + public BãßBȍőnCoffinʸᴰ GET_BBC() { return BBC; } + + private BasePartFactory() { + BBC.BOON_INIT(this); + BȍőnJmxInit(MBeanStoreKeyᴶᴹˣ.JMX); + baseT02Reads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "baseT02Reads"); + baseT03Reads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "baseT03Reads"); + baseT04Reads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "baseT04Reads"); + baseT05Reads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "baseT05Reads"); + baseT06Reads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "baseT06Reads"); + baseT07Reads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "baseT07Reads"); + baseT08Reads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "baseT08Reads"); + baseT09Reads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "baseT09Reads"); + baseT10Reads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "baseT10Reads"); + baseT11Reads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "baseT11Reads"); + baseT12Reads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "baseT12Reads"); + baseT16Reads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "baseT16Reads"); + baseT20Reads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "baseT20Reads"); + baseT60Reads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "baseT60Reads"); + } public int[] BãßBases() { return SUPPORTED_BASES; @@ -34,32 +75,46 @@ public enum BasePartFactory implements BãßBȍőnEnumInstanceʸᴰ[] BãßBuildPartsByBase(int base) { switch (base) { case 2: + baseT02Reads.increment(); return T02PartBinary.values(); case 3: + baseT03Reads.increment(); return T03PartTrit.values(); case 4: + baseT04Reads.increment(); return T04PartQuad.values(); case 5: + baseT05Reads.increment(); return T05PartPental.values(); case 6: + baseT06Reads.increment(); return T06PartSeximal.values(); case 7: + baseT07Reads.increment(); return T07PartPlanIt.values(); case 8: + baseT08Reads.increment(); return T08PartOctal.values(); case 9: + baseT09Reads.increment(); return T09PartNonary.values(); case 10: + baseT10Reads.increment(); return T10PartDecimal.values(); case 11: + baseT11Reads.increment(); return T11PartUndecimal.values(); case 12: + baseT12Reads.increment(); return T12PartUncial.values(); case 16: + baseT16Reads.increment(); return T16PartHex.values(); case 20: + baseT20Reads.increment(); return T20PartScore.values(); case 60: + baseT60Reads.increment(); return T60PartSexagesimal.values(); default: throw new IllegalArgumentException("Unsupported base: "+base); diff --git a/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/glyph/BaseGlyphSet.java b/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/glyph/BaseGlyphSet.java index 76c4666b..16085485 100644 --- a/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/glyph/BaseGlyphSet.java +++ b/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/glyph/BaseGlyphSet.java @@ -4,11 +4,13 @@ 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ȍőnCoffinʸᴰ; +import love.distributedrebirth.bassboonyd.BãßBȍőnPackageInfoʸᴰ; import love.distributedrebirth.numberxd.base2t.part.T10PartDecimal; import love.distributedrebirth.numberxd.base2t.part.T16PartHex; @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnClassInfoʸᴰ(name = "BaseGlyphSet", purpose = "The encoded base scripts.") +@BãßBȍőnPackageInfoʸᴰ(name = "love.distributedrebirth.numberxd") public enum BaseGlyphSet implements BãßBȍőnGlyphSetʸᴰ { // TODO: ImGui add font for SINHALA @@ -86,5 +88,6 @@ public enum BaseGlyphSet implements BãßBȍőnGlyphSetʸᴰ { BBC.PUT_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.HEXIMALS, hex); BBC.PUT_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.GEMATRIA, gematria); BBC.BOON_INIT(this); + this.BȍőnJmxInit(BãßBȍőnGlyphSetKeyʸᴰ.JMX); } } diff --git a/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/glyph/BãßBȍőnGlyphSetKeyʸᴰ.java b/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/glyph/BãßBȍőnGlyphSetKeyʸᴰ.java index fe37a36d..549d1460 100644 --- a/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/glyph/BãßBȍőnGlyphSetKeyʸᴰ.java +++ b/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/glyph/BãßBȍőnGlyphSetKeyʸᴰ.java @@ -6,6 +6,8 @@ import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinStoreKeyʸᴰ; @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") public enum BãßBȍőnGlyphSetKeyʸᴰ implements BãßBȍőnCoffinStoreKeyʸᴰ { + JMX, + NUMBERS, GEMATRIA, HEXIMALS, diff --git a/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/glyph/BãßBȍőnGlyphSetʸᴰ.java b/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/glyph/BãßBȍőnGlyphSetʸᴰ.java index 617ffa08..0158a1e5 100644 --- a/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/glyph/BãßBȍőnGlyphSetʸᴰ.java +++ b/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/glyph/BãßBȍőnGlyphSetʸᴰ.java @@ -2,10 +2,11 @@ package love.distributedrebirth.numberxd.base2t.glyph; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinStoreʸᴰ; -import love.distributedrebirth.bassboonyd.BãßBȍőnEnumSetʸᴰ; +import love.distributedrebirth.bassboonyd.DefaultEnumSetʸᴰ; +import love.distributedrebirth.bassboonyd.jmx.DefaultEnumSetᴶᴹˣ; @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") -public interface BãßBȍőnGlyphSetʸᴰ> extends BãßBȍőnEnumSetʸᴰ, BãßBȍőnCoffinStoreʸᴰ { +public interface BãßBȍőnGlyphSetʸᴰ> extends DefaultEnumSetᴶᴹˣ { default BaseGlyphSetNumber BȍőnGlyphSetNumber10() { return GET_BBC().GET_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.NUMBERS, BaseGlyphSetNumber.class); diff --git a/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/part/BãßBȍőnPartʸᴰ.java b/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/part/BãßBȍőnPartʸᴰ.java index dd52b812..09c309db 100644 --- a/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/part/BãßBȍőnPartʸᴰ.java +++ b/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/part/BãßBȍőnPartʸᴰ.java @@ -6,12 +6,12 @@ import java.util.stream.Collectors; import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinOpenʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnCoffinStoreʸᴰ; -import love.distributedrebirth.bassboonyd.BãßBȍőnEnumSetʸᴰ; +import love.distributedrebirth.bassboonyd.DefaultEnumSetʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnInitMethodʸᴰ; import love.distributedrebirth.numberxd.base2t.glyph.BaseGlyphSet; @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") -public interface BãßBȍőnPartʸᴰ> extends BãßBȍőnEnumSetʸᴰ, BãßBȍőnCoffinStoreʸᴰ { +public interface BãßBȍőnPartʸᴰ> extends DefaultEnumSetʸᴰ, BãßBȍőnCoffinStoreʸᴰ { @BãßBȍőnInitMethodʸᴰ default void initMapTone(BãßBȍőnCoffinOpenʸᴰ BBC) { diff --git a/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/part/warp/TOSWarpCore.java b/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/part/warp/TOSWarpCore.java index 0289db69..d18e560f 100644 --- a/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/part/warp/TOSWarpCore.java +++ b/demo4d-numberxd/src/main/love/distributedrebirth/numberxd/base2t/part/warp/TOSWarpCore.java @@ -7,11 +7,10 @@ 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ȍőnCoffinʸᴰ; -import love.distributedrebirth.bassboonyd.BãßBȍőnEnumInstanceʸᴰ; import love.distributedrebirth.bassboonyd.BãßBȍőnPackageInfoʸᴰ; import love.distributedrebirth.bassboonyd.jmx.BooleanAttributeᴶᴹˣ; import love.distributedrebirth.bassboonyd.jmx.MBeanStoreKeyᴶᴹˣ; -import love.distributedrebirth.bassboonyd.jmx.BãßBȍőnEnumJmxʸᴰ; +import love.distributedrebirth.bassboonyd.jmx.DefaultEnumInstanceᴶᴹˣ; import love.distributedrebirth.bassboonyd.jmx.GuageCounterᴶᴹˣ; import love.distributedrebirth.bassboonyd.jmx.StringAttributeᴶᴹˣ; import love.distributedrebirth.numberxd.base2t.BasePartFactory; @@ -21,18 +20,17 @@ import love.distributedrebirth.numberxd.base2t.part.BãßBȍőnPartʸᴰ; @BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天") @BãßBȍőnClassInfoʸᴰ(name = "TOSWarpCore", purpose = "The warpcore writer and armor manager.") @BãßBȍőnPackageInfoʸᴰ(name = "love.distributedrebirth.numberxd") -public enum TOSWarpCore implements BãßBȍőnEnumInstanceʸᴰ,BãßBȍőnEnumJmxʸᴰ { +public enum TOSWarpCore implements DefaultEnumInstanceᴶᴹˣ { INSTANCE; - private final BãßBȍőnCoffinOpenʸᴰ BBC = BãßBȍőnCoffinOpenʸᴰ.newInstance(); - public BãßBȍőnCoffinʸᴰ GET_BBC() { return BBC; } - private final BooleanAttributeᴶᴹˣ armedWarpCipherLock; private final StringAttributeᴶᴹˣ armedWarpWaterName; private final StringAttributeᴶᴹˣ armedWarpWaterDesc; private final GuageCounterᴶᴹˣ warpCoreReads; private final GuageCounterᴶᴹˣ warpCoreWrites; + private final BãßBȍőnCoffinOpenʸᴰ BBC = BãßBȍőnCoffinOpenʸᴰ.newInstance(); + public BãßBȍőnCoffinʸᴰ GET_BBC() { return BBC; } private TOSWarpCore() { BBC.BOON_INIT(this);