Converted to maven
This commit is contained in:
parent
0f33a5a77e
commit
9afa43331a
327 changed files with 396 additions and 500 deletions
9
gdxapp4d-lib/gdxapp4d-lib-basicwd/pom.xml
Normal file
9
gdxapp4d-lib/gdxapp4d-lib-basicwd/pom.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>love.distributedrebirth.gdxapp4d</groupId>
|
||||
<artifactId>gdxapp4d-lib</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>gdxapp4d-lib-basicwd</artifactId>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
package love.distributedrebirth.basic4d;
|
||||
|
||||
public class BasicRuntime {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
package love.distributedrebirth.basic4d.lang;
|
||||
|
||||
public class BasicAnnotationʷᴰ {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
package love.distributedrebirth.basic4d.lang;
|
||||
|
||||
public class BasicClassʷᴰ {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
package love.distributedrebirth.basic4d.lang;
|
||||
|
||||
public class BasicInterfaceʷᴰ {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
package love.distributedrebirth.basic4d.lang;
|
||||
|
||||
public class BasicLanguageModuleʷᴰ {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
package love.distributedrebirth.basic4d.lang;
|
||||
|
||||
public class BasicLanguageʷᴰ {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
package love.distributedrebirth.basic4d.lang;
|
||||
|
||||
public class BasicMethodArgumentʷᴰ {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
package love.distributedrebirth.basic4d.lang;
|
||||
|
||||
public class BasicMethodʷᴰ {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
package love.distributedrebirth.basic4d.lang;
|
||||
|
||||
public class BasicStepCodeʷᴰ {
|
||||
|
||||
}
|
||||
9
gdxapp4d-lib/gdxapp4d-lib-bassboonyd/pom.xml
Normal file
9
gdxapp4d-lib/gdxapp4d-lib-bassboonyd/pom.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>love.distributedrebirth.gdxapp4d</groupId>
|
||||
<artifactId>gdxapp4d-lib</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>gdxapp4d-lib-bassboonyd</artifactId>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
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ȍőnAnnotationInfoʸᴰ {
|
||||
|
||||
Class<? extends Annotation>[] required();
|
||||
|
||||
Class<? extends Annotation>[] optional() default {};
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* Moves copyright into runtime class info.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target({ElementType.TYPE})
|
||||
public @interface BãßBȍőnAuthorInfoʸᴰ {
|
||||
|
||||
String name();
|
||||
|
||||
String copyright();
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
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ȍőnClassInfoʸᴰ {
|
||||
|
||||
String name();
|
||||
|
||||
String purpose();
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BãßBȍőnCoffinOpenʸᴰ<T extends BãßBȍőnCoffinStoreKeyʸᴰ> extends BãßBȍőnCoffinʸᴰ<T>, DefaultInitMethodʸᴰ {
|
||||
|
||||
void LOCK_COFFIN();
|
||||
|
||||
Object PUT_OBJ(T key, Object value);
|
||||
|
||||
default void PUT_MAP(T key) {
|
||||
PUT_OBJ(key, new HashMap<>());
|
||||
}
|
||||
|
||||
default void PUT_LIST(T key) {
|
||||
PUT_OBJ(key, new ArrayList<>());
|
||||
}
|
||||
|
||||
static <T extends DefaultEnumBaseʸᴰ<?> & BãßBȍőnCoffinStoreʸᴰ<?>> void lockCoffin(T store) {
|
||||
lockCoffin(store, v -> System.out.println(v));
|
||||
}
|
||||
|
||||
static <T extends DefaultEnumBaseʸᴰ<?> & BãßBȍőnCoffinStoreʸᴰ<?>> void lockCoffin(T 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ȍőnCoffinOpenʸᴰ<?> coffinOpen = BãßBȍőnCoffinOpenʸᴰ.class.cast(coffin.GET_BBC());
|
||||
coffinOpen.LOCK_COFFIN();
|
||||
}
|
||||
}
|
||||
|
||||
static <Y extends BãßBȍőnCoffinStoreKeyʸᴰ> BãßBȍőnCoffinOpenʸᴰ<Y> newInstance() {
|
||||
return new BãßBȍőnCoffinOpenʸᴰ<Y>() {
|
||||
final Map<Y,Object> initMap = new HashMap<>();
|
||||
volatile boolean deathLock = false;
|
||||
|
||||
@Override
|
||||
public void LOCK_COFFIN() {
|
||||
deathLock = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object GET_OBJ(Y key) {
|
||||
return initMap.get(key);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object PUT_OBJ(Y key, Object value) {
|
||||
if (deathLock) {
|
||||
throw new IllegalStateException("Can't cheat death in closed coffin.");
|
||||
}
|
||||
return initMap.put(key, value);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BãßBȍőnCoffinStoreKeyʸᴰ {
|
||||
|
||||
String name();
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BãßBȍőnCoffinStoreʸᴰ<T extends BãßBȍőnCoffinStoreKeyʸᴰ> {
|
||||
|
||||
BãßBȍőnCoffinʸᴰ<T> GET_BBC();
|
||||
}
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BãßBȍőnCoffinʸᴰ<T extends BãßBȍőnCoffinStoreKeyʸᴰ> {
|
||||
|
||||
Object GET_OBJ(T key);
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default <Y> Y GET_OBJ(T key, Class<Y> type) {
|
||||
return (Y) GET_OBJ(key);
|
||||
}
|
||||
|
||||
default String GET_STR(T key) {
|
||||
return String.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
default Short GET_SHORT(T key) {
|
||||
return Short.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
default Character GET_CHAR(T key) {
|
||||
return Character.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
default Integer GET_INT(T key) {
|
||||
return Integer.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
default Long GET_LONG(T key) {
|
||||
return Long.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
default Boolean GET_BOOL(T key) {
|
||||
return Boolean.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
default Float GET_FLOAT(T key) {
|
||||
return Float.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
default Double GET_DOUBLE(T key) {
|
||||
return Double.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default Map<String,Object> GET_MAP_OBJ(T key) {
|
||||
return Map.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default Map<String,String> GET_MAP_STR(T key) {
|
||||
return Map.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default Map<String,Integer> GET_MAP_INT(T key) {
|
||||
return Map.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default List<Object> GET_LIST_OBJ(T key) {
|
||||
return List.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default List<String> GET_LIST_STR(T key) {
|
||||
return List.class.cast(GET_OBJ(key));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default List<Integer> GET_LIST_INT(T key) {
|
||||
return List.class.cast(GET_OBJ(key));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
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;
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
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.METHOD})
|
||||
public @interface BãßBȍőnInitMethodʸᴰ {
|
||||
|
||||
}
|
||||
|
|
@ -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,32 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface DefaultEnumBaseʸᴰ<T> extends DefaultAuthorInfoʸᴰ,DefaultClassInfoʸᴰ,DefaultPackageInfoʸᴰ {
|
||||
|
||||
int ordinal();
|
||||
|
||||
String name();
|
||||
|
||||
// Bȍőn prefix is for set instance enum object (called DefaultEnumSetʸᴰ)
|
||||
// Bãß prefix is for single instance enum objects (called DefaultEnumInstanceʸᴰ)
|
||||
|
||||
default String BȍőnNaam() {
|
||||
return name();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
default T[] BãßInstances() {
|
||||
try {
|
||||
Object result = getClass().getMethod(BãßBȍőnConstantsʸᴰ.STR_VALUES).invoke(null);
|
||||
return (T[]) result;
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
default String BȍőnNaamI18N() {
|
||||
return BãßClassNaam() + BãßBȍőnConstantsʸᴰ.STR_DOT + name();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface DefaultEnumInstanceʸᴰ<T> extends DefaultEnumBaseʸᴰ<T> {
|
||||
|
||||
default T BãßInstance() {
|
||||
return BãßInstances()[BãßBȍőnConstantsʸᴰ.INT_ZERO];
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
package love.distributedrebirth.bassboonyd;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface DefaultEnumSetʸᴰ<T> extends DefaultEnumBaseʸᴰ<T> {
|
||||
|
||||
default int BȍőnRangTelNul() {
|
||||
return ordinal();
|
||||
}
|
||||
|
||||
default int BȍőnRangTelEen() {
|
||||
return ordinal() + 1;
|
||||
}
|
||||
|
||||
default List<T> BãßInstancesList() {
|
||||
return Arrays.asList(BãßInstances());
|
||||
}
|
||||
|
||||
default <K> Map<K,T> BãßInstancesToMap(Function<T,K> 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++) {
|
||||
if (this == values[i]) {
|
||||
resultIndex = i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (resultIndex == values.length) {
|
||||
resultIndex = 0;
|
||||
}
|
||||
return values[resultIndex];
|
||||
}
|
||||
|
||||
default T BȍőnVorige() {
|
||||
T[] values = BãßInstances();
|
||||
int resultIndex = 0;
|
||||
for (int i=0;i<values.length;i++) {
|
||||
if (this == values[i]) {
|
||||
resultIndex = i - 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (resultIndex < 0) {
|
||||
resultIndex = values.length - 1;
|
||||
}
|
||||
return values[resultIndex];
|
||||
}
|
||||
|
||||
default void BãßVoorElk(Consumer<T> consumer) {
|
||||
for (T value:BãßInstances()) {
|
||||
consumer.accept(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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 = "©Δ∞ 仙上主天")
|
||||
@MBeanAttributeTypeᴶᴹˣ(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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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ᴶᴹˣ<T,K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends DefaultEnumBaseʸᴰ<T>,BãßBȍőnCoffinStoreʸᴰ<K> {
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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ᴶᴹˣ<T,K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends DefaultEnumBaseᴶᴹˣ<T,K>,DefaultEnumInstanceʸᴰ<T> {
|
||||
|
||||
@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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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ᴶᴹˣ<T,K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends DefaultEnumBaseᴶᴹˣ<T,K>,DefaultEnumSetʸᴰ<T> {
|
||||
|
||||
@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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
package love.distributedrebirth.bassboonyd.jmx;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
@MBeanAttributeTypeᴶᴹˣ(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 void increment(long value) {
|
||||
counter = counter + value;
|
||||
}
|
||||
|
||||
public Object getValue() {
|
||||
return Long.valueOf(counter);
|
||||
}
|
||||
}
|
||||
|
|
@ -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 MBeanAttributeTypeᴶᴹˣ {
|
||||
|
||||
Class<?> value();
|
||||
}
|
||||
|
|
@ -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(MBeanAttributeTypeᴶᴹˣ.class).value();
|
||||
}
|
||||
|
||||
Object getValue();
|
||||
|
||||
String getName();
|
||||
|
||||
String getDescription();
|
||||
}
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
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;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class MBeanDynamicᴶᴹˣ implements DynamicMBean {
|
||||
|
||||
private final String description;
|
||||
private final Map<String, Object> guages;
|
||||
|
||||
public MBeanDynamicᴶᴹˣ(String description, Map<String, Object> guages) {
|
||||
this.description = description;
|
||||
this.guages = guages;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MBeanInfo getMBeanInfo() {
|
||||
MBeanAttributeInfo[] dAttributes = new MBeanAttributeInfo[guages.keySet().size()];
|
||||
List<String> 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(), description, 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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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 = "©Δ∞ 仙上主天")
|
||||
@MBeanAttributeTypeᴶᴹˣ(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;
|
||||
}
|
||||
}
|
||||
36
gdxapp4d-lib/gdxapp4d-lib-imxmi/pom.xml
Normal file
36
gdxapp4d-lib/gdxapp4d-lib-imxmi/pom.xml
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>love.distributedrebirth.gdxapp4d</groupId>
|
||||
<artifactId>gdxapp4d-lib</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>gdxapp4d-lib-imxmi</artifactId>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>love.distributedrebirth.gdxapp4d</groupId>
|
||||
<artifactId>gdxapp4d-lib-bassboonyd</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.github.spair</groupId>
|
||||
<artifactId>imgui-java-binding</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.github.spair</groupId>
|
||||
<artifactId>imgui-java-lwjgl3</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.github.spair</groupId>
|
||||
<artifactId>imgui-java-natives-linux</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.github.spair</groupId>
|
||||
<artifactId>imgui-java-natives-macos</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.github.spair</groupId>
|
||||
<artifactId>imgui-java-natives-windows</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
package love.distributedrebirth.imxmi;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class ImXmiSetup {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package love.distributedrebirth.imxmi.lang;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
abstract public class AbstractImComponentDataˣᴹᴵ implements ImComponentDataˣᴹᴵ {
|
||||
|
||||
private Function<Object, Object> dataExtractor;
|
||||
|
||||
@Override
|
||||
public void setDataExtractor(Function<Object, Object> dataExtractor) {
|
||||
this.dataExtractor = dataExtractor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Function<Object, Object> getDataExtractor() {
|
||||
return dataExtractor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderBegin() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderEnd() {
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package love.distributedrebirth.imxmi.lang;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
abstract public class AbstractImComponentSetˣᴹᴵ implements ImComponentSetˣᴹᴵ {
|
||||
|
||||
protected List<ImComponentˣᴹᴵ> components = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void addComponent(ImComponentˣᴹᴵ comp) {
|
||||
components.add(comp);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeComponent(ImComponentˣᴹᴵ comp) {
|
||||
components.remove(comp);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ImComponentˣᴹᴵ> getComponents() {
|
||||
return components;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package love.distributedrebirth.imxmi.lang;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
abstract public class AbstractImComponentˣᴹᴵ implements ImComponentˣᴹᴵ {
|
||||
|
||||
@Override
|
||||
public void renderBegin() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderEnd() {
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
package love.distributedrebirth.imxmi.lang;
|
||||
|
||||
import imgui.ImGui;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class ImButtonˣᴹᴵ extends AbstractImComponentˣᴹᴵ {
|
||||
|
||||
private String label;
|
||||
private Runnable callback;
|
||||
|
||||
public ImButtonˣᴹᴵ() {
|
||||
}
|
||||
|
||||
public ImButtonˣᴹᴵ(String label) {
|
||||
setLabel(label);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderComponent() {
|
||||
if (ImGui.button(label) && callback != null) {
|
||||
callback.run();
|
||||
}
|
||||
}
|
||||
|
||||
public String getLabel() {
|
||||
return label;
|
||||
}
|
||||
|
||||
public void setLabel(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
public Runnable getCallback() {
|
||||
return callback;
|
||||
}
|
||||
|
||||
public void setCallback(Runnable callback) {
|
||||
this.callback = callback;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
package love.distributedrebirth.imxmi.lang;
|
||||
|
||||
import imgui.ImGui;
|
||||
import imgui.type.ImInt;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class ImComboˣᴹᴵ extends AbstractImComponentˣᴹᴵ {
|
||||
|
||||
private String label;
|
||||
private final ImInt currentItem = new ImInt();
|
||||
private String[] items;
|
||||
private Runnable callback;
|
||||
|
||||
public ImComboˣᴹᴵ() {
|
||||
}
|
||||
|
||||
public ImComboˣᴹᴵ(String label) {
|
||||
setLabel(label);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderComponent() {
|
||||
if (ImGui.combo(label, currentItem, items) && callback != null) {
|
||||
callback.run();
|
||||
}
|
||||
}
|
||||
|
||||
public String getLabel() {
|
||||
return label;
|
||||
}
|
||||
|
||||
public void setLabel(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
public Runnable getCallback() {
|
||||
return callback;
|
||||
}
|
||||
|
||||
public void setCallback(Runnable callback) {
|
||||
this.callback = callback;
|
||||
}
|
||||
|
||||
public ImInt getCurrentItem() {
|
||||
return currentItem;
|
||||
}
|
||||
|
||||
public String[] getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItems(String[] items) {
|
||||
this.items = items;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package love.distributedrebirth.imxmi.lang;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface ImComponentDataˣᴹᴵ extends ImComponentˣᴹᴵ {
|
||||
|
||||
void setDataExtractor(Function<Object, Object> dataExtractor);
|
||||
|
||||
Function<Object, Object> getDataExtractor();
|
||||
|
||||
void setData(Object value);
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package love.distributedrebirth.imxmi.lang;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface ImComponentSetˣᴹᴵ extends ImComponentˣᴹᴵ {
|
||||
|
||||
void addComponent(ImComponentˣᴹᴵ comp);
|
||||
void removeComponent(ImComponentˣᴹᴵ comp);
|
||||
List<ImComponentˣᴹᴵ> getComponents();
|
||||
|
||||
default void renderComponents() {
|
||||
for (ImComponentˣᴹᴵ comp:getComponents()) {
|
||||
comp.renderBegin();
|
||||
comp.renderComponent();
|
||||
comp.renderEnd();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
package love.distributedrebirth.imxmi.lang;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface ImComponentˣᴹᴵ {
|
||||
|
||||
void renderBegin();
|
||||
|
||||
void renderComponent();
|
||||
|
||||
void renderEnd();
|
||||
}
|
||||
|
|
@ -0,0 +1,126 @@
|
|||
package love.distributedrebirth.imxmi.lang;
|
||||
|
||||
import imgui.ImGui;
|
||||
import imgui.flag.ImGuiCond;
|
||||
import imgui.type.ImBoolean;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class ImFrameˣᴹᴵ extends AbstractImComponentSetˣᴹᴵ {
|
||||
|
||||
private String title;
|
||||
private ImBoolean frameOpen;
|
||||
private float nextWindowPosX;
|
||||
private float nextWindowPosY;
|
||||
private int nextWindowPosCond;
|
||||
private float nextWindowSizeWidth;
|
||||
private float nextWindowSizeHeight;
|
||||
private int nextWindowSizeCond;
|
||||
|
||||
public ImFrameˣᴹᴵ() {
|
||||
this(null, null);
|
||||
}
|
||||
|
||||
public ImFrameˣᴹᴵ(String title, ImBoolean frameOpen) {
|
||||
this.title = title;
|
||||
this.frameOpen = frameOpen;
|
||||
nextWindowPosX = 320;
|
||||
nextWindowPosY = 240;
|
||||
nextWindowPosCond = ImGuiCond.FirstUseEver;
|
||||
nextWindowSizeWidth = 640;
|
||||
nextWindowSizeHeight = 480;
|
||||
nextWindowSizeCond = ImGuiCond.FirstUseEver;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderBegin() {
|
||||
ImGui.setNextWindowPos(nextWindowPosX, nextWindowPosY, nextWindowPosCond);
|
||||
ImGui.setNextWindowSize(nextWindowSizeWidth, nextWindowSizeHeight, nextWindowSizeCond);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderComponent() {
|
||||
if (ImGui.begin(title, frameOpen)) {
|
||||
renderComponents();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderEnd() {
|
||||
ImGui.end();
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public ImBoolean getFrameOpen() {
|
||||
return frameOpen;
|
||||
}
|
||||
|
||||
public void setFrameOpen(ImBoolean frameOpen) {
|
||||
this.frameOpen = frameOpen;
|
||||
}
|
||||
|
||||
public void setNextWindowPos(float nextWindowPosX, float nextWindowPosY) {
|
||||
setNextWindowPosX(nextWindowPosX);
|
||||
setNextWindowPosY(nextWindowPosY);
|
||||
}
|
||||
|
||||
public float getNextWindowPosX() {
|
||||
return nextWindowPosX;
|
||||
}
|
||||
|
||||
public void setNextWindowPosX(float nextWindowPosX) {
|
||||
this.nextWindowPosX = nextWindowPosX;
|
||||
}
|
||||
|
||||
public float getNextWindowPosY() {
|
||||
return nextWindowPosY;
|
||||
}
|
||||
|
||||
public void setNextWindowPosY(float nextWindowPosY) {
|
||||
this.nextWindowPosY = nextWindowPosY;
|
||||
}
|
||||
|
||||
public int getNextWindowPosCond() {
|
||||
return nextWindowPosCond;
|
||||
}
|
||||
|
||||
public void setNextWindowPosCond(int nextWindowPosCond) {
|
||||
this.nextWindowPosCond = nextWindowPosCond;
|
||||
}
|
||||
|
||||
public void setNextWindowSize(float nextWindowSizeWidth, float nextWindowSizeHeight) {
|
||||
setNextWindowSizeWidth(nextWindowSizeWidth);
|
||||
setNextWindowSizeHeight(nextWindowSizeHeight);
|
||||
}
|
||||
|
||||
public float getNextWindowSizeWidth() {
|
||||
return nextWindowSizeWidth;
|
||||
}
|
||||
|
||||
public void setNextWindowSizeWidth(float nextWindowSizeWidth) {
|
||||
this.nextWindowSizeWidth = nextWindowSizeWidth;
|
||||
}
|
||||
|
||||
public float getNextWindowSizeHeight() {
|
||||
return nextWindowSizeHeight;
|
||||
}
|
||||
|
||||
public void setNextWindowSizeHeight(float nextWindowSizeHeight) {
|
||||
this.nextWindowSizeHeight = nextWindowSizeHeight;
|
||||
}
|
||||
|
||||
public int getNextWindowSizeCond() {
|
||||
return nextWindowSizeCond;
|
||||
}
|
||||
|
||||
public void setNextWindowSizeCond(int nextWindowSizeCond) {
|
||||
this.nextWindowSizeCond = nextWindowSizeCond;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package love.distributedrebirth.imxmi.lang;
|
||||
|
||||
import imgui.ImGui;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class ImSameLineˣᴹᴵ extends AbstractImComponentˣᴹᴵ {
|
||||
|
||||
public ImSameLineˣᴹᴵ() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderComponent() {
|
||||
ImGui.sameLine();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package love.distributedrebirth.imxmi.lang;
|
||||
|
||||
import imgui.ImGui;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class ImSeparatorˣᴹᴵ extends AbstractImComponentˣᴹᴵ {
|
||||
|
||||
public ImSeparatorˣᴹᴵ() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderComponent() {
|
||||
ImGui.separator();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
package love.distributedrebirth.imxmi.lang;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import imgui.ImGui;
|
||||
import imgui.flag.ImGuiTableFlags;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class ImTableˣᴹᴵ extends AbstractImComponentˣᴹᴵ {
|
||||
|
||||
private String id;
|
||||
private int flags;
|
||||
private List<String> columns;
|
||||
private Supplier<List<Object>> dataSupplier;
|
||||
private List<ImComponentDataˣᴹᴵ> components = new ArrayList<>();
|
||||
|
||||
|
||||
public ImTableˣᴹᴵ() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
public ImTableˣᴹᴵ(String id) {
|
||||
this.id = id;
|
||||
this.columns = new ArrayList<>();
|
||||
this.flags = ImGuiTableFlags.ScrollX | ImGuiTableFlags.RowBg | ImGuiTableFlags.BordersOuter | ImGuiTableFlags.BordersV;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderBegin() {
|
||||
ImGui.beginTable(id, columns.size(), flags);
|
||||
for (String column:columns) {
|
||||
ImGui.tableSetupColumn(column);
|
||||
}
|
||||
ImGui.tableHeadersRow();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderComponent() {
|
||||
List<Object> rows = dataSupplier.get();
|
||||
for (Object row:rows) {
|
||||
ImGui.tableNextRow();
|
||||
for (ImComponentDataˣᴹᴵ comp:getComponents()) {
|
||||
ImGui.tableNextColumn();
|
||||
comp.setData(row);
|
||||
comp.renderBegin();
|
||||
comp.renderComponent();
|
||||
comp.renderEnd();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderEnd() {
|
||||
ImGui.endTable();
|
||||
}
|
||||
|
||||
public void addComponent(ImComponentDataˣᴹᴵ comp) {
|
||||
components.add(comp);
|
||||
}
|
||||
|
||||
public void removeComponent(ImComponentDataˣᴹᴵ comp) {
|
||||
components.remove(comp);
|
||||
}
|
||||
|
||||
public List<ImComponentDataˣᴹᴵ> getComponents() {
|
||||
return components;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package love.distributedrebirth.imxmi.lang;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
import imgui.ImGui;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class ImTextDataˣᴹᴵ extends AbstractImComponentDataˣᴹᴵ {
|
||||
|
||||
private String text;
|
||||
|
||||
public ImTextDataˣᴹᴵ() {
|
||||
}
|
||||
|
||||
public ImTextDataˣᴹᴵ(Function<Object, Object> dataExtractor) {
|
||||
setDataExtractor(dataExtractor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderComponent() {
|
||||
ImGui.text(text);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setData(Object value) {
|
||||
text = String.class.cast(getDataExtractor().apply(value));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
package love.distributedrebirth.imxmi.lang;
|
||||
|
||||
import imgui.ImGui;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class ImTextˣᴹᴵ extends AbstractImComponentˣᴹᴵ {
|
||||
|
||||
private String text;
|
||||
|
||||
public ImTextˣᴹᴵ() {
|
||||
}
|
||||
|
||||
public ImTextˣᴹᴵ(String text) {
|
||||
setText(text);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderComponent() {
|
||||
ImGui.text(text);
|
||||
}
|
||||
|
||||
public String getText() {
|
||||
return text;
|
||||
}
|
||||
|
||||
public void setText(String text) {
|
||||
this.text = text;
|
||||
}
|
||||
}
|
||||
21
gdxapp4d-lib/gdxapp4d-lib-numberxd/pom.xml
Normal file
21
gdxapp4d-lib/gdxapp4d-lib-numberxd/pom.xml
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>love.distributedrebirth.gdxapp4d</groupId>
|
||||
<artifactId>gdxapp4d-lib</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>gdxapp4d-lib-numberxd</artifactId>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>love.distributedrebirth.gdxapp4d</groupId>
|
||||
<artifactId>gdxapp4d-lib-bassboonyd</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>love.distributedrebirth.gdxapp4d</groupId>
|
||||
<artifactId>gdxapp4d-lib-warpme</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseNumber;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
abstract public class AbstractBaseGetậlMatrix1<T extends BaseGetậl<T,V>,V extends BaseNumber<V>> implements BaseGetậlMatrix1<T,V> {
|
||||
|
||||
protected int matrix1;
|
||||
|
||||
@Override
|
||||
public void setMatrix1(int matrix1) {
|
||||
this.matrix1 = matrix1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix1() {
|
||||
return matrix1;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseNumber;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
abstract public class AbstractBaseGetậlMatrix2<T extends BaseGetậl<T,V>,V extends BaseNumber<V>> extends AbstractBaseGetậlMatrix1<T,V> implements BaseGetậlMatrix2<T,V> {
|
||||
|
||||
protected int matrix2;
|
||||
|
||||
@Override
|
||||
public void setMatrix2(int matrix2) {
|
||||
this.matrix2 = matrix2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix2() {
|
||||
return matrix2;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseNumber;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
abstract public class AbstractBaseGetậlMatrix3<T extends BaseGetậl<T,V>,V extends BaseNumber<V>> extends AbstractBaseGetậlMatrix2<T,V> implements BaseGetậlMatrix3<T,V> {
|
||||
|
||||
protected int matrix3;
|
||||
|
||||
@Override
|
||||
public void setMatrix3(int matrix3) {
|
||||
this.matrix3 = matrix3;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix3() {
|
||||
return matrix3;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseNumber;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
abstract public class AbstractBaseGetậlMatrix4<T extends BaseGetậl<T,V>,V extends BaseNumber<V>> extends AbstractBaseGetậlMatrix3<T,V> implements BaseGetậlMatrix4<T,V> {
|
||||
|
||||
protected int matrix4;
|
||||
|
||||
@Override
|
||||
public void setMatrix4(int matrix4) {
|
||||
this.matrix4 = matrix4;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix4() {
|
||||
return matrix4;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T16PartHex;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V009Tyte;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V144Tocta;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
abstract public class AbstractGroßGetậlŌṁ1ⁿᴰ<T extends BaseGetậl<T,V009Tyte>> extends AbstractBaseGetậlMatrix2<T,V009Tyte> {
|
||||
|
||||
private V144Tocta[] values;
|
||||
private int valuesLength;
|
||||
private int fractalLevel;
|
||||
|
||||
public AbstractGroßGetậlŌṁ1ⁿᴰ(int fractalLevel) {
|
||||
this.fractalLevel = fractalLevel;
|
||||
this.valuesLength = resolveFractalLevel(fractalLevel);
|
||||
this.values = new V144Tocta[valuesLength];
|
||||
for (int i=0;i<this.values.length;i++) {
|
||||
this.values[i] = new V144Tocta();
|
||||
}
|
||||
}
|
||||
|
||||
public AbstractGroßGetậlŌṁ1ⁿᴰ(int fractalLevel, BaseIteratorOctal values) {
|
||||
this.fractalLevel = fractalLevel;
|
||||
this.valuesLength = resolveFractalLevel(fractalLevel);
|
||||
this.values = new V144Tocta[valuesLength];
|
||||
for (int i=0;i<this.values.length;i++) {
|
||||
this.values[i] = new V144Tocta(values);
|
||||
}
|
||||
}
|
||||
|
||||
abstract protected int resolveFractalLevel(int level);
|
||||
|
||||
public V009Tyte getValue() {
|
||||
return values[matrix2].getTytePart(T16PartHex.values()[matrix1]);
|
||||
}
|
||||
|
||||
public int getFractalLevel() {
|
||||
return fractalLevel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix1Length() {
|
||||
return T16PartHex.LENGTH();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix2Length() {
|
||||
return valuesLength;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T12PartUncial;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T16PartHex;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V009Tyte;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V144Tocta;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
abstract public class AbstractGroßGetậlŌṁ6ˢᴰ<T extends BaseGetậl<T,V009Tyte>> extends AbstractBaseGetậlMatrix3<T,V009Tyte> {
|
||||
|
||||
private V144Tocta[][] values;
|
||||
private int valuesLength;
|
||||
private int fractalLevel;
|
||||
|
||||
public AbstractGroßGetậlŌṁ6ˢᴰ(int fractalLevel) {
|
||||
this.fractalLevel = fractalLevel;
|
||||
this.valuesLength = resolveFractalLevel(fractalLevel);
|
||||
this.values = new V144Tocta[T12PartUncial.LENGTH()][valuesLength];
|
||||
for (int x=0;x<this.values.length;x++) {
|
||||
for (int y=0;y<this.values[x].length;y++) {
|
||||
this.values[x][y] = new V144Tocta();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public AbstractGroßGetậlŌṁ6ˢᴰ(int fractalLevel, BaseIteratorOctal values) {
|
||||
this.fractalLevel = fractalLevel;
|
||||
this.valuesLength = resolveFractalLevel(fractalLevel);
|
||||
this.values = new V144Tocta[T12PartUncial.LENGTH()][valuesLength];
|
||||
for (int x=0;x<this.values.length;x++) {
|
||||
for (int y=0;y<this.values[x].length;y++) {
|
||||
this.values[x][y] = new V144Tocta(values);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
abstract protected int resolveFractalLevel(int level);
|
||||
|
||||
public V009Tyte getValue() {
|
||||
return values[matrix2][matrix3].getTytePart(T16PartHex.values()[matrix1]);
|
||||
}
|
||||
|
||||
public int getFractalLevel() {
|
||||
return fractalLevel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix1Length() {
|
||||
return T16PartHex.LENGTH();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix2Length() {
|
||||
return T12PartUncial.LENGTH();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix3Length() {
|
||||
return valuesLength;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseNumber;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BaseGetậl<T extends BaseGetậl<T,V>,V extends BaseNumber<V>> {
|
||||
|
||||
V getValue();
|
||||
|
||||
default T toClone() {
|
||||
return toClone(iteratorOctalsByClone());
|
||||
}
|
||||
|
||||
T toClone(BaseIteratorOctal values);
|
||||
|
||||
BaseIteratorOctal iteratorOctalsByClone();
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseNumber;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BaseGetậlMatrix1<T extends BaseGetậl<T,V>,V extends BaseNumber<V>> extends BaseGetậl<T,V> {
|
||||
|
||||
void setMatrix1(int valueIndex0);
|
||||
|
||||
int getMatrix1();
|
||||
|
||||
int getMatrix1Length();
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseNumber;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BaseGetậlMatrix2<T extends BaseGetậl<T,V>,V extends BaseNumber<V>> extends BaseGetậlMatrix1<T,V> {
|
||||
|
||||
void setMatrix2(int valueIndex1);
|
||||
|
||||
int getMatrix2();
|
||||
|
||||
int getMatrix2Length();
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseNumber;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BaseGetậlMatrix3<T extends BaseGetậl<T,V>,V extends BaseNumber<V>> extends BaseGetậlMatrix2<T,V> {
|
||||
|
||||
void setMatrix3(int valueIndex1);
|
||||
|
||||
int getMatrix3();
|
||||
|
||||
int getMatrix3Length();
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseNumber;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BaseGetậlMatrix4<T extends BaseGetậl<T,V>,V extends BaseNumber<V>> extends BaseGetậlMatrix3<T,V> {
|
||||
|
||||
void setMatrix4(int valueIndex1);
|
||||
|
||||
int getMatrix4();
|
||||
|
||||
int getMatrix4Length();
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorTyte;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T16PartHex;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V009Tyte;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V144Tocta;
|
||||
|
||||
/**
|
||||
* Holds an 144 bit fraction.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class GroßGetậl1ⁿᴰ extends AbstractBaseGetậlMatrix1<GroßGetậl1ⁿᴰ,V009Tyte> {
|
||||
|
||||
//public static int NUMERATOR_SIZE = 7;
|
||||
//public static int DENOMINATOR_SIZE = 9;
|
||||
//public static int BIT_COUNT = V144Tocta.BIT_COUNT;
|
||||
//private final V009Tyte[] numerator = new V009Tyte[NUMERATOR_SIZE];
|
||||
//private final V009Tyte[] denominator = new V009Tyte[DENOMINATOR_SIZE];
|
||||
private final V144Tocta value;
|
||||
|
||||
public GroßGetậl1ⁿᴰ() {
|
||||
this(new V144Tocta());
|
||||
}
|
||||
|
||||
public GroßGetậl1ⁿᴰ(BaseIteratorOctal values) {
|
||||
this(new V144Tocta(values));
|
||||
}
|
||||
|
||||
public GroßGetậl1ⁿᴰ(BaseIteratorTyte values) {
|
||||
this(new V144Tocta(values));
|
||||
}
|
||||
|
||||
public GroßGetậl1ⁿᴰ(V144Tocta value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public V009Tyte getValue() {
|
||||
return value.getTytePart(T16PartHex.values()[matrix1]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix1Length() {
|
||||
return T16PartHex.LENGTH();
|
||||
}
|
||||
|
||||
@Override
|
||||
public GroßGetậl1ⁿᴰ toClone(BaseIteratorOctal values) {
|
||||
return new GroßGetậl1ⁿᴰ(values);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseIteratorOctal iteratorOctalsByClone() {
|
||||
return value.iteratorOctalsByClone();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.numberxd.base2t.part.T12PartUncial;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T16PartHex;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V009Tyte;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V144Tocta;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctalStack;
|
||||
|
||||
/**
|
||||
* Holds an 864 bit fraction.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class GroßGetậl6ˢᴰ extends AbstractBaseGetậlMatrix2<GroßGetậl6ˢᴰ,V009Tyte> {
|
||||
|
||||
private final V144Tocta[] values = new V144Tocta[T12PartUncial.LENGTH()];
|
||||
|
||||
public GroßGetậl6ˢᴰ() {
|
||||
for (int i=0;i<this.values.length;i++) {
|
||||
this.values[i] = new V144Tocta();
|
||||
}
|
||||
}
|
||||
|
||||
public GroßGetậl6ˢᴰ(BaseIteratorOctal values) {
|
||||
for (int i=0;i<this.values.length;i++) {
|
||||
this.values[i] = new V144Tocta(values);
|
||||
}
|
||||
}
|
||||
|
||||
public V009Tyte getValue() {
|
||||
return values[matrix2].getTytePart(T16PartHex.values()[matrix1]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix1Length() {
|
||||
return T16PartHex.LENGTH();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix2Length() {
|
||||
return T12PartUncial.LENGTH();
|
||||
}
|
||||
|
||||
@Override
|
||||
public GroßGetậl6ˢᴰ toClone(BaseIteratorOctal values) {
|
||||
return new GroßGetậl6ˢᴰ(values);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseIteratorOctal iteratorOctalsByClone() {
|
||||
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
|
||||
for (int i=0;i<this.values.length;i++) {
|
||||
cloneStack.addIterator(this.values[i].iteratorOctalsByClone());
|
||||
}
|
||||
return cloneStack;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctalStack;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class GroßGetậlŌṁDiamond1ⁿᴰ extends AbstractGroßGetậlŌṁ1ⁿᴰ<GroßGetậlŌṁDiamond1ⁿᴰ> {
|
||||
|
||||
// 1th = 1 * V144Tocta (1)
|
||||
// 2th = 1+3 * V144Tocta (4)
|
||||
// 3th = 1+3+6 * V144Tocta (10)
|
||||
// 4th = 1+3+6+14 * V144Tocta (24)
|
||||
// etc
|
||||
|
||||
public GroßGetậlŌṁDiamond1ⁿᴰ(int level) {
|
||||
super(level);
|
||||
}
|
||||
|
||||
public GroßGetậlŌṁDiamond1ⁿᴰ(int level, BaseIteratorOctal values) {
|
||||
super(level, values);
|
||||
}
|
||||
|
||||
protected int resolveFractalLevel(int n) {
|
||||
if (n == 1) {
|
||||
return 1;
|
||||
} else {
|
||||
int result = 1 + n * resolveFractalLevel(n - 1);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public GroßGetậlŌṁDiamond1ⁿᴰ toClone(BaseIteratorOctal values) {
|
||||
return new GroßGetậlŌṁDiamond1ⁿᴰ(getFractalLevel(), values);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseIteratorOctal iteratorOctalsByClone() {
|
||||
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
|
||||
for (int x=0;x<getMatrix1Length();x++) {
|
||||
setMatrix1(x);
|
||||
for (int y=0;y<getMatrix2Length();y++) {
|
||||
setMatrix2(y);
|
||||
cloneStack.addIterator(getValue().iteratorOctalsByClone());
|
||||
}
|
||||
}
|
||||
return cloneStack;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctalStack;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class GroßGetậlŌṁDiamond6ˢᴰ extends AbstractGroßGetậlŌṁ6ˢᴰ<GroßGetậlŌṁDiamond6ˢᴰ> {
|
||||
|
||||
// 0th = 1 * V144Tocta (1)
|
||||
// 1th = 1+3 * V144Tocta (4)
|
||||
// 2th = 1+3+6 * V144Tocta (10)
|
||||
// 3th = 1+3+6+14 * V144Tocta (24)
|
||||
// etc
|
||||
|
||||
public GroßGetậlŌṁDiamond6ˢᴰ(int level) {
|
||||
super(level);
|
||||
}
|
||||
|
||||
public GroßGetậlŌṁDiamond6ˢᴰ(int level, BaseIteratorOctal values) {
|
||||
super(level, values);
|
||||
}
|
||||
|
||||
protected int resolveFractalLevel(int level) {
|
||||
// TODO
|
||||
return level;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GroßGetậlŌṁDiamond6ˢᴰ toClone(BaseIteratorOctal values) {
|
||||
return new GroßGetậlŌṁDiamond6ˢᴰ(getFractalLevel(), values);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseIteratorOctal iteratorOctalsByClone() {
|
||||
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
|
||||
for (int x=0;x<getMatrix1Length();x++) {
|
||||
setMatrix1(x);
|
||||
for (int y=0;y<getMatrix2Length();y++) {
|
||||
setMatrix2(y);
|
||||
for (int z=0;z<getMatrix2Length();z++) {
|
||||
setMatrix2(z);
|
||||
cloneStack.addIterator(getValue().iteratorOctalsByClone());
|
||||
}
|
||||
}
|
||||
}
|
||||
return cloneStack;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctalStack;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class GroßGetậlŌṁHyperStàr1ⁿᴰ extends AbstractGroßGetậlŌṁ1ⁿᴰ<GroßGetậlŌṁHyperStàr1ⁿᴰ> {
|
||||
|
||||
// 0th = V144Tocta
|
||||
// 1th = 5 * V144Tocta
|
||||
// 2th = 5 * 12 * V144Tocta
|
||||
// etc
|
||||
|
||||
public GroßGetậlŌṁHyperStàr1ⁿᴰ(int level) {
|
||||
super(level);
|
||||
}
|
||||
|
||||
public GroßGetậlŌṁHyperStàr1ⁿᴰ(int level, BaseIteratorOctal values) {
|
||||
super(level, values);
|
||||
}
|
||||
|
||||
protected int resolveFractalLevel(int level) {
|
||||
// TODO
|
||||
return level;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GroßGetậlŌṁHyperStàr1ⁿᴰ toClone(BaseIteratorOctal values) {
|
||||
return new GroßGetậlŌṁHyperStàr1ⁿᴰ(getFractalLevel(), values);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseIteratorOctal iteratorOctalsByClone() {
|
||||
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
|
||||
for (int x=0;x<getMatrix1Length();x++) {
|
||||
setMatrix1(x);
|
||||
for (int y=0;y<getMatrix2Length();y++) {
|
||||
setMatrix2(y);
|
||||
cloneStack.addIterator(getValue().iteratorOctalsByClone());
|
||||
}
|
||||
}
|
||||
return cloneStack;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctalStack;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class GroßGetậlŌṁHyperStàr6ˢᴰ extends AbstractGroßGetậlŌṁ6ˢᴰ<GroßGetậlŌṁHyperStàr6ˢᴰ> {
|
||||
|
||||
// 0th = V144Tocta
|
||||
// 1th = 5 * V144Tocta
|
||||
// 2th = 5 * 12 * V144Tocta
|
||||
// etc
|
||||
|
||||
public GroßGetậlŌṁHyperStàr6ˢᴰ(int level) {
|
||||
super(level);
|
||||
}
|
||||
|
||||
public GroßGetậlŌṁHyperStàr6ˢᴰ(int level, BaseIteratorOctal values) {
|
||||
super(level, values);
|
||||
}
|
||||
|
||||
protected int resolveFractalLevel(int level) {
|
||||
// TODO
|
||||
return level;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GroßGetậlŌṁHyperStàr6ˢᴰ toClone(BaseIteratorOctal values) {
|
||||
return new GroßGetậlŌṁHyperStàr6ˢᴰ(getFractalLevel(), values);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseIteratorOctal iteratorOctalsByClone() {
|
||||
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
|
||||
for (int x=0;x<getMatrix1Length();x++) {
|
||||
setMatrix1(x);
|
||||
for (int y=0;y<getMatrix2Length();y++) {
|
||||
setMatrix2(y);
|
||||
for (int z=0;z<getMatrix2Length();z++) {
|
||||
setMatrix2(z);
|
||||
cloneStack.addIterator(getValue().iteratorOctalsByClone());
|
||||
}
|
||||
}
|
||||
}
|
||||
return cloneStack;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,185 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T04PartQuad;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V009Tyte;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V036Teger;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class Gê̄ldGetậl extends AbstractBaseGetậlMatrix1<Gê̄ldGetậl,V009Tyte> {
|
||||
|
||||
private final V036Teger value;
|
||||
private final double totalDecimalValue;
|
||||
private static final Character LEFT_TO_RIGHT_MARK = 0x200E;
|
||||
private static final Character RIGHT_TO_LEFT_MARK = 0x200F;
|
||||
|
||||
public Gê̄ldGetậl(BaseIteratorOctal values) {
|
||||
this (new V036Teger(values));
|
||||
}
|
||||
|
||||
public Gê̄ldGetậl(V036Teger value) {
|
||||
this.value = value;
|
||||
this.totalDecimalValue = calculateDecimalValue();
|
||||
}
|
||||
|
||||
public Gê̄ldGetậl(String money) {
|
||||
if (money == null) {
|
||||
throw new NullPointerException("Can't parse null money");
|
||||
}
|
||||
if (money.isEmpty()) {
|
||||
throw new IllegalArgumentException("Can't parse zero money length");
|
||||
}
|
||||
if (money.length() > 8) { // RL + 4 chars + 3 vowels
|
||||
throw new IllegalArgumentException("Money length should not exceed 8 codepoints");
|
||||
}
|
||||
List<Gê̄ldGetậlÅtHebrew> result = new ArrayList<>();
|
||||
|
||||
Gê̄ldGetậlÅtHebrew geldDigit = null;
|
||||
for (int i=0;i<money.length();i++) {
|
||||
char codePoint = (char) money.codePointAt(i);
|
||||
if (LEFT_TO_RIGHT_MARK.equals(codePoint)) {
|
||||
continue;
|
||||
}
|
||||
if (RIGHT_TO_LEFT_MARK.equals(codePoint)) {
|
||||
continue;
|
||||
}
|
||||
if (geldDigit != null) {
|
||||
Gê̄ldGetậlÅtHebrewVowel vowel = Gê̄ldGetậlÅtHebrewVowel.valueOfCharacter(codePoint);
|
||||
if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(vowel)) {
|
||||
geldDigit.setVowel(vowel);
|
||||
result.add(geldDigit);
|
||||
geldDigit = null;
|
||||
continue;
|
||||
} else {
|
||||
result.add(geldDigit);
|
||||
}
|
||||
}
|
||||
Gê̄ldGetậlÅtHebrewLetter letter = Gê̄ldGetậlÅtHebrewLetter.valueOfCharacter(codePoint);
|
||||
if (Gê̄ldGetậlÅtHebrewLetter.NONE.equals(letter)) {
|
||||
throw new IllegalArgumentException("Unknown fraction codepoint: 0x"+Integer.toHexString(codePoint));
|
||||
}
|
||||
geldDigit = new Gê̄ldGetậlÅtHebrew(letter);
|
||||
}
|
||||
if (geldDigit != null) {
|
||||
result.add(geldDigit);
|
||||
}
|
||||
|
||||
if (result.isEmpty()) {
|
||||
throw new IllegalArgumentException("No hebrew money found");
|
||||
}
|
||||
Gê̄ldGetậlÅtHebrew full = result.get(0);
|
||||
Gê̄ldGetậlÅtHebrew deelA = null;
|
||||
Gê̄ldGetậlÅtHebrew deelB = null;
|
||||
Gê̄ldGetậlÅtHebrew deelC = null;
|
||||
if (result.size() > 1) {
|
||||
deelA = result.get(1);
|
||||
} else {
|
||||
deelA = new Gê̄ldGetậlÅtHebrew();
|
||||
}
|
||||
if (result.size() > 2) {
|
||||
deelB = result.get(2);
|
||||
} else {
|
||||
deelB = new Gê̄ldGetậlÅtHebrew();
|
||||
}
|
||||
if (result.size() > 3) {
|
||||
deelC = result.get(3);
|
||||
} else {
|
||||
deelC = new Gê̄ldGetậlÅtHebrew();
|
||||
}
|
||||
value = new V036Teger();
|
||||
value.setTytePart(T04PartQuad.PART_1, full.toTyte());
|
||||
value.setTytePart(T04PartQuad.PART_2, deelA.toTyte());
|
||||
value.setTytePart(T04PartQuad.PART_3, deelB.toTyte());
|
||||
value.setTytePart(T04PartQuad.PART_4, deelC.toTyte());
|
||||
this.totalDecimalValue = calculateDecimalValue();
|
||||
}
|
||||
|
||||
private double calculateDecimalValue() {
|
||||
Gê̄ldGetậlÅtHebrew nummerAlphabet = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_1));
|
||||
Gê̄ldGetậlÅtHebrew nummerDeelA = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_2));
|
||||
Gê̄ldGetậlÅtHebrew nummerDeelB = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_3));
|
||||
Gê̄ldGetậlÅtHebrew nummerDeelC = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_4));
|
||||
boolean hasFourDigits =
|
||||
!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelA.getLetter()) &&
|
||||
!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelB.getLetter()) &&
|
||||
!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelC.getLetter());
|
||||
double totalDecimalValue = nummerAlphabet.toDecimalValue(hasFourDigits);
|
||||
if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelA.getLetter())) {
|
||||
totalDecimalValue += nummerDeelA.toDecimalValue(false);
|
||||
}
|
||||
if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelB.getLetter())) {
|
||||
totalDecimalValue += nummerDeelB.toDecimalValue(false);
|
||||
}
|
||||
if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelC.getLetter())) {
|
||||
totalDecimalValue += nummerDeelC.toDecimalValue(false);
|
||||
}
|
||||
return totalDecimalValue;
|
||||
}
|
||||
|
||||
public double getTotalDecimalValue() {
|
||||
return totalDecimalValue;
|
||||
}
|
||||
|
||||
public String toHebrewString() {
|
||||
return toHebrewString(false);
|
||||
}
|
||||
|
||||
public String toHebrewString(boolean reverse) {
|
||||
Gê̄ldGetậlÅtHebrew nummerAlphabet = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_1));
|
||||
Gê̄ldGetậlÅtHebrew nummerDeelA = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_2));
|
||||
Gê̄ldGetậlÅtHebrew nummerDeelB = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_3));
|
||||
Gê̄ldGetậlÅtHebrew nummerDeelC = new Gê̄ldGetậlÅtHebrew(value.getTytePart(T04PartQuad.PART_4));
|
||||
StringBuilder buf = new StringBuilder();
|
||||
buf.append(RIGHT_TO_LEFT_MARK);
|
||||
buf.append(nummerAlphabet.getLetter().getCharacter());
|
||||
if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(nummerAlphabet.getVowel())) {
|
||||
buf.append(nummerAlphabet.getVowel().getCharacter());
|
||||
}
|
||||
if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelA.getLetter())) {
|
||||
buf.append(nummerDeelA.getLetter().getCharacter());
|
||||
if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(nummerDeelA.getVowel())) {
|
||||
buf.append(nummerDeelA.getVowel().getCharacter());
|
||||
}
|
||||
}
|
||||
if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelB.getLetter())) {
|
||||
buf.append(nummerDeelB.getLetter().getCharacter());
|
||||
if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(nummerDeelB.getVowel())) {
|
||||
buf.append(nummerDeelB.getVowel().getCharacter());
|
||||
}
|
||||
}
|
||||
if (!Gê̄ldGetậlÅtHebrewLetter.NONE.equals(nummerDeelC.getLetter())) {
|
||||
buf.append(nummerDeelC.getLetter().getCharacter());
|
||||
if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(nummerDeelC.getVowel())) {
|
||||
buf.append(nummerDeelC.getVowel().getCharacter());
|
||||
}
|
||||
}
|
||||
if (reverse) {
|
||||
buf.reverse(); // ImGui skips RL marker so renders wrong....
|
||||
}
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix1Length() {
|
||||
return T04PartQuad.LENGTH();
|
||||
}
|
||||
|
||||
@Override
|
||||
public V009Tyte getValue() {
|
||||
return value.getTytePart(T04PartQuad.values()[matrix1]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Gê̄ldGetậl toClone(BaseIteratorOctal values) {
|
||||
return new Gê̄ldGetậl(values);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseIteratorOctal iteratorOctalsByClone() {
|
||||
return value.iteratorOctalsByClone();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T03PartTrit;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T08PartOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V009Tyte;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class Gê̄ldGetậlÅtHebrew {
|
||||
|
||||
private static final double NUMERATOR_ONE = 1d;
|
||||
private static final int FRACTION_POWER = 10;
|
||||
private Gê̄ldGetậlÅtHebrewLetter letter;
|
||||
private Gê̄ldGetậlÅtHebrewVowel vowel;
|
||||
|
||||
public Gê̄ldGetậlÅtHebrew() {
|
||||
this.letter = Gê̄ldGetậlÅtHebrewLetter.NONE;
|
||||
this.vowel = Gê̄ldGetậlÅtHebrewVowel.NONE;
|
||||
}
|
||||
|
||||
public Gê̄ldGetậlÅtHebrew(Gê̄ldGetậlÅtHebrewLetter letter) {
|
||||
this.letter = letter;
|
||||
this.vowel = Gê̄ldGetậlÅtHebrewVowel.NONE;
|
||||
}
|
||||
|
||||
public Gê̄ldGetậlÅtHebrew(V009Tyte tyte) {
|
||||
int value0 = tyte.getValue(T03PartTrit.PART_1).ordinalOf(T08PartOctal.PART_1);
|
||||
int value1 = tyte.getValue(T03PartTrit.PART_2).ordinalOf(T08PartOctal.PART_2);
|
||||
int value2 = tyte.getValue(T03PartTrit.PART_3).ordinalOf(T08PartOctal.PART_3);
|
||||
int combinedValue = value0 + value1 + value2;
|
||||
letter = Gê̄ldGetậlÅtHebrewLetter.indexOf(combinedValue);
|
||||
vowel = Gê̄ldGetậlÅtHebrewVowel.indexOf(combinedValue >> Gê̄ldGetậlÅtHebrewLetter.SHIFT_5);
|
||||
}
|
||||
|
||||
public V009Tyte toTyte() {
|
||||
int combinedValue = letter.ordinal() + (vowel.ordinal() << Gê̄ldGetậlÅtHebrewLetter.SHIFT_5);
|
||||
T08PartOctal value0 = T08PartOctal.indexOf(T08PartOctal.PART_1, combinedValue);
|
||||
T08PartOctal value1 = T08PartOctal.indexOf(T08PartOctal.PART_2, combinedValue);
|
||||
T08PartOctal value2 = T08PartOctal.indexOf(T08PartOctal.PART_3, combinedValue);
|
||||
return new V009Tyte(value0, value1, value2);
|
||||
}
|
||||
|
||||
public double toDecimalValue(boolean firstChar) {
|
||||
double fraction = letter.getDecimal();
|
||||
if (firstChar) {
|
||||
return fraction; // use full value
|
||||
}
|
||||
if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(vowel)) {
|
||||
fraction = fraction * Math.pow(FRACTION_POWER, vowel.getFractionOffset());
|
||||
}
|
||||
double result = NUMERATOR_ONE/fraction;
|
||||
return result;
|
||||
}
|
||||
|
||||
public Gê̄ldGetậlÅtHebrewLetter getLetter() {
|
||||
return letter;
|
||||
}
|
||||
|
||||
public void setLetter(Gê̄ldGetậlÅtHebrewLetter letter) {
|
||||
this.letter = letter;
|
||||
}
|
||||
|
||||
public Gê̄ldGetậlÅtHebrewVowel getVowel() {
|
||||
return vowel;
|
||||
}
|
||||
|
||||
public void setVowel(Gê̄ldGetậlÅtHebrewVowel vowel) {
|
||||
this.vowel = vowel;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @author willemtsade ©Δ∞ 仙上主天
|
||||
*/
|
||||
public enum Gê̄ldGetậlÅtHebrewLetter {
|
||||
// Unicode is horror in any language else than ascii;
|
||||
// VS Alphabet order
|
||||
// VS Unicode order
|
||||
// VS Gematria order <== leading but with other decimals
|
||||
|
||||
NONE (0, (char) 0x05EF),
|
||||
|
||||
LETTER_1 (1, (char) 0x05D0),
|
||||
LETTER_2 (2, (char) 0x05D1),
|
||||
LETTER_3 (3, (char) 0x05D2),
|
||||
LETTER_4 (4, (char) 0x05D3),
|
||||
LETTER_5 (5, (char) 0x05D4),
|
||||
LETTER_6 (6, (char) 0x05D5),
|
||||
LETTER_7 (7, (char) 0x05D6),
|
||||
LETTER_8 (8, (char) 0x05D7),
|
||||
LETTER_9 (9, (char) 0x05D8),
|
||||
|
||||
LETTER_11 (11, (char) 0x05D9),
|
||||
LETTER_12 (12, (char) 0x05DB),
|
||||
LETTER_13 (13, (char) 0x05DC),
|
||||
LETTER_14 (14, (char) 0x05DE),
|
||||
LETTER_15 (15, (char) 0x05E0),
|
||||
LETTER_16 (16, (char) 0x05E1),
|
||||
LETTER_17 (17, (char) 0x05E2),
|
||||
LETTER_18 (18, (char) 0x05E4),
|
||||
LETTER_19 (19, (char) 0x05E6),
|
||||
|
||||
LETTER_21 (21, (char) 0x05E7),
|
||||
LETTER_22 (22, (char) 0x05E8),
|
||||
LETTER_23 (23, (char) 0x05E9),
|
||||
LETTER_24 (24, (char) 0x05EA),
|
||||
LETTER_25 (25, (char) 0x05DA),
|
||||
LETTER_26 (26, (char) 0x05DD),
|
||||
LETTER_27 (27, (char) 0x05DF),
|
||||
LETTER_28 (28, (char) 0x05E3),
|
||||
LETTER_29 (29, (char) 0x05E5),
|
||||
|
||||
/* // OLD
|
||||
LETTER_11 (10, (char) 0x05D9),
|
||||
LETTER_12 (20, (char) 0x05DB),
|
||||
LETTER_13 (30, (char) 0x05DC),
|
||||
LETTER_14 (40, (char) 0x05DE),
|
||||
LETTER_15 (50, (char) 0x05E0),
|
||||
LETTER_16 (60, (char) 0x05E1),
|
||||
LETTER_17 (70, (char) 0x05E2),
|
||||
LETTER_18 (80, (char) 0x05E4),
|
||||
LETTER_19 (90, (char) 0x05E6),
|
||||
|
||||
LETTER_21 (100, (char) 0x05E7),
|
||||
LETTER_22 (200, (char) 0x05E8),
|
||||
LETTER_23 (300, (char) 0x05E9),
|
||||
LETTER_24 (400, (char) 0x05EA),
|
||||
LETTER_25 (500, (char) 0x05DA),
|
||||
LETTER_26 (600, (char) 0x05DD),
|
||||
LETTER_27 (700, (char) 0x05DF),
|
||||
LETTER_28 (800, (char) 0x05E3),
|
||||
LETTER_29 (900, (char) 0x05E5),
|
||||
*/
|
||||
LETTER_31 (31, (char) 0x05BE),
|
||||
LETTER_32 (32, (char) 0x05C0),
|
||||
LETTER_33 (33, (char) 0x05C3),
|
||||
LETTER_34 (34, (char) 0x05C6),
|
||||
;
|
||||
|
||||
public static final byte BITMASK = 0b00011111;
|
||||
public static final byte SHIFT_5 = 5;
|
||||
private final int decimal;
|
||||
private final char character;
|
||||
|
||||
private static final Map<Character, Gê̄ldGetậlÅtHebrewLetter> CHAR_MAP = Collections.unmodifiableMap(
|
||||
Arrays.asList(values()).stream().collect(Collectors.toMap(v -> v.getCharacter(), v -> v)));
|
||||
|
||||
private Gê̄ldGetậlÅtHebrewLetter(int decimal, char character) {
|
||||
this.decimal = decimal;
|
||||
this.character = character;
|
||||
}
|
||||
|
||||
public int getDecimal() {
|
||||
return decimal;
|
||||
}
|
||||
|
||||
public char getCharacter() {
|
||||
return character;
|
||||
}
|
||||
|
||||
public static Gê̄ldGetậlÅtHebrewLetter indexOf(int index) {
|
||||
return values()[index & BITMASK];
|
||||
}
|
||||
|
||||
public static Gê̄ldGetậlÅtHebrewLetter valueOfCharacter(char codePoint) {
|
||||
return CHAR_MAP.getOrDefault(codePoint, Gê̄ldGetậlÅtHebrewLetter.NONE);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @author willemtsade ©Δ∞ 仙上主天
|
||||
*/
|
||||
public enum Gê̄ldGetậlÅtHebrewVowel {
|
||||
NONE (0, (char) 0x0000),
|
||||
VOWEL_1 (1, (char) 0x05B4),
|
||||
VOWEL_2 (2, (char) 0x05B5),
|
||||
VOWEL_3 (3, (char) 0x05B6),
|
||||
|
||||
VOWEL_4 (4, (char) 0x05B2),
|
||||
VOWEL_5 (5, (char) 0x05C7),
|
||||
VOWEL_6 (6, (char) 0x05B7), // 06 = PATAH
|
||||
VOWEL_7 (7, (char) 0x05A1),
|
||||
|
||||
VOWEL_8 (8, (char) 0x05A2),
|
||||
VOWEL_9 (9, (char) 0x05A3),
|
||||
VOWEL_10 (10, (char) 0x05B9), // 10 = POINT HOLAM
|
||||
VOWEL_16 (16, (char) 0x05B8), // 16 = QAMATS
|
||||
|
||||
VOWEL_22 (22, (char) 0x0598),
|
||||
VOWEL_30 (30, (char) 0x05BB), // 30 = QUBUTS
|
||||
VOWEL_36 (36, (char) 0x05B3), // 36 = HATAF QAMATS
|
||||
VOWEL_42 (42, (char) 0x05B1), // 50 = HATEF SEGOL
|
||||
;
|
||||
|
||||
public static final byte BITMASK = 0b00001111;
|
||||
private final int fractionOffset;
|
||||
private final char character;
|
||||
|
||||
private static final Map<Character, Gê̄ldGetậlÅtHebrewVowel> CHAR_MAP = Collections.unmodifiableMap(
|
||||
Arrays.asList(values()).stream().collect(Collectors.toMap(v -> v.getCharacter(), v -> v)));
|
||||
|
||||
private Gê̄ldGetậlÅtHebrewVowel(int fractionOffset, char character) {
|
||||
this.fractionOffset = fractionOffset;
|
||||
this.character = character;
|
||||
}
|
||||
|
||||
public int getFractionOffset() {
|
||||
return fractionOffset;
|
||||
}
|
||||
|
||||
public char getCharacter() {
|
||||
return character;
|
||||
}
|
||||
|
||||
public static Gê̄ldGetậlÅtHebrewVowel indexOf(int index) {
|
||||
return values()[index & BITMASK];
|
||||
}
|
||||
|
||||
public static Gê̄ldGetậlÅtHebrewVowel valueOfCharacter(char codePoint) {
|
||||
return CHAR_MAP.getOrDefault(codePoint, Gê̄ldGetậlÅtHebrewVowel.NONE);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.numberxd.base2t.typexl.V0x000CA8ˣᴸ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctalStack;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T08PartOctal;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class KlompGetậl4ˢᴰ extends AbstractBaseGetậlMatrix1<KlompGetậl4ˢᴰ,V0x000CA8ˣᴸ> {
|
||||
|
||||
private final V0x000CA8ˣᴸ[] values = new V0x000CA8ˣᴸ[T08PartOctal.LENGTH()];
|
||||
|
||||
public KlompGetậl4ˢᴰ() {
|
||||
for (int i=0;i<this.values.length;i++) {
|
||||
this.values[i] = new V0x000CA8ˣᴸ();
|
||||
}
|
||||
}
|
||||
|
||||
public KlompGetậl4ˢᴰ(BaseIteratorOctal values) {
|
||||
for (int i=0;i<this.values.length;i++) {
|
||||
this.values[i] = new V0x000CA8ˣᴸ(values);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public V0x000CA8ˣᴸ getValue() {
|
||||
return values[matrix1];
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix1Length() {
|
||||
return T08PartOctal.LENGTH();
|
||||
}
|
||||
|
||||
@Override
|
||||
public KlompGetậl4ˢᴰ toClone(BaseIteratorOctal values) {
|
||||
return new KlompGetậl4ˢᴰ(values);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseIteratorOctal iteratorOctalsByClone() {
|
||||
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
|
||||
for (int i=0;i<this.values.length;i++) {
|
||||
cloneStack.addIterator(this.values[i].iteratorOctalsByClone());
|
||||
}
|
||||
return cloneStack;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctalStack;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T08PartOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.typexl.V0x000CA8ˣᴸ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
/**
|
||||
* Array of ŌṁKlompGetậl4ˢᴰ sliced as cheese.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class KlompÅtŌṁKāassGetậl4ˢᴰ extends AbstractBaseGetậlMatrix2<KlompÅtŌṁKāassGetậl4ˢᴰ, V0x000CA8ˣᴸ> {
|
||||
|
||||
private final V0x000CA8ˣᴸ[][] kaas;
|
||||
private final int kaasCuts;
|
||||
|
||||
public KlompÅtŌṁKāassGetậl4ˢᴰ(int kaasCuts) {
|
||||
if (kaasCuts < 2) {
|
||||
throw new IllegalArgumentException("Can't slice cheese into less than one peace.");
|
||||
}
|
||||
this.kaasCuts = kaasCuts;
|
||||
this.kaas = new V0x000CA8ˣᴸ[T08PartOctal.LENGTH()][kaasCuts];
|
||||
for (int x=0;x<this.kaas.length;x++) {
|
||||
for (int y=0;y<this.kaas[x].length;y++) {
|
||||
this.kaas[x][y] = new V0x000CA8ˣᴸ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public KlompÅtŌṁKāassGetậl4ˢᴰ(int kaasCuts, BaseIteratorOctal values) {
|
||||
if (kaasCuts < 2) {
|
||||
throw new IllegalArgumentException("Can't slice cheese into less than one peace.");
|
||||
}
|
||||
this.kaasCuts = kaasCuts;
|
||||
this.kaas = new V0x000CA8ˣᴸ[T08PartOctal.LENGTH()][kaasCuts];
|
||||
for (int x=0;x<this.kaas.length;x++) {
|
||||
for (int y=0;y<this.kaas[x].length;y++) {
|
||||
this.kaas[x][y] = new V0x000CA8ˣᴸ(values);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int getKaasCuts() {
|
||||
return kaasCuts;
|
||||
}
|
||||
|
||||
@Override
|
||||
public V0x000CA8ˣᴸ getValue() {
|
||||
return kaas[matrix1][matrix2];
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix1Length() {
|
||||
return T08PartOctal.LENGTH();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix2Length() {
|
||||
return kaasCuts;
|
||||
}
|
||||
|
||||
@Override
|
||||
public KlompÅtŌṁKāassGetậl4ˢᴰ toClone(BaseIteratorOctal values) {
|
||||
return new KlompÅtŌṁKāassGetậl4ˢᴰ(getKaasCuts(), values);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseIteratorOctal iteratorOctalsByClone() {
|
||||
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
|
||||
for (int x=0;x<getMatrix1Length();x++) {
|
||||
setMatrix1(x);
|
||||
for (int y=0;y<getMatrix2Length();y++) {
|
||||
setMatrix2(y);
|
||||
cloneStack.addIterator(getValue().iteratorOctalsByClone());
|
||||
}
|
||||
}
|
||||
return cloneStack;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctalStack;
|
||||
import love.distributedrebirth.numberxd.base2t.part.BãßBȍőnPartʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.typexl.V0x0013B0ˣᴸ;
|
||||
|
||||
/**
|
||||
* Wave getal in x parts.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class WavẽWorstGetậl1ⁿᴰ extends AbstractBaseGetậlMatrix1<WavẽWorstGetậl1ⁿᴰ, V0x0013B0ˣᴸ> {
|
||||
|
||||
private final V0x0013B0ˣᴸ[] values;
|
||||
private final BãßBȍőnPartʸᴰ<?> worstCut;
|
||||
private final int worstCutLength;
|
||||
|
||||
public WavẽWorstGetậl1ⁿᴰ(BãßBȍőnPartʸᴰ<?> worstCut) {
|
||||
this.worstCut = worstCut;
|
||||
this.worstCutLength = worstCut.BãßInstances().length;
|
||||
this.values = new V0x0013B0ˣᴸ[this.worstCutLength];
|
||||
for (int i=0;i<this.values.length;i++) {
|
||||
this.values[i] = new V0x0013B0ˣᴸ();
|
||||
}
|
||||
}
|
||||
|
||||
public WavẽWorstGetậl1ⁿᴰ(BãßBȍőnPartʸᴰ<?> worstCut, BaseIteratorOctal values) {
|
||||
this.worstCut = worstCut;
|
||||
this.worstCutLength = worstCut.BãßInstances().length;
|
||||
this.values = new V0x0013B0ˣᴸ[this.worstCutLength];
|
||||
for (int i=0;i<this.values.length;i++) {
|
||||
this.values[i] = new V0x0013B0ˣᴸ(values);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public V0x0013B0ˣᴸ getValue() {
|
||||
return values[matrix1];
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix1Length() {
|
||||
return worstCutLength;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WavẽWorstGetậl1ⁿᴰ toClone(BaseIteratorOctal values) {
|
||||
return new WavẽWorstGetậl1ⁿᴰ(worstCut, values);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseIteratorOctal iteratorOctalsByClone() {
|
||||
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
|
||||
for (int i=0;i<this.values.length;i++) {
|
||||
cloneStack.addIterator(this.values[i].iteratorOctalsByClone());
|
||||
}
|
||||
return cloneStack;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
package love.distributedrebirth.numberxd;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctalStack;
|
||||
import love.distributedrebirth.numberxd.base2t.part.BãßBȍőnPartʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.typexl.V0x0013B0ˣᴸ;
|
||||
|
||||
/**
|
||||
* Wave channel in y parts.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class WavẽWorstGetậl2ⁿᴰ extends AbstractBaseGetậlMatrix2<WavẽWorstGetậl2ⁿᴰ, V0x0013B0ˣᴸ> {
|
||||
|
||||
private final V0x0013B0ˣᴸ[][] values;
|
||||
private final BãßBȍőnPartʸᴰ<?> worstCut;
|
||||
private final int worstCutLength;
|
||||
private final BãßBȍőnPartʸᴰ<?> worstChannel;
|
||||
private final int worstChannelLength;
|
||||
|
||||
public WavẽWorstGetậl2ⁿᴰ(BãßBȍőnPartʸᴰ<?> worstCut, BãßBȍőnPartʸᴰ<?> worstChannel) {
|
||||
this.worstCut = worstCut;
|
||||
this.worstCutLength = worstCut.BãßInstances().length;
|
||||
this.worstChannel = worstChannel;
|
||||
this.worstChannelLength = worstChannel.BãßInstances().length;
|
||||
this.values = new V0x0013B0ˣᴸ[this.worstCutLength][this.worstChannelLength];
|
||||
for (int x=0;x<this.worstCutLength;x++) {
|
||||
for (int y=0;y<this.worstChannelLength;y++) {
|
||||
this.values[x][y] = new V0x0013B0ˣᴸ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public WavẽWorstGetậl2ⁿᴰ(BãßBȍőnPartʸᴰ<?> worstCut, BãßBȍőnPartʸᴰ<?> worstChannel, BaseIteratorOctal values) {
|
||||
this.worstCut = worstCut;
|
||||
this.worstCutLength = worstCut.BãßInstances().length;
|
||||
this.worstChannel = worstChannel;
|
||||
this.worstChannelLength = worstChannel.BãßInstances().length;
|
||||
this.values = new V0x0013B0ˣᴸ[this.worstCutLength][this.worstChannelLength];
|
||||
for (int x=0;x<this.worstCutLength;x++) {
|
||||
for (int y=0;y<this.worstChannelLength;y++) {
|
||||
this.values[x][y] = new V0x0013B0ˣᴸ(values);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public V0x0013B0ˣᴸ getValue() {
|
||||
return values[matrix1][matrix2];
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix1Length() {
|
||||
return worstCutLength;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMatrix2Length() {
|
||||
return worstChannelLength;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WavẽWorstGetậl2ⁿᴰ toClone(BaseIteratorOctal values) {
|
||||
return new WavẽWorstGetậl2ⁿᴰ(worstCut, worstChannel, values);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseIteratorOctal iteratorOctalsByClone() {
|
||||
BaseIteratorOctalStack cloneStack = new BaseIteratorOctalStack();
|
||||
for (int x=0;x<this.worstCutLength;x++) {
|
||||
for (int y=0;y<this.worstChannelLength;y++) {
|
||||
cloneStack.addIterator(this.values[x][y].iteratorOctalsByClone());
|
||||
}
|
||||
}
|
||||
return cloneStack;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
package love.distributedrebirth.numberxd.alu;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.BaseGetậl;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.BaseNumber;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T08PartOctal;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class ŌctopǔsALU {
|
||||
|
||||
public <T extends BaseGetậl<T,V>,V extends BaseNumber<V>> BaseGetậl<T,V> math(BaseGetậl<T,V> opA, BaseGetậl<T,V> opB) {
|
||||
BaseIteratorOctal bioA = opA.iteratorOctalsByClone();
|
||||
BaseIteratorOctal bioB = opB.iteratorOctalsByClone();
|
||||
BaseIteratorOctalALU bioALU = new BaseIteratorOctalALU(bioA, bioB);
|
||||
BaseGetậl<T,V> result = opA.toClone(bioALU);
|
||||
return result;
|
||||
}
|
||||
|
||||
enum ŌctopǔsMatrixInzet {
|
||||
NONE,
|
||||
MATRIX_X,
|
||||
MATRIX_XY,
|
||||
MATRIX_XYZ,
|
||||
MATRIX_XYZW,
|
||||
MATRIX_DIAMOND,
|
||||
MATRIX_HYPERSTAR
|
||||
}
|
||||
|
||||
enum ŌctopǔsArmZuigerInzet {
|
||||
//OCTAL_1, // T08PartOctal
|
||||
//OCTAL_2, // V006Tixte
|
||||
OCTAL_3, // V009Tyte
|
||||
OCTAL_6, // V018Tord
|
||||
OCTAL_9, // V027Temvig
|
||||
OCTAL_12, // V036Teger
|
||||
OCTAL_14, // V042Traw
|
||||
OCTAL_24, // V072Tong
|
||||
OCTAL_48, // V144Tocta
|
||||
|
||||
OCTAL_48_MATRIX_X,
|
||||
OCTAL_48_MATRIX_XY,
|
||||
OCTAL_48_MATRIX_XYZ,
|
||||
OCTAL_48_MATRIX_XYZW,
|
||||
|
||||
OCTAL_280, // V0x000348ˣᴸ (V042Traw * 20)
|
||||
OCTAL_540, // V0x000654ˣᴸ (V027Temvig * 60)
|
||||
OCTAL_1080, // V0x000CA8ˣᴸ (V0x000654ˣᴸ * 2)
|
||||
OCTAL_1680, // V0x0013B0ˣᴸ (V0x000348ˣᴸ * 6)
|
||||
|
||||
FRACTION_8640_MATRIX, // KlompGetậl4ˢᴰ (V0x000CA8ˣᴸ * 8)
|
||||
|
||||
FRACTION_3, // V009Tyte = digit aka digital hebrew BCD
|
||||
FRACTION_12_MATRIX_X, // Gê̄ldGetậl (V036Teger * 1_ or quad digit
|
||||
|
||||
FRACTION_GROß_MATRIX_X, // GroßGetậl1ⁿᴰ (V144Tocta * 1) or 7/9
|
||||
FRACTION_GROß_MATRIX_XY, // GroßGetậl6ˢᴰ (GroßGetậl1ⁿᴰ * 2 * 6)
|
||||
FRACTION_GROß_MATRIX_XYZ,
|
||||
FRACTION_GROß_MATRIX_XYZW,
|
||||
|
||||
FRACTION_DIAMOND_MATRIX_XY, // GroßGetậlŌṁDiamond1ⁿᴰ
|
||||
FRACTION_DIAMOND_MATRIX_XYZ, // GroßGetậlŌṁDiamond6ˢᴰ
|
||||
FRACTION_HYPERSTAR_MATRIX_XY, // GroßGetậlŌṁHyperStàr1ⁿᴰ
|
||||
FRACTION_HYPERSTAR_MATRIX_XYZ, // GroßGetậlŌṁHyperStàr6ˢᴰ
|
||||
|
||||
OCTAL_482_MATRIX_X, // WavẽWorstGetậl1ⁿᴰ (V0x0013B0ˣᴸ * x)
|
||||
OCTAL_482_MATRIX_XY, // WavẽWorstGetậl2ⁿᴰ (V0x0013B0ˣᴸ * x * y)
|
||||
|
||||
OCTAL_280_MATRIX_X, // WavẽWorstGetậl1ⁿᴰ (V0x000348ˣᴸ * x)
|
||||
OCTAL_280_MATRIX_XY, // WavẽWorstGetậl2ⁿᴰ (V0x000348ˣᴸ * x * y)
|
||||
|
||||
OCTAL_1680_MATRIX_X, // WavẽWorstGetậl1ⁿᴰ (V0x0013B0ˣᴸ * x)
|
||||
OCTAL_1680_MATRIX_XY, // WavẽWorstGetậl2ⁿᴰ (V0x0013B0ˣᴸ * x * y)
|
||||
|
||||
}
|
||||
|
||||
class BaseIteratorOctalALU implements BaseIteratorOctal {
|
||||
|
||||
private final BaseIteratorOctal bioA;
|
||||
private final BaseIteratorOctal bioB;
|
||||
|
||||
public BaseIteratorOctalALU(BaseIteratorOctal bioA, BaseIteratorOctal bioB) {
|
||||
this.bioA = bioA;
|
||||
this.bioB = bioB;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasNext() {
|
||||
return bioA.hasNext();
|
||||
}
|
||||
|
||||
@Override
|
||||
public T08PartOctal next() {
|
||||
T08PartOctal valA = bioA.next();
|
||||
T08PartOctal valB = bioB.next();
|
||||
|
||||
int valANum = valA.BȍőnRangTelNul();
|
||||
int valBNum = valB.BȍőnRangTelNul();
|
||||
|
||||
var valResultNum = valANum + valBNum;
|
||||
|
||||
if (valResultNum > valA.BãßInstances().length) {
|
||||
valResultNum = valA.BãßInstances().length -1;
|
||||
}
|
||||
|
||||
T08PartOctal valResult = T08PartOctal.values()[valResultNum];
|
||||
|
||||
return valResult;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
package love.distributedrebirth.numberxd.alu;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public enum ŌctopǔsBreukOpểrǟtiẻ {
|
||||
|
||||
OP_TEL,
|
||||
AF_TREK
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
package love.distributedrebirth.numberxd.alu;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public enum ŌctopǔsSnijOpểrǟtiẻ {
|
||||
|
||||
OP_TEL,
|
||||
AF_TREK
|
||||
}
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
package love.distributedrebirth.numberxd.base2t;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
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;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T04PartQuad;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T05PartPental;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T06PartSeximal;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T07PartPlanIt;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T08PartOctal;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T09PartNonary;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T10PartDecimal;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T11PartUndecimal;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T12PartUncial;
|
||||
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 = "Base2PartsFactory", purpose = "Factory to access the bases.")
|
||||
@BãßBȍőnPackageInfoʸᴰ(name = "love.distributedrebirth.numberxd")
|
||||
public enum Base2PartsFactory implements DefaultEnumInstanceᴶᴹˣ<Base2PartsFactory, MBeanStoreKeyᴶᴹˣ> {
|
||||
|
||||
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ʸᴰ<MBeanStoreKeyᴶᴹˣ> BBC = BãßBȍőnCoffinOpenʸᴰ.newInstance();
|
||||
public BãßBȍőnCoffinʸᴰ<MBeanStoreKeyᴶᴹˣ> GET_BBC() { return BBC; }
|
||||
|
||||
private Base2PartsFactory() {
|
||||
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;
|
||||
}
|
||||
|
||||
public BãßBȍőnPartʸᴰ<?>[] 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,161 @@
|
|||
package love.distributedrebirth.numberxd.base2t;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.ArrayList;
|
||||
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ȍő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;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnClassInfoʸᴰ(name = "Base2Terminator", purpose = "Terminate from and to classical bytes.")
|
||||
@BãßBȍőnPackageInfoʸᴰ(name = "love.distributedrebirth.numberxd")
|
||||
public enum Base2Terminator implements DefaultEnumInstanceᴶᴹˣ<Base2Terminator,MBeanStoreKeyᴶᴹˣ> {
|
||||
|
||||
INSTANCE;
|
||||
|
||||
private static final int STREAM_EOF = -1;
|
||||
private static final int BLOCK_TONG_SIZE = 9;
|
||||
private static final int BLOCK_TOCTA_SIZE = 18;
|
||||
private static final int SHIFT_8 = 8;
|
||||
private static final int SHIFT_16 = 16;
|
||||
private final GuageCounterᴶᴹˣ readV072TongInvokes;
|
||||
private final GuageCounterᴶᴹˣ readV072TongTypeReads;
|
||||
private final GuageCounterᴶᴹˣ readV072TongByteWrites;
|
||||
private final GuageCounterᴶᴹˣ readV144ToctaInvokes;
|
||||
private final GuageCounterᴶᴹˣ readV144ToctaTypeReads;
|
||||
private final GuageCounterᴶᴹˣ readV144ToctaByteWrites;
|
||||
private final GuageCounterᴶᴹˣ writeV072TongInvokes;
|
||||
private final GuageCounterᴶᴹˣ writeV072TongByteReads;
|
||||
private final GuageCounterᴶᴹˣ writeV072TongTypeWrites;
|
||||
private final GuageCounterᴶᴹˣ writeV144ToctaInvokes;
|
||||
private final GuageCounterᴶᴹˣ writeV144ToctaBytesReads;
|
||||
private final GuageCounterᴶᴹˣ writeV144ToctaTypeWrites;
|
||||
private final BãßBȍőnCoffinOpenʸᴰ<MBeanStoreKeyᴶᴹˣ> BBC = BãßBȍőnCoffinOpenʸᴰ.newInstance();
|
||||
public BãßBȍőnCoffinʸᴰ<MBeanStoreKeyᴶᴹˣ> GET_BBC() { return BBC; }
|
||||
|
||||
private Base2Terminator() {
|
||||
BBC.BOON_INIT(this);
|
||||
BȍőnJmxInit(MBeanStoreKeyᴶᴹˣ.JMX);
|
||||
readV072TongInvokes = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "readV072TongInvokes");
|
||||
readV072TongTypeReads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "readV072TongTypeReads");
|
||||
readV144ToctaInvokes = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "readV144ToctaInvokes");
|
||||
readV072TongByteWrites = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "readV072TongByteWrites");
|
||||
readV144ToctaTypeReads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "readV144ToctaTypeReads");
|
||||
readV144ToctaByteWrites = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "readV144ToctaByteWrites");
|
||||
writeV072TongInvokes = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "writeV072TongInvokes");
|
||||
writeV072TongByteReads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "writeV072TongByteReads");
|
||||
writeV072TongTypeWrites = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "writeV072TongTypeWrites");
|
||||
writeV144ToctaInvokes = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "writeV144ToctaInvokes");
|
||||
writeV144ToctaBytesReads = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "writeV144ToctaBytesReads");
|
||||
writeV144ToctaTypeWrites = BȍőnJmxInitGuageCounter(MBeanStoreKeyᴶᴹˣ.JMX, "writeV144ToctaTypeWrites");
|
||||
}
|
||||
|
||||
public int Bãß2ReadTong(InputStream input, List<V072Tong> output) throws IOException {
|
||||
int totalBytes = 0;
|
||||
byte[] data = new byte[BLOCK_TONG_SIZE];
|
||||
int readDataSize = 0; // per 9 bytes we have 24 octals for one V072Tong number
|
||||
while ((readDataSize = input.read(data, 0, data.length)) != STREAM_EOF) {
|
||||
Bãß2ReadCheckSize(readDataSize, BLOCK_TONG_SIZE);
|
||||
int v0 = data[0] + (data[1] << SHIFT_8) + (data[2] << SHIFT_16);
|
||||
int v1 = data[3] + (data[4] << SHIFT_8) + (data[5] << SHIFT_16);
|
||||
int v2 = data[6] + (data[7] << SHIFT_8) + (data[8] << SHIFT_16);
|
||||
List<T08PartOctal> octals = Bãß2ReadOctals(v0, v1, v2);
|
||||
output.add(new V072Tong(new BaseIteratorOctalAdapter(octals.iterator())));
|
||||
totalBytes += BLOCK_TONG_SIZE;
|
||||
}
|
||||
readV072TongInvokes.increment();
|
||||
readV072TongTypeReads.increment(output.size());
|
||||
readV072TongByteWrites.increment(totalBytes);
|
||||
return totalBytes;
|
||||
}
|
||||
|
||||
public int Bãß2ReadTocta(InputStream input, List<V144Tocta> output) throws IOException {
|
||||
int totalBytes = 0;
|
||||
byte[] data = new byte[BLOCK_TOCTA_SIZE];
|
||||
int readDataSize = 0; // per 18 bytes we have 48 octals for one V144Tocta number
|
||||
while ((readDataSize = input.read(data, 0, data.length)) != STREAM_EOF) {
|
||||
Bãß2ReadCheckSize(readDataSize, BLOCK_TOCTA_SIZE);
|
||||
int v0 = data[0] + (data[1] << SHIFT_8) + (data[2] << SHIFT_16);
|
||||
int v1 = data[3] + (data[4] << SHIFT_8) + (data[5] << SHIFT_16);
|
||||
int v2 = data[6] + (data[7] << SHIFT_8) + (data[8] << SHIFT_16);
|
||||
int v3 = data[9] + (data[10] << SHIFT_8) + (data[11] << SHIFT_16);
|
||||
int v4 = data[12] + (data[13] << SHIFT_8) + (data[14] << SHIFT_16);
|
||||
int v5 = data[15] + (data[16] << SHIFT_8) + (data[17] << SHIFT_16);
|
||||
List<T08PartOctal> octals = Bãß2ReadOctals(v0, v1, v2, v3, v4, v5);
|
||||
output.add(new V144Tocta(new BaseIteratorOctalAdapter(octals.iterator())));
|
||||
totalBytes += BLOCK_TOCTA_SIZE;
|
||||
}
|
||||
readV144ToctaInvokes.increment();
|
||||
readV144ToctaTypeReads.increment(output.size());
|
||||
readV144ToctaByteWrites.increment(totalBytes);
|
||||
return totalBytes;
|
||||
}
|
||||
|
||||
private void Bãß2ReadCheckSize(int readDataSize, int expectedSize) throws IOException {
|
||||
if (readDataSize < expectedSize) {
|
||||
throw new IOException("Expected "+expectedSize+" bytes, got: "+readDataSize);
|
||||
}
|
||||
}
|
||||
|
||||
private List<T08PartOctal> Bãß2ReadOctals(int...values) {
|
||||
List<T08PartOctal> octals = new ArrayList<>();
|
||||
for (int value:values) {
|
||||
T08PartOctal.PART_1.BãßVoorElk(v -> octals.add(T08PartOctal.indexOf(v, value)));
|
||||
}
|
||||
return octals;
|
||||
}
|
||||
|
||||
public int Bãß2WriteTong(List<V072Tong> data, OutputStream output) throws IOException {
|
||||
int totalBytes = Bãß2Write(data, output);
|
||||
writeV072TongInvokes.increment();
|
||||
writeV072TongByteReads.increment(totalBytes);
|
||||
writeV072TongTypeWrites.increment(data.size());
|
||||
return totalBytes;
|
||||
|
||||
}
|
||||
|
||||
public int Bãß2WriteTocta(List<V144Tocta> data, OutputStream output) throws IOException {
|
||||
int totalBytes = Bãß2Write(data, output);
|
||||
writeV144ToctaInvokes.increment();
|
||||
writeV144ToctaBytesReads.increment(totalBytes);
|
||||
writeV144ToctaTypeWrites.increment(data.size());
|
||||
return totalBytes;
|
||||
}
|
||||
|
||||
private <T extends BaseNumber<T>> int Bãß2Write(List<T> data, OutputStream output) throws IOException {
|
||||
int totalBytes = 0; // per 8 octa's is 3 bytes
|
||||
List<T08PartOctal> octals = new ArrayList<>();
|
||||
BaseAppenderOctal appender = new BaseAppenderOctal(octals);
|
||||
data.forEach(v -> v.fillOctalsByClone(appender));
|
||||
Iterator<T08PartOctal> read = octals.iterator();
|
||||
while (read.hasNext()) {
|
||||
int byteTriplet = 0;
|
||||
byteTriplet += read.next().ordinalOf(T08PartOctal.PART_1);
|
||||
byteTriplet += read.next().ordinalOf(T08PartOctal.PART_2);
|
||||
byteTriplet += read.next().ordinalOf(T08PartOctal.PART_3);
|
||||
byteTriplet += read.next().ordinalOf(T08PartOctal.PART_4);
|
||||
byteTriplet += read.next().ordinalOf(T08PartOctal.PART_5);
|
||||
byteTriplet += read.next().ordinalOf(T08PartOctal.PART_6);
|
||||
byteTriplet += read.next().ordinalOf(T08PartOctal.PART_7);
|
||||
byteTriplet += read.next().ordinalOf(T08PartOctal.PART_8);
|
||||
output.write(byteTriplet);
|
||||
output.write(byteTriplet >> SHIFT_8);
|
||||
output.write(byteTriplet >> SHIFT_16);
|
||||
totalBytes += 3;
|
||||
}
|
||||
return totalBytes;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
package love.distributedrebirth.numberxd.base2t;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BaseAppender<T> {
|
||||
|
||||
void add(T value);
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package love.distributedrebirth.numberxd.base2t;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T08PartOctal;
|
||||
|
||||
/**
|
||||
* Appender model for Octals.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public final class BaseAppenderOctal implements BaseAppender<T08PartOctal> {
|
||||
|
||||
private final Collection<T08PartOctal> collection;
|
||||
|
||||
public BaseAppenderOctal(Collection<T08PartOctal> collection) {
|
||||
this.collection = collection;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(T08PartOctal value) {
|
||||
collection.add(value);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package love.distributedrebirth.numberxd.base2t;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V009Tyte;
|
||||
|
||||
/**
|
||||
* Appender model for Tytes.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public final class BaseAppenderTyte implements BaseAppender<V009Tyte> {
|
||||
|
||||
private final Collection<V009Tyte> collection;
|
||||
|
||||
public BaseAppenderTyte(Collection<V009Tyte> collection) {
|
||||
this.collection = collection;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void add(V009Tyte value) {
|
||||
collection.add(value);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package love.distributedrebirth.numberxd.base2t;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T08PartOctal;
|
||||
|
||||
/**
|
||||
* Iterator model for Octals.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BaseIteratorOctal extends Iterator<T08PartOctal> {
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package love.distributedrebirth.numberxd.base2t;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T08PartOctal;
|
||||
|
||||
/**
|
||||
* Iterator model for Octals.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public final class BaseIteratorOctalAdapter implements BaseIteratorOctal {
|
||||
|
||||
private final Iterator<T08PartOctal> iterator;
|
||||
|
||||
public BaseIteratorOctalAdapter(Iterator<T08PartOctal> iterator) {
|
||||
this.iterator = iterator;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasNext() {
|
||||
return iterator.hasNext();
|
||||
}
|
||||
|
||||
@Override
|
||||
public T08PartOctal next() {
|
||||
return iterator.next();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
package love.distributedrebirth.numberxd.base2t;
|
||||
|
||||
import java.util.Stack;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T08PartOctal;
|
||||
|
||||
/**
|
||||
* Stack model for octal iterators.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public final class BaseIteratorOctalStack implements BaseIteratorOctal {
|
||||
|
||||
private final Stack<BaseIteratorOctal> stack = new Stack<>();
|
||||
|
||||
public BaseIteratorOctalStack() {
|
||||
}
|
||||
|
||||
public void addIterator(BaseIteratorOctal iterator) {
|
||||
stack.push(iterator);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasNext() {
|
||||
if (stack.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
if (stack.peek().hasNext()) {
|
||||
return true;
|
||||
}
|
||||
stack.pop();
|
||||
if (stack.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
return stack.peek().hasNext();
|
||||
}
|
||||
|
||||
@Override
|
||||
public T08PartOctal next() {
|
||||
if (stack.isEmpty()) {
|
||||
throw new IllegalStateException("Stack is empty.");
|
||||
}
|
||||
if (stack.peek().hasNext()) {
|
||||
return stack.peek().next();
|
||||
}
|
||||
stack.pop();
|
||||
if (stack.isEmpty()) {
|
||||
throw new IllegalStateException("Stack is empty.");
|
||||
}
|
||||
return stack.peek().next();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package love.distributedrebirth.numberxd.base2t;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V009Tyte;
|
||||
|
||||
/**
|
||||
* Iterator model for Tytes.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public final class BaseIteratorTyte implements Iterator<V009Tyte> {
|
||||
|
||||
private final Iterator<V009Tyte> iterator;
|
||||
|
||||
public BaseIteratorTyte(Iterator<V009Tyte> iterator) {
|
||||
this.iterator = iterator;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasNext() {
|
||||
return iterator.hasNext();
|
||||
}
|
||||
|
||||
@Override
|
||||
public V009Tyte next() {
|
||||
return iterator.next();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
package love.distributedrebirth.numberxd.base2t;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.part.T08PartOctal;
|
||||
|
||||
/**
|
||||
* Octal base based number interface.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BaseNumber<V extends BaseNumber<V>> {
|
||||
|
||||
static float CIRCLE_DEGREE = 360f;
|
||||
|
||||
int BãßBitCount();
|
||||
|
||||
V toClone();
|
||||
|
||||
void fillOctalsByClone(BaseAppenderOctal appender);
|
||||
|
||||
default BaseIteratorOctal iteratorOctalsByClone() {
|
||||
List<T08PartOctal> octals = new ArrayList<>();
|
||||
fillOctalsByClone(new BaseAppenderOctal(octals));
|
||||
return new BaseIteratorOctalAdapter(octals.iterator());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package love.distributedrebirth.numberxd.base2t;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.numberxd.base2t.type.V009Tyte;
|
||||
|
||||
/**
|
||||
* Adds Tyte fill and reference support.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BaseNumberTyte<V extends BaseNumber<V>> extends BaseNumber<V> {
|
||||
|
||||
void fillTytesByReference(BaseAppenderTyte appender);
|
||||
|
||||
default BaseIteratorTyte iteratorTytesByReference() {
|
||||
List<V009Tyte> tytes = new ArrayList<>();
|
||||
fillTytesByReference(new BaseAppenderTyte(tytes));
|
||||
return new BaseIteratorTyte(tytes.iterator());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package love.distributedrebirth.numberxd.base2t;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
/**
|
||||
* Propogate baseXL interface upwards.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BaseNumberTyteˣᴸ<V extends BaseNumber<V>> extends BaseNumberˣᴸ<V>,BaseNumberTyte<V> {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package love.distributedrebirth.numberxd.base2t;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
/**
|
||||
* Marker for XL numbers which needs seperator renderer.
|
||||
*/
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public interface BaseNumberˣᴸ<V extends BaseNumber<V>> extends BaseNumber<V> {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
package love.distributedrebirth.numberxd.base2t.part;
|
||||
|
||||
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ȍőnPartAlt1Infoʸᴰ {
|
||||
|
||||
String name();
|
||||
|
||||
String website();
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package love.distributedrebirth.numberxd.base2t.part;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAnnotationInfoʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnAnnotationInfoʸᴰ(required = {BãßBȍőnPartAlt1Infoʸᴰ.class})
|
||||
public interface BãßBȍőnPartAlt1ʸᴰ<T extends BãßBȍőnPartʸᴰ<T>> extends BãßBȍőnPartʸᴰ<T> {
|
||||
|
||||
default String BȍőnAlt1Value() {
|
||||
return GET_BBC().GET_STR(BãßBȍőnPartKeyʸᴰ.ALT_1_VALUE);
|
||||
}
|
||||
|
||||
default String BãßAlt1Name() {
|
||||
return getClass().getAnnotation(BãßBȍőnPartAlt1Infoʸᴰ.class).name();
|
||||
}
|
||||
|
||||
default String BãßAlt1Website() {
|
||||
return getClass().getAnnotation(BãßBȍőnPartAlt1Infoʸᴰ.class).website();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
package love.distributedrebirth.numberxd.base2t.part;
|
||||
|
||||
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ȍőnPartAlt2Infoʸᴰ {
|
||||
|
||||
String name();
|
||||
|
||||
String website();
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue