Converted to maven

This commit is contained in:
Willem Cazander 2022-02-26 02:45:20 +01:00
parent 0f33a5a77e
commit 9afa43331a
327 changed files with 396 additions and 500 deletions

View 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>

View file

@ -0,0 +1,5 @@
package love.distributedrebirth.basic4d;
public class BasicRuntime {
}

View file

@ -0,0 +1,5 @@
package love.distributedrebirth.basic4d.lang;
public class BasicAnnotationʷᴰ {
}

View file

@ -0,0 +1,5 @@
package love.distributedrebirth.basic4d.lang;
public class BasicClassʷᴰ {
}

View file

@ -0,0 +1,5 @@
package love.distributedrebirth.basic4d.lang;
public class BasicInterfaceʷᴰ {
}

View file

@ -0,0 +1,5 @@
package love.distributedrebirth.basic4d.lang;
public class BasicLanguageModuleʷᴰ {
}

View file

@ -0,0 +1,5 @@
package love.distributedrebirth.basic4d.lang;
public class BasicLanguageʷᴰ {
}

View file

@ -0,0 +1,5 @@
package love.distributedrebirth.basic4d.lang;
public class BasicMethodArgumentʷᴰ {
}

View file

@ -0,0 +1,5 @@
package love.distributedrebirth.basic4d.lang;
public class BasicMethodʷᴰ {
}

View file

@ -0,0 +1,5 @@
package love.distributedrebirth.basic4d.lang;
public class BasicStepCodeʷᴰ {
}

View 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>

View file

@ -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 {};
}

View file

@ -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();
}

View file

@ -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();
}

View file

@ -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);
}
};
}
}

View file

@ -0,0 +1,7 @@
package love.distributedrebirth.bassboonyd;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public interface BãßBȍőnCoffinStoreKeyʸᴰ {
String name();
}

View file

@ -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();
}

View file

@ -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));
}
}

View file

@ -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;
}

View file

@ -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ʸᴰ {
}

View file

@ -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();
}

View file

@ -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();
}
}

View file

@ -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();
}
}

View file

@ -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();
}
*/
}

View file

@ -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];
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}
}

View file

@ -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();
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}

View file

@ -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();
}

View file

@ -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();
}

View file

@ -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;
}
}

View file

@ -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,
;
}

View file

@ -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;
}
}

View 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>

View file

@ -0,0 +1,8 @@
package love.distributedrebirth.imxmi;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
public class ImXmiSetup {
}

View file

@ -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() {
}
}

View file

@ -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;
}
}

View file

@ -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() {
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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);
}

View file

@ -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();
}
}
}

View file

@ -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();
}

View file

@ -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;
}
}

View file

@ -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();
}
}

View file

@ -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();
}
}

View file

@ -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;
}
}

View file

@ -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));
}
}

View file

@ -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;
}
}

View 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>

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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();
}

View file

@ -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();
}

View file

@ -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();
}

View file

@ -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();
}

View file

@ -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();
}

View file

@ -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();
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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();
}
}

View file

@ -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;
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}
}

View file

@ -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
}

View file

@ -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
}

View file

@ -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);
}
}
}

View file

@ -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;
}
}

View file

@ -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);
}

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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> {
}

View file

@ -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();
}
}

View file

@ -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();
}
}

View file

@ -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();
}
}

View file

@ -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());
}
}

View file

@ -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());
}
}

View file

@ -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> {
}

View file

@ -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> {
}

View file

@ -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();
}

View file

@ -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();
}
}

View file

@ -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