diff --git a/data-generator-plugin/pom.xml b/data-generator-plugin/pom.xml index 3eec0b1..aa516fe 100644 --- a/data-generator-plugin/pom.xml +++ b/data-generator-plugin/pom.xml @@ -16,6 +16,7 @@ 1.0.0.0-SNAPSHOT UTF-8 + 8.5.11 @@ -193,7 +194,7 @@ it.unimi.dsi fastutil - 8.5.11 + ${fastutil.version} org.apache.maven diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/ClassConfiguration.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ClassConfiguration.java similarity index 95% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/ClassConfiguration.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ClassConfiguration.java index 7926f3a..dfc2379 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/ClassConfiguration.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ClassConfiguration.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import java.util.LinkedHashMap; import java.util.Objects; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/ComputedVersion.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ComputedVersion.java similarity index 97% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/ComputedVersion.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ComputedVersion.java index 716fd4e..92afec9 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/ComputedVersion.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ComputedVersion.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import java.util.List; import java.util.Map; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/ConfigUtils.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ConfigUtils.java similarity index 93% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/ConfigUtils.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ConfigUtils.java index 5024484..1702dab 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/ConfigUtils.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ConfigUtils.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import java.util.Collection; import java.util.Map; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/CustomTypesConfiguration.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/CustomTypesConfiguration.java similarity index 97% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/CustomTypesConfiguration.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/CustomTypesConfiguration.java index 86155f8..7cd1812 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/CustomTypesConfiguration.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/CustomTypesConfiguration.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import com.squareup.javapoet.ClassName; import com.squareup.javapoet.ParameterizedTypeName; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/DataModel.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/DataModel.java similarity index 95% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/DataModel.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/DataModel.java index 78dcd0a..e34a65e 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/DataModel.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/DataModel.java @@ -1,12 +1,9 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import static java.util.Objects.requireNonNull; -import com.google.common.collect.Lists; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; -import it.unimi.dsi.fastutil.ints.IntArrayList; -import it.unimi.dsi.fastutil.ints.IntList; import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import it.unimi.dsi.fastutil.objects.ObjectCollection; @@ -20,7 +17,6 @@ import java.util.Set; import java.util.function.Function; import java.util.stream.Collector; import java.util.stream.Collectors; -import java.util.stream.IntStream; import java.util.stream.Stream; import org.jetbrains.annotations.Nullable; @@ -98,7 +94,6 @@ public class DataModel { // Build versions sequence List rawVersionsSequence = new ArrayList<>(); int versionsCount = 0; - IntList versionsSequence = IntStream.range(0, versionsCount).boxed().collect(Collectors.toCollection(IntArrayList::new)); Int2ObjectMap versionToName = new Int2ObjectOpenHashMap<>(); Object2IntMap nameToVersion = new Object2IntOpenHashMap<>(); { @@ -149,12 +144,6 @@ public class DataModel { Int2ObjectMap versions = new Int2ObjectOpenHashMap<>(); rawVersions.forEach((k, v) -> versions.put(nameToVersion.getInt(k), new ParsedVersion(v))); - // Compute the cartesian product of version * base type - record VersionAndType(int version, String type) {} - List versionAndBaseType = Lists.cartesianProduct(versionsSequence, baseTypes).stream() - .map(tuple -> new VersionAndType((Integer) tuple.get(0), (String) tuple.get(1))) - .toList(); - Int2ObjectMap> computedClassConfig = new Int2ObjectOpenHashMap<>(); for (int versionIndex = 0; versionIndex < versionsCount; versionIndex++) { if (versionIndex == 0) { @@ -246,7 +235,7 @@ public class DataModel { } } default -> throw new IllegalArgumentException("Unknown transform name: "+ transformName); - }; + } } computedClassConfig.put(versionIndex, newVersionConfiguration); diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/DetailsConfiguration.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/DetailsConfiguration.java similarity index 91% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/DetailsConfiguration.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/DetailsConfiguration.java index f57fd48..47e6e10 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/DetailsConfiguration.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/DetailsConfiguration.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import java.util.Objects; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/InterfaceDataConfiguration.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/InterfaceDataConfiguration.java similarity index 95% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/InterfaceDataConfiguration.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/InterfaceDataConfiguration.java index 78e642a..db22bc7 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/InterfaceDataConfiguration.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/InterfaceDataConfiguration.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import java.util.HashMap; import java.util.HashSet; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/MavenPlugin.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/MavenPlugin.java similarity index 95% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/MavenPlugin.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/MavenPlugin.java index 10e5b8a..e2e5bf1 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/MavenPlugin.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/MavenPlugin.java @@ -1,9 +1,8 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import java.io.File; import java.io.IOException; import java.nio.file.Path; -import org.apache.commons.io.FileUtils; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/MoveDataConfiguration.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/MoveDataConfiguration.java similarity index 96% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/MoveDataConfiguration.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/MoveDataConfiguration.java index 927d678..e0f9ca5 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/MoveDataConfiguration.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/MoveDataConfiguration.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import java.util.Objects; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/NewDataConfiguration.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/NewDataConfiguration.java similarity index 96% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/NewDataConfiguration.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/NewDataConfiguration.java index 8990d70..d62155f 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/NewDataConfiguration.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/NewDataConfiguration.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import java.util.Objects; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/ParsedClass.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ParsedClass.java similarity index 93% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/ParsedClass.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ParsedClass.java index b13d33a..4078770 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/ParsedClass.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ParsedClass.java @@ -1,6 +1,6 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; -import static it.cavallium.data.generator.DataModel.fixType; +import static it.cavallium.data.generator.plugin.DataModel.fixType; import java.util.LinkedHashMap; import java.util.Map; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/ParsedInterface.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ParsedInterface.java similarity index 92% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/ParsedInterface.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ParsedInterface.java index bd41315..7e4afaf 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/ParsedInterface.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ParsedInterface.java @@ -1,6 +1,6 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; -import static it.cavallium.data.generator.DataModel.fixType; +import static it.cavallium.data.generator.plugin.DataModel.fixType; import java.util.HashMap; import java.util.HashSet; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/ParsedVersion.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ParsedVersion.java similarity index 91% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/ParsedVersion.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ParsedVersion.java index 32cc3af..ade98c6 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/ParsedVersion.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ParsedVersion.java @@ -1,8 +1,6 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.Objects; public class ParsedVersion { diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/RemoveDataConfiguration.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/RemoveDataConfiguration.java similarity index 96% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/RemoveDataConfiguration.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/RemoveDataConfiguration.java index 4d7a937..1b33fa4 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/RemoveDataConfiguration.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/RemoveDataConfiguration.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import java.util.Objects; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/SerializeCodeBlockGenerator.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/SerializeCodeBlockGenerator.java similarity index 96% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/SerializeCodeBlockGenerator.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/SerializeCodeBlockGenerator.java index b9a631b..c7a1d79 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/SerializeCodeBlockGenerator.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/SerializeCodeBlockGenerator.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import com.squareup.javapoet.CodeBlock; import java.util.List; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/SourcesGenerator.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/SourcesGenerator.java similarity index 99% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/SourcesGenerator.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/SourcesGenerator.java index f69f8e5..6feb784 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/SourcesGenerator.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/SourcesGenerator.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import static java.nio.file.StandardOpenOption.*; @@ -16,6 +16,10 @@ import com.squareup.javapoet.TypeSpec.Builder; import com.squareup.javapoet.TypeVariableName; import com.squareup.javapoet.WildcardTypeName; import io.soabase.recordbuilder.core.RecordBuilder; +import it.cavallium.data.generator.CommonField; +import it.cavallium.data.generator.DataInitializer; +import it.cavallium.data.generator.DataSerializer; +import it.cavallium.data.generator.DataUpgrader; import it.cavallium.data.generator.nativedata.IGenericNullable; import it.cavallium.data.generator.nativedata.Int52Serializer; import it.cavallium.data.generator.nativedata.StringSerializer; @@ -41,7 +45,6 @@ import java.lang.reflect.Array; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -56,7 +59,6 @@ import java.util.Optional; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicReference; import java.util.function.Supplier; import java.util.stream.Collectors; import java.util.stream.Stream; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/SourcesGeneratorConfiguration.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/SourcesGeneratorConfiguration.java similarity index 97% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/SourcesGeneratorConfiguration.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/SourcesGeneratorConfiguration.java index e4560fc..7452f5a 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/SourcesGeneratorConfiguration.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/SourcesGeneratorConfiguration.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import java.util.Map; import java.util.Objects; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/Standalone.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/Standalone.java similarity index 88% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/Standalone.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/Standalone.java index 0ed2b16..04816fe 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/Standalone.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/Standalone.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import java.io.IOException; import java.nio.file.Paths; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/TransformationConfiguration.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/TransformationConfiguration.java similarity index 71% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/TransformationConfiguration.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/TransformationConfiguration.java index 5413633..4a5eb51 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/TransformationConfiguration.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/TransformationConfiguration.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; public interface TransformationConfiguration { diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/UpgradeDataConfiguration.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/UpgradeDataConfiguration.java similarity index 96% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/UpgradeDataConfiguration.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/UpgradeDataConfiguration.java index ab282ed..322ec91 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/UpgradeDataConfiguration.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/UpgradeDataConfiguration.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import java.util.Objects; diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/VersionConfiguration.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/VersionConfiguration.java similarity index 90% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/VersionConfiguration.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/VersionConfiguration.java index bba6999..d22d2b5 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/VersionConfiguration.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/VersionConfiguration.java @@ -1,9 +1,7 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import java.util.List; -import java.util.Map; import java.util.Objects; -import java.util.Set; public class VersionConfiguration { diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/VersionTransformation.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/VersionTransformation.java similarity index 98% rename from data-generator-plugin/src/main/java/it/cavallium/data/generator/VersionTransformation.java rename to data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/VersionTransformation.java index 6e40f14..a87d7b2 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/VersionTransformation.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/VersionTransformation.java @@ -1,4 +1,4 @@ -package it.cavallium.data.generator; +package it.cavallium.data.generator.plugin; import java.util.Objects; diff --git a/data-generator-plugin/src/main/java/module-info.java b/data-generator-plugin/src/main/java/module-info.java new file mode 100644 index 0000000..bebb62a --- /dev/null +++ b/data-generator-plugin/src/main/java/module-info.java @@ -0,0 +1,14 @@ +module data.generator.plugin { + requires com.squareup.javapoet; + requires org.jetbrains.annotations; + requires maven.plugin.annotations; + requires maven.plugin.api; + requires maven.core; + requires io.soabase.recordbuilder.core; + requires data.generator.runtime; + requires java.compiler; + requires org.slf4j; + requires org.yaml.snakeyaml; + requires it.unimi.dsi.fastutil.core; + exports it.cavallium.data.generator.plugin; +} \ No newline at end of file diff --git a/data-generator-plugin/src/test/java/it/cavallium/data/generator/TestGenerator.java b/data-generator-plugin/src/test/java/it/cavallium/data/generator/TestGenerator.java index e8ef290..2475c77 100644 --- a/data-generator-plugin/src/test/java/it/cavallium/data/generator/TestGenerator.java +++ b/data-generator-plugin/src/test/java/it/cavallium/data/generator/TestGenerator.java @@ -1,9 +1,9 @@ package it.cavallium.data.generator; +import it.cavallium.data.generator.plugin.SourcesGenerator; import java.io.IOException; import java.nio.file.Files; import org.apache.commons.io.FileUtils; -import org.junit.jupiter.api.Test; public class TestGenerator {