Modularize plugin
This commit is contained in:
parent
6e08ed39ed
commit
38092271a3
@ -16,6 +16,7 @@
|
||||
<properties>
|
||||
<revision>1.0.0.0-SNAPSHOT</revision>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<fastutil.version>8.5.11</fastutil.version>
|
||||
</properties>
|
||||
<repositories>
|
||||
<repository>
|
||||
@ -193,7 +194,7 @@
|
||||
<dependency>
|
||||
<groupId>it.unimi.dsi</groupId>
|
||||
<artifactId>fastutil</artifactId>
|
||||
<version>8.5.11</version>
|
||||
<version>${fastutil.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
|
@ -1,4 +1,4 @@
|
||||
package it.cavallium.data.generator;
|
||||
package it.cavallium.data.generator.plugin;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Objects;
|
@ -1,4 +1,4 @@
|
||||
package it.cavallium.data.generator;
|
||||
package it.cavallium.data.generator.plugin;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
@ -1,4 +1,4 @@
|
||||
package it.cavallium.data.generator;
|
||||
package it.cavallium.data.generator.plugin;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
@ -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;
|
@ -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<String> rawVersionsSequence = new ArrayList<>();
|
||||
int versionsCount = 0;
|
||||
IntList versionsSequence = IntStream.range(0, versionsCount).boxed().collect(Collectors.toCollection(IntArrayList::new));
|
||||
Int2ObjectMap<String> versionToName = new Int2ObjectOpenHashMap<>();
|
||||
Object2IntMap<String> nameToVersion = new Object2IntOpenHashMap<>();
|
||||
{
|
||||
@ -149,12 +144,6 @@ public class DataModel {
|
||||
Int2ObjectMap<ParsedVersion> 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<VersionAndType> versionAndBaseType = Lists.<Object>cartesianProduct(versionsSequence, baseTypes).stream()
|
||||
.map(tuple -> new VersionAndType((Integer) tuple.get(0), (String) tuple.get(1)))
|
||||
.toList();
|
||||
|
||||
Int2ObjectMap<Map<String, ParsedClass>> 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);
|
@ -1,4 +1,4 @@
|
||||
package it.cavallium.data.generator;
|
||||
package it.cavallium.data.generator.plugin;
|
||||
|
||||
import java.util.Objects;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package it.cavallium.data.generator;
|
||||
package it.cavallium.data.generator.plugin;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
@ -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;
|
@ -1,4 +1,4 @@
|
||||
package it.cavallium.data.generator;
|
||||
package it.cavallium.data.generator.plugin;
|
||||
|
||||
import java.util.Objects;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package it.cavallium.data.generator;
|
||||
package it.cavallium.data.generator.plugin;
|
||||
|
||||
import java.util.Objects;
|
||||
|
@ -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;
|
@ -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;
|
@ -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 {
|
@ -1,4 +1,4 @@
|
||||
package it.cavallium.data.generator;
|
||||
package it.cavallium.data.generator.plugin;
|
||||
|
||||
import java.util.Objects;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package it.cavallium.data.generator;
|
||||
package it.cavallium.data.generator.plugin;
|
||||
|
||||
import com.squareup.javapoet.CodeBlock;
|
||||
import java.util.List;
|
@ -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;
|
@ -1,4 +1,4 @@
|
||||
package it.cavallium.data.generator;
|
||||
package it.cavallium.data.generator.plugin;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
@ -1,4 +1,4 @@
|
||||
package it.cavallium.data.generator;
|
||||
package it.cavallium.data.generator.plugin;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Paths;
|
@ -1,4 +1,4 @@
|
||||
package it.cavallium.data.generator;
|
||||
package it.cavallium.data.generator.plugin;
|
||||
|
||||
public interface TransformationConfiguration {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package it.cavallium.data.generator;
|
||||
package it.cavallium.data.generator.plugin;
|
||||
|
||||
import java.util.Objects;
|
||||
|
@ -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 {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package it.cavallium.data.generator;
|
||||
package it.cavallium.data.generator.plugin;
|
||||
|
||||
import java.util.Objects;
|
||||
|
14
data-generator-plugin/src/main/java/module-info.java
Normal file
14
data-generator-plugin/src/main/java/module-info.java
Normal file
@ -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;
|
||||
}
|
@ -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 {
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user