From 4447005b43072c6c37bc4a65453b795a6c89536c Mon Sep 17 00:00:00 2001 From: dfsek Date: Sun, 18 Jul 2021 14:10:34 -0700 Subject: [PATCH] refactor TypeToken to TypeKey --- .../addons/biome/pipeline/BiomePipelineAddon.java | 6 +++--- .../dfsek/terra/addons/biome/BiomeConfigType.java | 6 +++--- .../dfsek/terra/addons/flora/FloraConfigType.java | 6 +++--- .../com/dfsek/terra/addons/noise/NoiseAddon.java | 4 ++-- .../com/dfsek/terra/addons/ore/OreConfigType.java | 6 +++--- .../terra/addons/palette/PaletteConfigType.java | 6 +++--- .../com/dfsek/terra/addons/tree/TreeConfigType.java | 6 +++--- .../java/com/dfsek/terra/api/config/ConfigPack.java | 4 ++-- .../java/com/dfsek/terra/api/config/ConfigType.java | 4 ++-- .../terra/api/registry/meta/RegistryHolder.java | 6 +++--- .../util/{TypeToken.java => reflection/TypeKey.java} | 12 +++++++----- 11 files changed, 34 insertions(+), 32 deletions(-) rename common/api/src/main/java/com/dfsek/terra/api/util/{TypeToken.java => reflection/TypeKey.java} (92%) diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java index 6ff34120b..5b68920e9 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java @@ -21,7 +21,7 @@ import com.dfsek.terra.api.addon.annotations.Version; import com.dfsek.terra.api.event.EventListener; import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent; import com.dfsek.terra.api.injection.annotations.Inject; -import com.dfsek.terra.api.util.TypeToken; +import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.api.util.seeded.SeededBuilder; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; @@ -35,8 +35,8 @@ public class BiomePipelineAddon extends TerraAddon implements EventListener { @Inject private TerraPlugin main; - public static final TypeToken> BIOME_PROVIDER_BUILDER_TOKEN = new TypeToken<>(){}; - public static final TypeToken> BIOME_SOURCE_BUILDER_TOKEN = new TypeToken<>(){}; + public static final TypeKey> BIOME_PROVIDER_BUILDER_TOKEN = new TypeKey<>(){}; + public static final TypeKey> BIOME_SOURCE_BUILDER_TOKEN = new TypeKey<>(){}; @Override public void initialize() { diff --git a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeConfigType.java b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeConfigType.java index 99039a55e..75ba8ad31 100644 --- a/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeConfigType.java +++ b/common/addons/config-biome/src/main/java/com/dfsek/terra/addons/biome/BiomeConfigType.java @@ -7,7 +7,7 @@ import com.dfsek.terra.api.config.ConfigFactory; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.ConfigType; import com.dfsek.terra.api.registry.OpenRegistry; -import com.dfsek.terra.api.util.TypeToken; +import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.api.util.seeded.SeededTerraBiome; import java.util.function.Supplier; @@ -16,7 +16,7 @@ public class BiomeConfigType implements ConfigType BIOME_TYPE_TOKEN = new TypeToken<>() {}; + public static final TypeKey BIOME_TYPE_TOKEN = new TypeKey<>() {}; public BiomeConfigType(ConfigPack pack) { this.pack = pack; @@ -34,7 +34,7 @@ public class BiomeConfigType implements ConfigType getTypeClass() { + public TypeKey getTypeClass() { return BIOME_TYPE_TOKEN; } diff --git a/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/FloraConfigType.java b/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/FloraConfigType.java index aa4b2342a..f0e4044c9 100644 --- a/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/FloraConfigType.java +++ b/common/addons/config-flora/src/main/java/com/dfsek/terra/addons/flora/FloraConfigType.java @@ -5,7 +5,7 @@ import com.dfsek.terra.api.config.ConfigFactory; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.ConfigType; import com.dfsek.terra.api.registry.OpenRegistry; -import com.dfsek.terra.api.util.TypeToken; +import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.api.world.Flora; import java.util.function.Supplier; @@ -14,7 +14,7 @@ public class FloraConfigType implements ConfigType { private final FloraFactory factory = new FloraFactory(); private final ConfigPack pack; - public static final TypeToken FLORA_TYPE_TOKEN = new TypeToken<>(){}; + public static final TypeKey FLORA_TYPE_TOKEN = new TypeKey<>(){}; public FloraConfigType(ConfigPack pack) { this.pack = pack; @@ -31,7 +31,7 @@ public class FloraConfigType implements ConfigType { } @Override - public TypeToken getTypeClass() { + public TypeKey getTypeClass() { return FLORA_TYPE_TOKEN; } diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java index 7399cdb67..0f66e6c37 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/NoiseAddon.java @@ -35,7 +35,7 @@ import com.dfsek.terra.api.event.EventListener; import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent; import com.dfsek.terra.api.injection.annotations.Inject; import com.dfsek.terra.api.registry.CheckedRegistry; -import com.dfsek.terra.api.util.TypeToken; +import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.api.util.seeded.SeededNoiseSampler; import java.util.HashMap; @@ -49,7 +49,7 @@ public class NoiseAddon extends TerraAddon implements EventListener { @Inject private TerraPlugin plugin; - public static final TypeToken>> NOISE_SAMPLER_TOKEN = new TypeToken<>() {}; + public static final TypeKey>> NOISE_SAMPLER_TOKEN = new TypeKey<>() {}; @Override public void initialize() { diff --git a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OreConfigType.java b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OreConfigType.java index 7945f9ecf..1a6fd9695 100644 --- a/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OreConfigType.java +++ b/common/addons/config-ore/src/main/java/com/dfsek/terra/addons/ore/OreConfigType.java @@ -6,14 +6,14 @@ import com.dfsek.terra.api.config.ConfigFactory; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.ConfigType; import com.dfsek.terra.api.registry.OpenRegistry; -import com.dfsek.terra.api.util.TypeToken; +import com.dfsek.terra.api.util.reflection.TypeKey; import java.util.function.Supplier; public class OreConfigType implements ConfigType { private final OreFactory factory = new OreFactory(); private final ConfigPack pack; - public static final TypeToken ORE_TYPE_TOKEN = new TypeToken<>(){}; + public static final TypeKey ORE_TYPE_TOKEN = new TypeKey<>(){}; public OreConfigType(ConfigPack pack) { this.pack = pack; @@ -30,7 +30,7 @@ public class OreConfigType implements ConfigType { } @Override - public TypeToken getTypeClass() { + public TypeKey getTypeClass() { return ORE_TYPE_TOKEN; } diff --git a/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteConfigType.java b/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteConfigType.java index f7980e4e7..49c77e386 100644 --- a/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteConfigType.java +++ b/common/addons/config-palette/src/main/java/com/dfsek/terra/addons/palette/PaletteConfigType.java @@ -8,7 +8,7 @@ import com.dfsek.terra.api.config.ConfigFactory; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.ConfigType; import com.dfsek.terra.api.registry.OpenRegistry; -import com.dfsek.terra.api.util.TypeToken; +import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.api.world.generator.Palette; import java.util.function.Supplier; @@ -18,7 +18,7 @@ public class PaletteConfigType implements ConfigType { private final ConfigPack pack; private final TerraPlugin main; - public static final TypeToken PALETTE_TYPE_TOKEN = new TypeToken<>(){}; + public static final TypeKey PALETTE_TYPE_TOKEN = new TypeKey<>(){}; public PaletteConfigType(ConfigPack pack, TerraPlugin main) { this.pack = pack; @@ -36,7 +36,7 @@ public class PaletteConfigType implements ConfigType { } @Override - public TypeToken getTypeClass() { + public TypeKey getTypeClass() { return PALETTE_TYPE_TOKEN; } diff --git a/common/addons/config-tree/src/main/java/com/dfsek/terra/addons/tree/TreeConfigType.java b/common/addons/config-tree/src/main/java/com/dfsek/terra/addons/tree/TreeConfigType.java index 4a44a9e19..b6da598d1 100644 --- a/common/addons/config-tree/src/main/java/com/dfsek/terra/addons/tree/TreeConfigType.java +++ b/common/addons/config-tree/src/main/java/com/dfsek/terra/addons/tree/TreeConfigType.java @@ -5,7 +5,7 @@ import com.dfsek.terra.api.config.ConfigFactory; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.ConfigType; import com.dfsek.terra.api.registry.OpenRegistry; -import com.dfsek.terra.api.util.TypeToken; +import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.api.world.Tree; import java.util.function.Supplier; @@ -14,7 +14,7 @@ public class TreeConfigType implements ConfigType { private final TreeFactory factory = new TreeFactory(); private final ConfigPack pack; - public static final TypeToken TREE_TYPE_TOKEN = new TypeToken<>(){}; + public static final TypeKey TREE_TYPE_TOKEN = new TypeKey<>(){}; public TreeConfigType(ConfigPack pack) { this.pack = pack; } @@ -30,7 +30,7 @@ public class TreeConfigType implements ConfigType { } @Override - public TypeToken getTypeClass() { + public TypeKey getTypeClass() { return TREE_TYPE_TOKEN; } diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java index 1d6c029f5..29262444c 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java +++ b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigPack.java @@ -6,7 +6,7 @@ import com.dfsek.terra.api.registry.meta.RegistryFactory; import com.dfsek.terra.api.registry.meta.RegistryHolder; import com.dfsek.terra.api.tectonic.LoaderHolder; import com.dfsek.terra.api.tectonic.LoaderRegistrar; -import com.dfsek.terra.api.util.TypeToken; +import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.api.util.seeded.SeededBuilder; import com.dfsek.terra.api.world.TerraWorld; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; @@ -26,7 +26,7 @@ public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolde return getOrCreateRegistry((Type) clazz); } - default CheckedRegistry getOrCreateRegistry(TypeToken type) { + default CheckedRegistry getOrCreateRegistry(TypeKey type) { return getOrCreateRegistry(type.getType()); } diff --git a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigType.java b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigType.java index 6bfea99d7..482bfc8d4 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/config/ConfigType.java +++ b/common/api/src/main/java/com/dfsek/terra/api/config/ConfigType.java @@ -2,7 +2,7 @@ package com.dfsek.terra.api.config; import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.registry.OpenRegistry; -import com.dfsek.terra.api.util.TypeToken; +import com.dfsek.terra.api.util.reflection.TypeKey; import java.util.function.Supplier; @@ -11,7 +11,7 @@ public interface ConfigType { ConfigFactory getFactory(); - TypeToken getTypeClass(); + TypeKey getTypeClass(); Supplier> registrySupplier(); } diff --git a/common/api/src/main/java/com/dfsek/terra/api/registry/meta/RegistryHolder.java b/common/api/src/main/java/com/dfsek/terra/api/registry/meta/RegistryHolder.java index f42e91927..e1e839a81 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/registry/meta/RegistryHolder.java +++ b/common/api/src/main/java/com/dfsek/terra/api/registry/meta/RegistryHolder.java @@ -2,7 +2,7 @@ package com.dfsek.terra.api.registry.meta; import com.dfsek.terra.api.registry.CheckedRegistry; import com.dfsek.terra.api.registry.Registry; -import com.dfsek.terra.api.util.TypeToken; +import com.dfsek.terra.api.util.reflection.TypeKey; import java.lang.reflect.Type; @@ -11,7 +11,7 @@ public interface RegistryHolder { return getRegistry((Type) clazz); } - default Registry getRegistry(TypeToken type) { + default Registry getRegistry(TypeKey type) { return getRegistry(type.getType()); } @@ -21,7 +21,7 @@ public interface RegistryHolder { return getCheckedRegistry((Type) clazz); } - default CheckedRegistry getCheckedRegistry(TypeToken type) throws IllegalStateException { + default CheckedRegistry getCheckedRegistry(TypeKey type) throws IllegalStateException { return getCheckedRegistry(type.getType()); } diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/TypeToken.java b/common/api/src/main/java/com/dfsek/terra/api/util/reflection/TypeKey.java similarity index 92% rename from common/api/src/main/java/com/dfsek/terra/api/util/TypeToken.java rename to common/api/src/main/java/com/dfsek/terra/api/util/reflection/TypeKey.java index 3fa3114c6..45125ed3d 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/TypeToken.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/reflection/TypeKey.java @@ -1,16 +1,18 @@ -package com.dfsek.terra.api.util; +package com.dfsek.terra.api.util.reflection; + +import com.dfsek.terra.api.util.ReflectionUtil; import java.lang.reflect.*; import java.util.Arrays; import java.util.Objects; -public class TypeToken { +public class TypeKey { final Class rawType; final Type type; final int hashCode; @SuppressWarnings("unchecked") - protected TypeToken() { + protected TypeKey() { this.type = getSuperclassTypeParameter(getClass()); this.rawType = (Class) ReflectionUtil.getRawType(type); this.hashCode = type.hashCode(); @@ -47,8 +49,8 @@ public class TypeToken { @Override public final boolean equals(Object o) { - return o instanceof TypeToken - && equals(type, ((TypeToken) o).type); + return o instanceof TypeKey + && equals(type, ((TypeKey) o).type); } @Override