diff --git a/src/main/java/it/cavallium/data/generator/ClassConfiguration.java b/src/main/java/it/cavallium/data/generator/ClassConfiguration.java new file mode 100644 index 0000000..fab5d0e --- /dev/null +++ b/src/main/java/it/cavallium/data/generator/ClassConfiguration.java @@ -0,0 +1,18 @@ +package it.cavallium.data.generator; + +import java.util.LinkedHashMap; + +public class ClassConfiguration { + + public String stringRepresenter; + + public LinkedHashMap data; + + public String getStringRepresenter() { + return stringRepresenter; + } + + public LinkedHashMap getData() { + return data; + } +} diff --git a/src/main/java/it/cavallium/data/generator/CustomTypesConfiguration.java b/src/main/java/it/cavallium/data/generator/CustomTypesConfiguration.java new file mode 100644 index 0000000..7e66812 --- /dev/null +++ b/src/main/java/it/cavallium/data/generator/CustomTypesConfiguration.java @@ -0,0 +1,7 @@ +package it.cavallium.data.generator; + +public class CustomTypesConfiguration { + + public String javaClass; + public String serializer; +} diff --git a/src/main/java/it/cavallium/data/generator/DetailsConfiguration.java b/src/main/java/it/cavallium/data/generator/DetailsConfiguration.java new file mode 100644 index 0000000..9cf54d2 --- /dev/null +++ b/src/main/java/it/cavallium/data/generator/DetailsConfiguration.java @@ -0,0 +1,6 @@ +package it.cavallium.data.generator; + +public class DetailsConfiguration { + + public String changelog; +} diff --git a/src/main/java/it/cavallium/data/generator/InterfaceDataConfiguration.java b/src/main/java/it/cavallium/data/generator/InterfaceDataConfiguration.java new file mode 100644 index 0000000..38a7e9f --- /dev/null +++ b/src/main/java/it/cavallium/data/generator/InterfaceDataConfiguration.java @@ -0,0 +1,13 @@ +package it.cavallium.data.generator; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +public class InterfaceDataConfiguration { + + public Set extendInterfaces = new HashSet<>(); + public Map commonData = new HashMap<>(); + public Map commonGetters = new HashMap<>(); +} diff --git a/src/main/java/it/cavallium/data/generator/MoveDataConfiguration.java b/src/main/java/it/cavallium/data/generator/MoveDataConfiguration.java new file mode 100644 index 0000000..83b6f8a --- /dev/null +++ b/src/main/java/it/cavallium/data/generator/MoveDataConfiguration.java @@ -0,0 +1,18 @@ +package it.cavallium.data.generator; + +public class MoveDataConfiguration implements TransformationConfiguration { + + public String transformClass; + public String from; + public String to; + + @Override + public String getTransformClass() { + return transformClass; + } + + @Override + public String getTransformName() { + return "move-data"; + } +} diff --git a/src/main/java/it/cavallium/data/generator/NewDataConfiguration.java b/src/main/java/it/cavallium/data/generator/NewDataConfiguration.java new file mode 100644 index 0000000..74bb7f5 --- /dev/null +++ b/src/main/java/it/cavallium/data/generator/NewDataConfiguration.java @@ -0,0 +1,18 @@ +package it.cavallium.data.generator; + +public class NewDataConfiguration implements TransformationConfiguration { + + public String transformClass; + public String to; + public String initializer; + + @Override + public String getTransformClass() { + return transformClass; + } + + @Override + public String getTransformName() { + return "new-data"; + } +} diff --git a/src/main/java/it/cavallium/data/generator/RemoveDataConfiguration.java b/src/main/java/it/cavallium/data/generator/RemoveDataConfiguration.java new file mode 100644 index 0000000..33ac612 --- /dev/null +++ b/src/main/java/it/cavallium/data/generator/RemoveDataConfiguration.java @@ -0,0 +1,17 @@ +package it.cavallium.data.generator; + +public class RemoveDataConfiguration implements TransformationConfiguration { + + public String transformClass; + public String from; + + @Override + public String getTransformClass() { + return transformClass; + } + + @Override + public String getTransformName() { + return "remove-data"; + } +} diff --git a/src/main/java/it/cavallium/data/generator/SourcesGenerator.java b/src/main/java/it/cavallium/data/generator/SourcesGenerator.java index e90bf6c..ffc3a39 100644 --- a/src/main/java/it/cavallium/data/generator/SourcesGenerator.java +++ b/src/main/java/it/cavallium/data/generator/SourcesGenerator.java @@ -61,15 +61,6 @@ import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.yaml.snakeyaml.Yaml; -import it.cavallium.data.generator.SourcesGeneratorConfiguration.ClassConfiguration; -import it.cavallium.data.generator.SourcesGeneratorConfiguration.CustomTypesConfiguration; -import it.cavallium.data.generator.SourcesGeneratorConfiguration.InterfaceDataConfiguration; -import it.cavallium.data.generator.SourcesGeneratorConfiguration.MoveDataConfiguration; -import it.cavallium.data.generator.SourcesGeneratorConfiguration.NewDataConfiguration; -import it.cavallium.data.generator.SourcesGeneratorConfiguration.RemoveDataConfiguration; -import it.cavallium.data.generator.SourcesGeneratorConfiguration.UpgradeDataConfiguration; -import it.cavallium.data.generator.SourcesGeneratorConfiguration.VersionConfiguration; -import it.cavallium.data.generator.SourcesGeneratorConfiguration.VersionTransformation; @SuppressWarnings({"SameParameterValue", "unused"}) public class SourcesGenerator { diff --git a/src/main/java/it/cavallium/data/generator/SourcesGeneratorConfiguration.java b/src/main/java/it/cavallium/data/generator/SourcesGeneratorConfiguration.java index 4cefa34..b9ec745 100644 --- a/src/main/java/it/cavallium/data/generator/SourcesGeneratorConfiguration.java +++ b/src/main/java/it/cavallium/data/generator/SourcesGeneratorConfiguration.java @@ -1,11 +1,6 @@ package it.cavallium.data.generator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; -import java.util.Set; public class SourcesGeneratorConfiguration { public String currentVersion; @@ -13,167 +8,4 @@ public class SourcesGeneratorConfiguration { public Map versions; public SourcesGeneratorConfigurationRefs refs; - public static class InterfaceDataConfiguration { - public Set extendInterfaces = new HashSet<>(); - public Map commonData = new HashMap<>(); - public Map commonGetters = new HashMap<>(); - } - - public static class VersionConfiguration { - public DetailsConfiguration details; - public Map> superTypes; - public Map customTypes; - public Map classes; - public List transformations; - } - - - public static class DetailsConfiguration { - public String changelog; - } - - public static class ClassConfiguration { - public String stringRepresenter; - - public LinkedHashMap data; - - public String getStringRepresenter() { - return stringRepresenter; - } - - public LinkedHashMap getData() { - return data; - } - } - - public static class VersionTransformation { - public MoveDataConfiguration moveData = null; - public RemoveDataConfiguration removeData = null; - public UpgradeDataConfiguration upgradeData = null; - public NewDataConfiguration newData = null; - - void checkConsistency() { - int nonNullValues = 0; - if (moveData != null) nonNullValues++; - if (removeData != null) nonNullValues++; - if (upgradeData != null) nonNullValues++; - if (newData != null) nonNullValues++; - if (nonNullValues != 1) { - throw new IllegalArgumentException("Please fill only one transformation!"); - } - } - - public boolean isForClass(String type) { - checkConsistency(); - if (moveData != null) { - return moveData.transformClass.equals(type); - } - if (removeData != null) { - return removeData.transformClass.equals(type); - } - if (upgradeData != null) { - return upgradeData.transformClass.equals(type); - } - if (newData != null) { - return newData.transformClass.equals(type); - } - throw new IllegalStateException(); - } - - public TransformationConfiguration getTransformation() { - checkConsistency(); - if (moveData != null) { - return moveData; - } - if (removeData != null) { - return removeData; - } - if (upgradeData != null) { - return upgradeData; - } - if (newData != null) { - return newData; - } - throw new IllegalStateException(); - } - } - - - public interface TransformationConfiguration { - String getTransformClass(); - - String getTransformName(); - } - - public static class MoveDataConfiguration implements TransformationConfiguration { - - public String transformClass; - public String from; - public String to; - - @Override - public String getTransformClass() { - return transformClass; - } - - @Override - public String getTransformName() { - return "move-data"; - } - } - - public static class RemoveDataConfiguration implements TransformationConfiguration { - - public String transformClass; - public String from; - - @Override - public String getTransformClass() { - return transformClass; - } - - @Override - public String getTransformName() { - return "remove-data"; - } - } - - public static class UpgradeDataConfiguration implements TransformationConfiguration { - - public String transformClass; - public String from; - public String upgrader; - - @Override - public String getTransformClass() { - return transformClass; - } - - @Override - public String getTransformName() { - return "upgrade-data"; - } - } - - public static class NewDataConfiguration implements TransformationConfiguration { - - public String transformClass; - public String to; - public String initializer; - - @Override - public String getTransformClass() { - return transformClass; - } - - @Override - public String getTransformName() { - return "new-data"; - } - } - - public static class CustomTypesConfiguration { - public String javaClass; - public String serializer; - } } diff --git a/src/main/java/it/cavallium/data/generator/SourcesGeneratorConfigurationRefs.java b/src/main/java/it/cavallium/data/generator/SourcesGeneratorConfigurationRefs.java index ad79193..707a044 100644 --- a/src/main/java/it/cavallium/data/generator/SourcesGeneratorConfigurationRefs.java +++ b/src/main/java/it/cavallium/data/generator/SourcesGeneratorConfigurationRefs.java @@ -1,8 +1,5 @@ package it.cavallium.data.generator; -import it.cavallium.data.generator.SourcesGeneratorConfiguration.ClassConfiguration; -import it.cavallium.data.generator.SourcesGeneratorConfiguration.CustomTypesConfiguration; -import it.cavallium.data.generator.SourcesGeneratorConfiguration.VersionTransformation; import java.util.List; import java.util.Map; import java.util.Set; diff --git a/src/main/java/it/cavallium/data/generator/TransformationConfiguration.java b/src/main/java/it/cavallium/data/generator/TransformationConfiguration.java new file mode 100644 index 0000000..5413633 --- /dev/null +++ b/src/main/java/it/cavallium/data/generator/TransformationConfiguration.java @@ -0,0 +1,8 @@ +package it.cavallium.data.generator; + +public interface TransformationConfiguration { + + String getTransformClass(); + + String getTransformName(); +} diff --git a/src/main/java/it/cavallium/data/generator/UpgradeDataConfiguration.java b/src/main/java/it/cavallium/data/generator/UpgradeDataConfiguration.java new file mode 100644 index 0000000..6f02595 --- /dev/null +++ b/src/main/java/it/cavallium/data/generator/UpgradeDataConfiguration.java @@ -0,0 +1,18 @@ +package it.cavallium.data.generator; + +public class UpgradeDataConfiguration implements TransformationConfiguration { + + public String transformClass; + public String from; + public String upgrader; + + @Override + public String getTransformClass() { + return transformClass; + } + + @Override + public String getTransformName() { + return "upgrade-data"; + } +} diff --git a/src/main/java/it/cavallium/data/generator/VersionConfiguration.java b/src/main/java/it/cavallium/data/generator/VersionConfiguration.java new file mode 100644 index 0000000..cb6c4ef --- /dev/null +++ b/src/main/java/it/cavallium/data/generator/VersionConfiguration.java @@ -0,0 +1,14 @@ +package it.cavallium.data.generator; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +public class VersionConfiguration { + + public DetailsConfiguration details; + public Map> superTypes; + public Map customTypes; + public Map classes; + public List transformations; +} diff --git a/src/main/java/it/cavallium/data/generator/VersionTransformation.java b/src/main/java/it/cavallium/data/generator/VersionTransformation.java new file mode 100644 index 0000000..f4f465a --- /dev/null +++ b/src/main/java/it/cavallium/data/generator/VersionTransformation.java @@ -0,0 +1,62 @@ +package it.cavallium.data.generator; + +public class VersionTransformation { + + public MoveDataConfiguration moveData = null; + public RemoveDataConfiguration removeData = null; + public UpgradeDataConfiguration upgradeData = null; + public NewDataConfiguration newData = null; + + void checkConsistency() { + int nonNullValues = 0; + if (moveData != null) { + nonNullValues++; + } + if (removeData != null) { + nonNullValues++; + } + if (upgradeData != null) { + nonNullValues++; + } + if (newData != null) { + nonNullValues++; + } + if (nonNullValues != 1) { + throw new IllegalArgumentException("Please fill only one transformation!"); + } + } + + public boolean isForClass(String type) { + checkConsistency(); + if (moveData != null) { + return moveData.transformClass.equals(type); + } + if (removeData != null) { + return removeData.transformClass.equals(type); + } + if (upgradeData != null) { + return upgradeData.transformClass.equals(type); + } + if (newData != null) { + return newData.transformClass.equals(type); + } + throw new IllegalStateException(); + } + + public TransformationConfiguration getTransformation() { + checkConsistency(); + if (moveData != null) { + return moveData; + } + if (removeData != null) { + return removeData; + } + if (upgradeData != null) { + return upgradeData; + } + if (newData != null) { + return newData; + } + throw new IllegalStateException(); + } +}