Second version of JMX
This commit is contained in:
parent
a69315adc0
commit
a3f58468f5
|
@ -19,7 +19,7 @@ public interface BãßBȍőnCoffinOpenʸᴰ<T extends BãßBȍőnCoffinStoreKey
|
|||
PUT_OBJ(key, new HashMap<>());
|
||||
}
|
||||
|
||||
default void INIT_BOON(Object boon) {
|
||||
default void BOON_INIT(Object boon) {
|
||||
try {
|
||||
for (Method m:boon.getClass().getMethods()) {
|
||||
if (m.isAnnotationPresent(BãßBȍőnInitMethodʸᴰ.class)) {
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
/**
|
||||
* Only use when no other keys are needed on instance enum.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public enum BãßBȍőnEnumJmxKeyʸᴰ implements BãßBȍőnCoffinStoreKeyʸᴰ {
|
||||
JMX,
|
||||
;
|
||||
}
|
|
@ -2,7 +2,7 @@ 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ʸᴰ<T> {
|
||||
public interface BãßBȍőnEnumʸᴰ<T> extends DefaultAuthorInfoʸᴰ,DefaultClassInfoʸᴰ,DefaultPackageInfoʸᴰ {
|
||||
|
||||
String name();
|
||||
|
||||
|
@ -23,21 +23,6 @@ public interface BãßBȍőnEnumʸᴰ<T> {
|
|||
}
|
||||
}
|
||||
|
||||
default String BãßClassNaam() {
|
||||
return getClass().getAnnotation(BãßBȍőnClassInfoʸᴰ.class).name();
|
||||
}
|
||||
|
||||
default String BãßClassPurpose() {
|
||||
return getClass().getAnnotation(BãßBȍőnClassInfoʸᴰ.class).purpose();
|
||||
}
|
||||
|
||||
default String BãßAuthorNaam() {
|
||||
return getClass().getAnnotation(BãßBȍőnAuthorInfoʸᴰ.class).name();
|
||||
}
|
||||
|
||||
default String BãßAuthorCopyright() {
|
||||
return getClass().getAnnotation(BãßBȍőnAuthorInfoʸᴰ.class).copyright();
|
||||
}
|
||||
|
||||
default String BȍőnNaamI18N() {
|
||||
return BãßClassNaam() + BãßBȍőnConstantsʸᴰ.STR_DOT + name();
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target({ElementType.TYPE})
|
||||
public @interface BãßBȍőnPackageInfoʸᴰ {
|
||||
|
||||
String name();
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", 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,14 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", 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();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", 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,24 @@
|
|||
package love.distributedrebirth.bassboonyd.jmx;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
abstract public class AbstractMBeanAttributeᴶᴹˣ implements MBeanAttributeᴶᴹˣ {
|
||||
private final String name;
|
||||
private final String description;
|
||||
|
||||
public AbstractMBeanAttributeᴶᴹˣ(String name, String description) {
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package love.distributedrebirth.bassboonyd.jmx;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnMBeanAttributeTypeʸᴰ(Boolean.class)
|
||||
public class BooleanAttributeᴶᴹˣ extends AbstractMBeanAttributeᴶᴹˣ {
|
||||
private Boolean value;
|
||||
|
||||
public BooleanAttributeᴶᴹˣ(String name, String description) {
|
||||
super(name, description);
|
||||
}
|
||||
|
||||
public void setValueBoolean(Boolean value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public Boolean getValueBoolean() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public Object getValue() {
|
||||
return value;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
package love.distributedrebirth.bassboonyd.jmx;
|
||||
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.util.List;
|
||||
|
@ -18,58 +18,51 @@ 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ʸᴰ<T,K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends BãßBȍőnEnumʸᴰ<T>,BãßBȍőnCoffinStoreʸᴰ<K> {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default void initJmx(K key) {
|
||||
default void BȍőnJmxInit(K key) {
|
||||
BãßBȍőnCoffinOpenʸᴰ<K> coffin = BãßBȍőnCoffinOpenʸᴰ.class.cast(GET_BBC());
|
||||
coffin.PUT_MAP(key);
|
||||
try {
|
||||
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
|
||||
ObjectName objectName1 = new ObjectName(BȍőnNaamI18N() + ":name=counters");
|
||||
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ȍőnInitGuage(K key, String name) {
|
||||
return BȍőnInitGuage(key,name,"");
|
||||
default GuageCounterᴶᴹˣ BȍőnJmxInitGuageCounter(K key, String name) {
|
||||
return BȍőnJmxInitGuageCounter(key,name,"");
|
||||
}
|
||||
|
||||
default GuageCounter BȍőnInitGuage(K key, String name, String description) {
|
||||
GuageCounter result = new GuageCounter(name, description);
|
||||
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;
|
||||
}
|
||||
|
||||
public class GuageCounter {
|
||||
private volatile long counter;
|
||||
private final String name;
|
||||
private final String description;
|
||||
|
||||
public GuageCounter(String name, String description) {
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public void increment() {
|
||||
counter++;
|
||||
}
|
||||
|
||||
public long getCounter() {
|
||||
return counter;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
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 {
|
||||
|
@ -86,8 +79,8 @@ public interface BãßBȍőnEnumJmxʸᴰ<T,K extends BãßBȍőnCoffinStoreKeyʸ
|
|||
List<String> keySet = guages.keySet().stream().collect(Collectors.toList());
|
||||
for (int i = 0; i < dAttributes.length; i++) {
|
||||
String name = keySet.get(i);
|
||||
GuageCounter gc = GuageCounter.class.cast(guages.get(name));
|
||||
dAttributes[i] = new MBeanAttributeInfo(gc.getName(), Long.class.getSimpleName(),
|
||||
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,
|
||||
|
@ -96,8 +89,8 @@ public interface BãßBȍőnEnumJmxʸᴰ<T,K extends BãßBȍőnCoffinStoreKeyʸ
|
|||
|
||||
@Override
|
||||
public Object getAttribute(String name) throws AttributeNotFoundException, MBeanException, ReflectionException {
|
||||
GuageCounter gc = GuageCounter.class.cast(guages.get(name));
|
||||
return gc.getCounter();
|
||||
MBeanAttributeᴶᴹˣ gc = MBeanAttributeᴶᴹˣ.class.cast(guages.get(name));
|
||||
return gc.getValue();
|
||||
}
|
||||
|
||||
@Override
|
|
@ -0,0 +1,16 @@
|
|||
package love.distributedrebirth.bassboonyd.jmx;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target({ElementType.TYPE})
|
||||
public @interface BãßBȍőnMBeanAttributeTypeʸᴰ {
|
||||
|
||||
Class<?> value();
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
package love.distributedrebirth.bassboonyd.jmx;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnMBeanAttributeTypeʸᴰ(Long.class)
|
||||
public class GuageCounterᴶᴹˣ extends AbstractMBeanAttributeᴶᴹˣ {
|
||||
private volatile long counter;
|
||||
|
||||
public GuageCounterᴶᴹˣ(String name, String description) {
|
||||
super(name, description);
|
||||
}
|
||||
|
||||
public void increment() {
|
||||
counter++;
|
||||
}
|
||||
|
||||
public Object getValue() {
|
||||
return Long.valueOf(counter);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package love.distributedrebirth.bassboonyd.jmx;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface MBeanAttributeᴶᴹˣ {
|
||||
|
||||
default Class<?> BãßValueType() {
|
||||
return getClass().getAnnotation(BãßBȍőnMBeanAttributeTypeʸᴰ.class).value();
|
||||
}
|
||||
|
||||
Object getValue();
|
||||
|
||||
String getName();
|
||||
|
||||
String getDescription();
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
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 = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public enum MBeanStoreKeyᴶᴹˣ implements BãßBȍőnCoffinStoreKeyʸᴰ {
|
||||
JMX,
|
||||
;
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package love.distributedrebirth.bassboonyd.jmx;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnMBeanAttributeTypeʸᴰ(String.class)
|
||||
public class StringAttributeᴶᴹˣ extends AbstractMBeanAttributeᴶᴹˣ {
|
||||
private String value;
|
||||
|
||||
public StringAttributeᴶᴹˣ(String name, String description) {
|
||||
super(name, description);
|
||||
}
|
||||
|
||||
public void setValueString(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getValueString() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public Object getValue() {
|
||||
return value;
|
||||
}
|
||||
}
|
|
@ -33,7 +33,7 @@ public enum Base2Terminator implements BãßBȍőnEnumInstanceʸᴰ<Base2Termina
|
|||
public BãßBȍőnCoffinʸᴰ<BãßBȍőnGlyphSetKeyʸᴰ> GET_BBC() { return BBC; }
|
||||
|
||||
private Base2Terminator() {
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
|
||||
public int Bãß2ReadTong(InputStream input, List<V072Tong> output) throws IOException {
|
||||
|
|
|
@ -85,6 +85,6 @@ public enum BaseGlyphSet implements BãßBȍőnGlyphSetʸᴰ<BaseGlyphSet> {
|
|||
BBC.PUT_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.NUMBERS, numbers);
|
||||
BBC.PUT_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.HEXIMALS, hex);
|
||||
BBC.PUT_OBJ(BãßBȍőnGlyphSetKeyʸᴰ.GEMATRIA, gematria);
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,6 +21,6 @@ public enum T02PartBinary implements BãßBȍőnPartʸᴰ<T02PartBinary> {
|
|||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.DIAL_TONE, dialTone);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_KEY, chinaKey);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_VALUE, chinaValue);
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,6 @@ public enum T03PartTrit implements BãßBȍőnPartʸᴰ<T03PartTrit> {
|
|||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.DIAL_TONE, dialTone);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_KEY, chinaKey);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_VALUE, chinaValue);
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ public enum T04PartQuad implements BãßBȍőnPartAlt1ʸᴰ<T04PartQuad> {
|
|||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_KEY, chinaKey);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_VALUE, chinaValue);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.ALT_1_VALUE, alt1Value);
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
|
||||
public T02PartBinary splitPartBinary(T02PartBinary part) {
|
||||
|
|
|
@ -28,6 +28,6 @@ public enum T05PartPental implements BãßBȍőnPartAlt2ʸᴰ<T05PartPental> {
|
|||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_VALUE, chinaValue);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.ALT_1_VALUE, alt1Value);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.ALT_2_VALUE, alt2Value);
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@ public enum T06PartSeximal implements BãßBȍőnPartAlt1ʸᴰ<T06PartSeximal> {
|
|||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_KEY, chinaKey);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_VALUE, chinaValue);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.ALT_1_VALUE, alt1Value);
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
|
||||
public T02PartBinary splitPartBinary() {
|
||||
|
|
|
@ -28,6 +28,6 @@ public enum T07PartPlanIt implements BãßBȍőnPartAlt1ʸᴰ<T07PartPlanIt> {
|
|||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_KEY, chinaKey);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_VALUE, chinaValue);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.ALT_1_VALUE, alt1Value);
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ public enum T08PartOctal implements BãßBȍőnPartʸᴰ<T08PartOctal>,BãßBȍ
|
|||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_KEY, chinaKey);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_VALUE, chinaValue);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.SHIFT_BITS, Integer.valueOf(shiftBits));
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
|
||||
public static T08PartOctal indexOf(T08PartOctal group, int value) {
|
||||
|
|
|
@ -28,6 +28,6 @@ public enum T09PartNonary implements BãßBȍőnPartʸᴰ<T09PartNonary> {
|
|||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.DIAL_TONE, dialTone);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_KEY, chinaKey);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_VALUE, chinaValue);
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,6 +33,6 @@ public enum T10PartDecimal implements BãßBȍőnPartAlt2ʸᴰ<T10PartDecimal> {
|
|||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_VALUE, chinaValue);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.ALT_1_VALUE, alt1Value);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.ALT_2_VALUE, alt2Value);
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,6 @@ public enum T11PartUndecimal implements BãßBȍőnPartAlt1ʸᴰ<T11PartUndecima
|
|||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_KEY, chinaKey);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_VALUE, chinaValue);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.ALT_1_VALUE, alt1Value);
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,6 +33,6 @@ public enum T12PartUncial implements BãßBȍőnPartAlt1ʸᴰ<T12PartUncial> {
|
|||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_KEY, chinaKey);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_VALUE, chinaValue);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.ALT_1_VALUE, alt1Value);
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ public enum T16PartHex implements BãßBȍőnPartAlt1ʸᴰ<T16PartHex> {
|
|||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_KEY, chinaKey);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_VALUE, chinaValue);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.ALT_1_VALUE, alt1Value);
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
|
||||
public T02PartBinary splitPartBinary(T04PartQuad part) {
|
||||
|
|
|
@ -55,7 +55,7 @@ public enum T20PartScore implements BãßBȍőnPartAlt4ʸᴰ<T20PartScore> {
|
|||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.ALT_2_VALUE, alt2Value);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.ALT_3_VALUE, alt3Value);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.ALT_4_VALUE, alt4Value);
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
|
||||
public T20PartScore BãßValueOfOpenLC(String openLCKey) {
|
||||
|
|
|
@ -79,6 +79,6 @@ public enum T60PartSexagesimal implements BãßBȍőnPartʸᴰ<T60PartSexagesima
|
|||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.DIAL_TONE, dialTone);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_KEY, chinaKey);
|
||||
BBC.PUT_OBJ(BãßBȍőnPartKeyʸᴰ.CHINA_VALUE, chinaValue);
|
||||
BBC.INIT_BOON(this);
|
||||
BBC.BOON_INIT(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,35 +8,47 @@ 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ȍőnEnumJmxKeyʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnEnumJmxʸᴰ;
|
||||
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.GuageCounterᴶᴹˣ;
|
||||
import love.distributedrebirth.bassboonyd.jmx.StringAttributeᴶᴹˣ;
|
||||
import love.distributedrebirth.numberxd.base2t.BasePartFactory;
|
||||
import love.distributedrebirth.numberxd.base2t.part.BãßBȍőnPartKeyʸᴰ;
|
||||
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.")
|
||||
public enum TOSWarpCore implements BãßBȍőnEnumInstanceʸᴰ<TOSWarpCore>,BãßBȍőnEnumJmxʸᴰ<TOSWarpCore,BãßBȍőnEnumJmxKeyʸᴰ> {
|
||||
@BãßBȍőnPackageInfoʸᴰ(name = "love.distributedrebirth.numberxd")
|
||||
public enum TOSWarpCore implements BãßBȍőnEnumInstanceʸᴰ<TOSWarpCore>,BãßBȍőnEnumJmxʸᴰ<TOSWarpCore,MBeanStoreKeyᴶᴹˣ> {
|
||||
|
||||
INSTANCE;
|
||||
|
||||
private final BãßBȍőnCoffinOpenʸᴰ<BãßBȍőnEnumJmxKeyʸᴰ> BBC = BãßBȍőnCoffinOpenʸᴰ.newInstance();
|
||||
public BãßBȍőnCoffinʸᴰ<BãßBȍőnEnumJmxKeyʸᴰ> GET_BBC() { return BBC; }
|
||||
private final BãßBȍőnCoffinOpenʸᴰ<MBeanStoreKeyᴶᴹˣ> BBC = BãßBȍőnCoffinOpenʸᴰ.newInstance();
|
||||
public BãßBȍőnCoffinʸᴰ<MBeanStoreKeyᴶᴹˣ> GET_BBC() { return BBC; }
|
||||
|
||||
private String armedWarpCipherName;
|
||||
private String armedWarpCipherDescription;
|
||||
|
||||
private final GuageCounter readCounter;
|
||||
private final GuageCounter writeCounter;
|
||||
private final BooleanAttributeᴶᴹˣ armedWarpCipherLock;
|
||||
private final StringAttributeᴶᴹˣ armedWarpWaterName;
|
||||
private final StringAttributeᴶᴹˣ armedWarpWaterDesc;
|
||||
private final GuageCounterᴶᴹˣ warpCoreReads;
|
||||
private final GuageCounterᴶᴹˣ warpCoreWrites;
|
||||
|
||||
private TOSWarpCore() {
|
||||
BBC.INIT_BOON(this);
|
||||
initJmx(BãßBȍőnEnumJmxKeyʸᴰ.JMX);
|
||||
readCounter = BȍőnInitGuage(BãßBȍőnEnumJmxKeyʸᴰ.JMX, "reads", "The amount of warpcore reads.");
|
||||
writeCounter = BȍőnInitGuage(BãßBȍőnEnumJmxKeyʸᴰ.JMX, "writes", "The amount of warpcore writes.");
|
||||
BBC.BOON_INIT(this);
|
||||
BȍőnJmxInit(MBeanStoreKeyᴶᴹˣ.JMX);
|
||||
warpCoreReads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "warpCoreReads", "The amount of warpcore reads.");
|
||||
warpCoreWrites = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "warpCoreWrites", "The amount of warpcore writes.");
|
||||
armedWarpWaterName = BȍőnJmxInitStringAttribute(MBeanStoreKeyᴶᴹˣ.JMX, "armedWarpWaterName", "The armed water cipher name.");
|
||||
armedWarpWaterName.setValueString("default");
|
||||
armedWarpWaterDesc = BȍőnJmxInitStringAttribute(MBeanStoreKeyᴶᴹˣ.JMX, "armedWarpWaterDesc", "The armed water cipher description.");
|
||||
armedWarpWaterDesc.setValueString("Current active cipher.");
|
||||
armedWarpCipherLock = BȍőnJmxInitBooleanAttribute(MBeanStoreKeyᴶᴹˣ.JMX, "armedWarpCipherLock", "Is the water cipher locked.");
|
||||
armedWarpCipherLock.setValueBoolean(false);
|
||||
}
|
||||
|
||||
public void BãßLockWarpCipher() {
|
||||
armedWarpCipherLock.setValueBoolean(true);
|
||||
for (int base:BasePartFactory.INSTANCE.BãßBases()) {
|
||||
for (BãßBȍőnPartʸᴰ<?> part:BasePartFactory.INSTANCE.BãßBuildPartsByBase(base)) {
|
||||
BãßBȍőnCoffinOpenʸᴰ.class.cast(part.GET_BBC()).LOCK_COFFIN();
|
||||
|
@ -45,18 +57,10 @@ public enum TOSWarpCore implements BãßBȍőnEnumInstanceʸᴰ<TOSWarpCore>,Bã
|
|||
}
|
||||
|
||||
public WaterBucket BãßCurrentWarpCore() {
|
||||
readCounter.increment();
|
||||
warpCoreReads.increment();
|
||||
WaterCipher warpCipher = new WaterCipher();
|
||||
if (armedWarpCipherName == null) {
|
||||
warpCipher.setName("default");
|
||||
} else {
|
||||
warpCipher.setName(armedWarpCipherName);
|
||||
}
|
||||
if (armedWarpCipherDescription == null) {
|
||||
warpCipher.setName("Current active cipher.");
|
||||
} else {
|
||||
warpCipher.setDescription(armedWarpCipherDescription);
|
||||
}
|
||||
warpCipher.setName(armedWarpWaterName.getValueString());
|
||||
warpCipher.setDescription(armedWarpWaterDesc.getValueString());
|
||||
for (int base:BasePartFactory.INSTANCE.BãßBases()) {
|
||||
WaterCipherHeart heart = new WaterCipherHeart();
|
||||
BãßBȍőnPartʸᴰ<?>[] bases = BasePartFactory.INSTANCE.BãßBuildPartsByBase(base);
|
||||
|
@ -77,9 +81,9 @@ public enum TOSWarpCore implements BãßBȍőnEnumInstanceʸᴰ<TOSWarpCore>,Bã
|
|||
}
|
||||
|
||||
public void BãßArmWarpCore(WaterBucket warpBucket) {
|
||||
writeCounter.increment();
|
||||
armedWarpCipherName = warpBucket.theWater().getName();
|
||||
armedWarpCipherDescription = warpBucket.theWater().getDescription();
|
||||
warpCoreWrites.increment();
|
||||
armedWarpWaterName.setValueString(warpBucket.theWater().getName());
|
||||
armedWarpWaterDesc.setValueString(warpBucket.theWater().getDescription());
|
||||
for (WaterCipherHeart heart:warpBucket.theWater().getCipherHearts()) {
|
||||
BãßBȍőnPartʸᴰ<?>[] bases = BasePartFactory.INSTANCE.BãßBuildPartsByBase(heart.getBass());
|
||||
Map<String, BãßBȍőnPartʸᴰ<?>> baseParts = new HashMap<>();
|
||||
|
|
Loading…
Reference in a new issue