diff --git a/build-parent/generator/pom.xml b/build-parent/generator/pom.xml
index b2743f4d5d..eb9e47283e 100644
--- a/build-parent/generator/pom.xml
+++ b/build-parent/generator/pom.xml
@@ -62,65 +62,18 @@
com.speedment.generator
- generator-core
-
-
-
-
-
\ No newline at end of file
diff --git a/build-parent/maven-plugin/src/main/java/com/speedment/maven/abstractmojo/AbstractClearMojo.java b/build-parent/maven-plugin/src/main/java/com/speedment/maven/abstractmojo/AbstractClearMojo.java
index ec816f8132..001e815856 100644
--- a/build-parent/maven-plugin/src/main/java/com/speedment/maven/abstractmojo/AbstractClearMojo.java
+++ b/build-parent/maven-plugin/src/main/java/com/speedment/maven/abstractmojo/AbstractClearMojo.java
@@ -16,7 +16,7 @@
*/
package com.speedment.maven.abstractmojo;
-import com.speedment.generator.core.translator.TranslatorManager;
+import com.speedment.generator.translator.TranslatorManager;
import com.speedment.maven.typemapper.Mapping;
import com.speedment.runtime.core.ApplicationBuilder;
import com.speedment.runtime.core.Speedment;
diff --git a/build-parent/maven-plugin/src/main/java/com/speedment/maven/abstractmojo/AbstractGenerateMojo.java b/build-parent/maven-plugin/src/main/java/com/speedment/maven/abstractmojo/AbstractGenerateMojo.java
index 7695dac82a..b8db7ef5d6 100644
--- a/build-parent/maven-plugin/src/main/java/com/speedment/maven/abstractmojo/AbstractGenerateMojo.java
+++ b/build-parent/maven-plugin/src/main/java/com/speedment/maven/abstractmojo/AbstractGenerateMojo.java
@@ -16,7 +16,7 @@
*/
package com.speedment.maven.abstractmojo;
-import com.speedment.generator.core.translator.TranslatorManager;
+import com.speedment.generator.translator.TranslatorManager;
import com.speedment.maven.typemapper.Mapping;
import com.speedment.runtime.core.ApplicationBuilder;
import com.speedment.runtime.core.Speedment;
diff --git a/build-parent/maven-plugin/src/main/java/com/speedment/maven/abstractmojo/AbstractSpeedmentMojo.java b/build-parent/maven-plugin/src/main/java/com/speedment/maven/abstractmojo/AbstractSpeedmentMojo.java
index fe7542e859..f5b7663508 100644
--- a/build-parent/maven-plugin/src/main/java/com/speedment/maven/abstractmojo/AbstractSpeedmentMojo.java
+++ b/build-parent/maven-plugin/src/main/java/com/speedment/maven/abstractmojo/AbstractSpeedmentMojo.java
@@ -21,8 +21,8 @@
import com.speedment.common.injector.annotation.InjectKey;
import com.speedment.common.injector.annotation.WithState;
import com.speedment.generator.core.GeneratorBundle;
-import com.speedment.generator.core.component.TypeMapperComponent;
-import com.speedment.generator.core.internal.component.CodeGenerationComponentImpl;
+import com.speedment.generator.translator.component.TypeMapperComponent;
+import com.speedment.generator.translator.internal.component.CodeGenerationComponentImpl;
import com.speedment.maven.component.MavenPathComponent;
import com.speedment.maven.typemapper.Mapping;
import com.speedment.runtime.core.ApplicationBuilder;
diff --git a/generator-parent/generator-all/pom.xml b/generator-parent/generator-all/pom.xml
index 3e29f9f906..e9b0094d13 100644
--- a/generator-parent/generator-all/pom.xml
+++ b/generator-parent/generator-all/pom.xml
@@ -107,6 +107,90 @@
com.speedment.generator
generator-translator
${speedment.version}
+
+
+
+ com.speedment.common
+ codegen
+
+
+
+ com.speedment.common
+ injector
+
+
+
+ com.speedment.common
+ mapstream
+
+
+
+ com.speedment.runtime
+ runtime-core
+
+
+
+ com.speedment.runtime
+ runtime-config
+
+
+
+ com.speedment.runtime
+ runtime-typemapper
+
+
+
+
+
+ com.speedment.generator
+ generator-standard
+ ${speedment.version}
+
+
+ com.speedment.common
+ function
+
+
+
+ com.speedment.common
+ codegen
+
+
+
+ com.speedment.common
+ injector
+
+
+
+ com.speedment.common
+ invariant
+
+
+
+ com.speedment.common
+ mapstream
+
+
+
+ com.speedment.common
+ json
+
+
+
+ com.speedment.runtime
+ runtime-config
+
+
+
+ com.speedment.runtime
+ runtime-typemapper
+
+
+
+ com.speedment.runtime
+ runtime-core
+
+
diff --git a/generator-parent/generator-core/pom.xml b/generator-parent/generator-core/pom.xml
index c2b67bb848..576a3e9ba4 100644
--- a/generator-parent/generator-core/pom.xml
+++ b/generator-parent/generator-core/pom.xml
@@ -47,8 +47,6 @@
com.speedment.generator.core.exception.*,
- com.speedment.generator.core.translator.*,
- com.speedment.generator.core.namer.*,
com.speedment.generator.core.component.*,
com.speedment.generator.core.event.*,
com.speedment.generator.core.util.*,
@@ -115,11 +113,29 @@
com.speedment.runtime
runtime-core
-
+
com.speedment.generator
generator-translator
${speedment.version}
+
+
+ *
+ *
+
+
+
+
+
+ com.speedment.generator
+ generator-standard
+ ${speedment.version}
+
+
+ *
+ *
+
+
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/GeneratorBundle.java b/generator-parent/generator-core/src/main/java/com/speedment/generator/core/GeneratorBundle.java
index 312a192c30..007865790c 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/GeneratorBundle.java
+++ b/generator-parent/generator-core/src/main/java/com/speedment/generator/core/GeneratorBundle.java
@@ -17,7 +17,11 @@
package com.speedment.generator.core;
import com.speedment.common.injector.InjectBundle;
-import com.speedment.generator.core.internal.component.CodeGenerationComponentImpl;
+import com.speedment.generator.StandardTranslatorBundle;
+import com.speedment.generator.core.internal.component.EventComponentImpl;
+import com.speedment.generator.core.internal.component.PathComponentImpl;
+import com.speedment.generator.core.internal.translator.TranslatorManagerImpl;
+import com.speedment.generator.translator.TranslatorBundle;
import java.util.stream.Stream;
@@ -29,9 +33,12 @@ public class GeneratorBundle implements InjectBundle {
@Override
public Stream> injectables() {
- return InjectBundle.of(CodeGenerationComponentImpl.class)
- .andThen(CodeGenerationComponentImpl.include())
+ return InjectBundle.of(
+ EventComponentImpl.class,
+ TranslatorManagerImpl.class,
+ PathComponentImpl.class
+ ).andThen(TranslatorBundle.class)
+ .andThen(StandardTranslatorBundle.class)
.injectables();
}
-
}
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/event/AfterGenerate.java b/generator-parent/generator-core/src/main/java/com/speedment/generator/core/event/AfterGenerate.java
index 27e9e24a52..d78f9490a7 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/event/AfterGenerate.java
+++ b/generator-parent/generator-core/src/main/java/com/speedment/generator/core/event/AfterGenerate.java
@@ -18,7 +18,7 @@
import com.speedment.common.codegen.Generator;
import com.speedment.generator.core.event.trait.ProjectEvent;
-import com.speedment.generator.core.translator.TranslatorManager;
+import com.speedment.generator.translator.TranslatorManager;
import com.speedment.runtime.config.Project;
import static java.util.Objects.requireNonNull;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/event/BeforeGenerate.java b/generator-parent/generator-core/src/main/java/com/speedment/generator/core/event/BeforeGenerate.java
index d8b792b129..a308978936 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/event/BeforeGenerate.java
+++ b/generator-parent/generator-core/src/main/java/com/speedment/generator/core/event/BeforeGenerate.java
@@ -18,7 +18,7 @@
import com.speedment.common.codegen.Generator;
import com.speedment.generator.core.event.trait.ProjectEvent;
-import com.speedment.generator.core.translator.TranslatorManager;
+import com.speedment.generator.translator.TranslatorManager;
import com.speedment.runtime.config.Project;
import static java.util.Objects.requireNonNull;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/event/GeneratorEvent.java b/generator-parent/generator-core/src/main/java/com/speedment/generator/core/event/GeneratorEvent.java
index a092830007..f186c06844 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/event/GeneratorEvent.java
+++ b/generator-parent/generator-core/src/main/java/com/speedment/generator/core/event/GeneratorEvent.java
@@ -17,7 +17,7 @@
package com.speedment.generator.core.event;
import com.speedment.common.codegen.Generator;
-import com.speedment.generator.core.translator.TranslatorManager;
+import com.speedment.generator.translator.TranslatorManager;
/**
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/TranslatorManagerImpl.java b/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/TranslatorManagerImpl.java
index febe462dbd..7c4678eb09 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/TranslatorManagerImpl.java
+++ b/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/TranslatorManagerImpl.java
@@ -24,15 +24,14 @@
import com.speedment.common.injector.annotation.Inject;
import com.speedment.common.logger.Logger;
import com.speedment.common.logger.LoggerManager;
-import com.speedment.generator.core.component.CodeGenerationComponent;
import com.speedment.generator.core.component.EventComponent;
import com.speedment.generator.core.component.PathComponent;
import com.speedment.generator.core.event.AfterGenerate;
import com.speedment.generator.core.event.BeforeGenerate;
import com.speedment.generator.core.event.FileGenerated;
import com.speedment.generator.core.internal.util.HashUtil;
-import com.speedment.generator.core.translator.Translator;
-import com.speedment.generator.core.translator.TranslatorManager;
+import com.speedment.generator.translator.Translator;
+import com.speedment.generator.translator.TranslatorManager;
import com.speedment.runtime.core.component.InfoComponent;
import com.speedment.runtime.config.Project;
import com.speedment.runtime.config.Table;
@@ -53,6 +52,7 @@
import java.util.stream.Stream;
import static com.speedment.common.codegen.internal.util.NullUtil.requireNonNulls;
+import com.speedment.generator.translator.component.CodeGenerationComponent;
import static com.speedment.runtime.config.util.DocumentDbUtil.traverseOver;
import static java.util.Objects.requireNonNull;
diff --git a/generator-parent/generator-core/src/test/java/com/speedment/generator/DefaultJavaLanguageNamerTest.java b/generator-parent/generator-core/src/test/java/com/speedment/generator/DefaultJavaLanguageNamerTest.java
index cc70298d55..dafa7ed187 100644
--- a/generator-parent/generator-core/src/test/java/com/speedment/generator/DefaultJavaLanguageNamerTest.java
+++ b/generator-parent/generator-core/src/test/java/com/speedment/generator/DefaultJavaLanguageNamerTest.java
@@ -21,8 +21,8 @@
*/
package com.speedment.generator;
-import com.speedment.generator.core.internal.namer.JavaLanguageNamerImpl;
-import com.speedment.generator.core.namer.JavaLanguageNamer;
+import com.speedment.generator.translator.internal.namer.JavaLanguageNamerImpl;
+import com.speedment.generator.translator.namer.JavaLanguageNamer;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
@@ -30,7 +30,7 @@
import org.junit.Ignore;
import org.junit.Test;
-import static com.speedment.generator.core.namer.JavaLanguageNamer.toHumanReadable;
+import static com.speedment.generator.translator.namer.JavaLanguageNamer.toHumanReadable;
import static org.junit.Assert.assertEquals;
/**
diff --git a/generator-parent/generator-core/src/test/java/com/speedment/generator/SimpleModel.java b/generator-parent/generator-core/src/test/java/com/speedment/generator/SimpleModel.java
index 568bed581e..9f2faf6011 100644
--- a/generator-parent/generator-core/src/test/java/com/speedment/generator/SimpleModel.java
+++ b/generator-parent/generator-core/src/test/java/com/speedment/generator/SimpleModel.java
@@ -20,7 +20,7 @@
import com.speedment.common.codegen.Meta;
import com.speedment.common.codegen.model.File;
import com.speedment.generator.core.internal.translator.TranslatorManagerImpl;
-import com.speedment.generator.core.translator.TranslatorManager;
+import com.speedment.generator.translator.TranslatorManager;
import com.speedment.runtime.core.Speedment;
import com.speedment.runtime.core.component.ProjectComponent;
import com.speedment.runtime.config.Column;
diff --git a/generator-parent/generator-core/src/test/java/com/speedment/generator/TranslatorManagerTest.java b/generator-parent/generator-core/src/test/java/com/speedment/generator/TranslatorManagerTest.java
index d388090493..55b23752fe 100644
--- a/generator-parent/generator-core/src/test/java/com/speedment/generator/TranslatorManagerTest.java
+++ b/generator-parent/generator-core/src/test/java/com/speedment/generator/TranslatorManagerTest.java
@@ -17,11 +17,11 @@
package com.speedment.generator;
import com.speedment.common.codegen.model.Interface;
-import com.speedment.generator.core.component.CodeGenerationComponent;
-import com.speedment.generator.core.namer.JavaLanguageNamer;
-import com.speedment.generator.core.translator.StandardTranslatorKey;
-import com.speedment.generator.core.translator.Translator;
-import com.speedment.generator.core.translator.TranslatorManager;
+import com.speedment.generator.translator.namer.JavaLanguageNamer;
+import com.speedment.generator.standard.StandardTranslatorKey;
+import com.speedment.generator.translator.Translator;
+import com.speedment.generator.translator.TranslatorManager;
+import com.speedment.generator.translator.component.CodeGenerationComponent;
import com.speedment.runtime.config.Table;
import org.junit.Test;
diff --git a/generator-parent/generator-core/src/test/java/com/speedment/generator/TranslatorSupportTest.java b/generator-parent/generator-core/src/test/java/com/speedment/generator/TranslatorSupportTest.java
index 7fb34682be..ded5f0045b 100644
--- a/generator-parent/generator-core/src/test/java/com/speedment/generator/TranslatorSupportTest.java
+++ b/generator-parent/generator-core/src/test/java/com/speedment/generator/TranslatorSupportTest.java
@@ -22,8 +22,8 @@
package com.speedment.generator;
import com.speedment.common.injector.Injector;
-import com.speedment.generator.core.namer.JavaLanguageNamer;
-import com.speedment.generator.core.translator.TranslatorSupport;
+import com.speedment.generator.translator.namer.JavaLanguageNamer;
+import com.speedment.generator.translator.TranslatorSupport;
import com.speedment.runtime.config.Table;
import org.junit.After;
import org.junit.AfterClass;
diff --git a/generator-parent/generator-standard/pom.xml b/generator-parent/generator-standard/pom.xml
new file mode 100644
index 0000000000..99710bc3ac
--- /dev/null
+++ b/generator-parent/generator-standard/pom.xml
@@ -0,0 +1,94 @@
+
+
+
+ 4.0.0
+
+
+ com.speedment.generator
+ generator-parent
+ 3.0.1-SNAPSHOT
+
+
+ generator-standard
+ bundle
+
+ Speedment - Generator - Standard Translator
+
+ Standard Translators used by the Speedment ORM.
+
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+
+
+ com.speedment.generator.standard.*
+
+
+
+
+
+
+
+
+ com.speedment.common
+ function
+
+
+
+ com.speedment.common
+ codegen
+
+
+
+ com.speedment.common
+ injector
+
+
+
+ com.speedment.common
+ invariant
+
+
+
+ com.speedment.common
+ mapstream
+
+
+
+ com.speedment.common
+ json
+
+
+
+ com.speedment.runtime
+ runtime-config
+
+
+
+ com.speedment.runtime
+ runtime-typemapper
+
+
+
+ com.speedment.runtime
+ runtime-core
+
+
+
+ com.speedment.generator
+ generator-translator
+ ${speedment.version}
+
+
+ *
+ *
+
+
+
+
+
\ No newline at end of file
diff --git a/generator-parent/generator-standard/src/main/java/com/speedment/generator/StandardTranslatorBundle.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/StandardTranslatorBundle.java
new file mode 100644
index 0000000000..9548ceabbb
--- /dev/null
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/StandardTranslatorBundle.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) Emil Forslund, 2016.
+ * All Rights Reserved.
+ *
+ * NOTICE: All information contained herein is, and remains
+ * the property of Emil Forslund and his suppliers, if any.
+ * The intellectual and technical concepts contained herein
+ * are proprietary to Emil Forslund and his suppliers and may
+ * be covered by U.S. and Foreign Patents, patents in process,
+ * and are protected by trade secret or copyright law.
+ * Dissemination of this information or reproduction of this
+ * material is strictly forbidden unless prior written
+ * permission is obtained from Emil Forslund himself.
+ */
+package com.speedment.generator;
+
+import com.speedment.common.injector.InjectBundle;
+import com.speedment.generator.standard.internal.StandardTranslatorComponent;
+import java.util.stream.Stream;
+
+/**
+ *
+ * @author Emil Forslund
+ * @since 3.0.1
+ */
+public final class StandardTranslatorBundle implements InjectBundle {
+
+ @Override
+ public Stream> injectables() {
+ return Stream.of(StandardTranslatorComponent.class);
+ }
+
+}
\ No newline at end of file
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/StandardTranslatorKey.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/StandardTranslatorKey.java
similarity index 97%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/StandardTranslatorKey.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/StandardTranslatorKey.java
index 0be11be7bc..946315e203 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/StandardTranslatorKey.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/StandardTranslatorKey.java
@@ -14,11 +14,12 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.translator;
+package com.speedment.generator.standard;
import com.speedment.common.codegen.model.Class;
import com.speedment.common.codegen.model.ClassOrInterface;
import com.speedment.common.codegen.model.Interface;
+import com.speedment.generator.translator.TranslatorKey;
import com.speedment.runtime.config.Project;
import com.speedment.runtime.config.Table;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/entity/EntityImplTranslator.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/entity/EntityImplTranslator.java
similarity index 91%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/entity/EntityImplTranslator.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/entity/EntityImplTranslator.java
index 4b2d7dcc8e..59e1bd7b21 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/entity/EntityImplTranslator.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/entity/EntityImplTranslator.java
@@ -14,11 +14,11 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator.entity;
+package com.speedment.generator.standard.entity;
import com.speedment.common.codegen.model.Class;
import com.speedment.common.codegen.model.File;
-import com.speedment.generator.core.translator.AbstractEntityAndManagerTranslator;
+import com.speedment.generator.translator.AbstractEntityAndManagerTranslator;
import com.speedment.runtime.config.Table;
/**
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/entity/EntityTranslator.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/entity/EntityTranslator.java
similarity index 91%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/entity/EntityTranslator.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/entity/EntityTranslator.java
index 1415297799..23d704d653 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/entity/EntityTranslator.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/entity/EntityTranslator.java
@@ -14,11 +14,11 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator.entity;
+package com.speedment.generator.standard.entity;
import com.speedment.common.codegen.model.File;
import com.speedment.common.codegen.model.Interface;
-import com.speedment.generator.core.translator.AbstractEntityAndManagerTranslator;
+import com.speedment.generator.translator.AbstractEntityAndManagerTranslator;
import com.speedment.runtime.config.Table;
/**
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/entity/GeneratedEntityImplTranslator.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/entity/GeneratedEntityImplTranslator.java
similarity index 94%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/entity/GeneratedEntityImplTranslator.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/entity/GeneratedEntityImplTranslator.java
index 84aeba3334..e67c2ebf08 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/entity/GeneratedEntityImplTranslator.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/entity/GeneratedEntityImplTranslator.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator.entity;
+package com.speedment.generator.standard.entity;
import com.speedment.common.codegen.constant.DefaultAnnotationUsage;
import com.speedment.common.codegen.constant.DefaultType;
@@ -27,11 +27,10 @@
import com.speedment.common.codegen.model.Method;
import com.speedment.common.injector.Injector;
import com.speedment.common.injector.annotation.Inject;
-import com.speedment.generator.core.component.TypeMapperComponent;
-import com.speedment.generator.core.internal.util.EntityTranslatorSupport;
-import com.speedment.generator.core.internal.util.FkHolder;
-import com.speedment.generator.core.translator.AbstractEntityAndManagerTranslator;
-import com.speedment.generator.core.translator.TranslatorSupport;
+import com.speedment.generator.standard.internal.util.EntityTranslatorSupport;
+import com.speedment.generator.standard.internal.util.FkHolder;
+import com.speedment.generator.translator.AbstractEntityAndManagerTranslator;
+import com.speedment.generator.translator.TranslatorSupport;
import com.speedment.runtime.config.Table;
import com.speedment.runtime.core.manager.Manager;
import com.speedment.runtime.core.util.OptionalUtil;
@@ -43,9 +42,10 @@
import static com.speedment.common.codegen.constant.DefaultAnnotationUsage.OVERRIDE;
import static com.speedment.common.codegen.internal.util.Formatting.block;
-import static com.speedment.generator.core.internal.translator.entity.GeneratedEntityTranslator.getterReturnType;
-import static com.speedment.generator.core.internal.util.ColumnUtil.optionalGetterName;
-import static com.speedment.generator.core.internal.util.ColumnUtil.usesOptional;
+import static com.speedment.generator.standard.entity.GeneratedEntityTranslator.getterReturnType;
+import static com.speedment.generator.standard.internal.util.ColumnUtil.optionalGetterName;
+import static com.speedment.generator.standard.internal.util.ColumnUtil.usesOptional;
+import com.speedment.generator.translator.component.TypeMapperComponent;
import static java.util.Objects.requireNonNull;
/**
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/entity/GeneratedEntityTranslator.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/entity/GeneratedEntityTranslator.java
similarity index 96%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/entity/GeneratedEntityTranslator.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/entity/GeneratedEntityTranslator.java
index 19ff460b27..1c0a429bf4 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/entity/GeneratedEntityTranslator.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/entity/GeneratedEntityTranslator.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator.entity;
+package com.speedment.generator.standard.entity;
import com.speedment.common.codegen.constant.DefaultJavadocTag;
import com.speedment.common.codegen.constant.DefaultType;
@@ -33,11 +33,10 @@
import com.speedment.common.codegen.model.Method;
import com.speedment.common.injector.Injector;
import com.speedment.common.injector.annotation.Inject;
-import com.speedment.generator.core.component.TypeMapperComponent;
-import com.speedment.generator.core.internal.util.EntityTranslatorSupport;
-import com.speedment.generator.core.internal.util.FkHolder;
-import com.speedment.generator.core.translator.AbstractEntityAndManagerTranslator;
-import com.speedment.generator.core.translator.TranslatorSupport;
+import com.speedment.generator.standard.internal.util.EntityTranslatorSupport;
+import com.speedment.generator.standard.internal.util.FkHolder;
+import com.speedment.generator.translator.AbstractEntityAndManagerTranslator;
+import com.speedment.generator.translator.TranslatorSupport;
import com.speedment.runtime.config.Column;
import com.speedment.runtime.config.Dbms;
import com.speedment.runtime.config.Table;
@@ -57,7 +56,8 @@
import static com.speedment.common.codegen.constant.DefaultJavadocTag.PARAM;
import static com.speedment.common.codegen.constant.DefaultJavadocTag.RETURN;
import static com.speedment.common.codegen.internal.util.Formatting.shortName;
-import static com.speedment.generator.core.internal.util.ColumnUtil.usesOptional;
+import static com.speedment.generator.standard.internal.util.ColumnUtil.usesOptional;
+import com.speedment.generator.translator.component.TypeMapperComponent;
import com.speedment.runtime.config.util.DocumentDbUtil;
import static com.speedment.runtime.config.util.DocumentUtil.Name.DATABASE_NAME;
import com.speedment.runtime.config.identifier.ColumnIdentifier;
diff --git a/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/internal/StandardTranslatorComponent.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/internal/StandardTranslatorComponent.java
new file mode 100644
index 0000000000..ff55f426b8
--- /dev/null
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/internal/StandardTranslatorComponent.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) Emil Forslund, 2016.
+ * All Rights Reserved.
+ *
+ * NOTICE: All information contained herein is, and remains
+ * the property of Emil Forslund and his suppliers, if any.
+ * The intellectual and technical concepts contained herein
+ * are proprietary to Emil Forslund and his suppliers and may
+ * be covered by U.S. and Foreign Patents, patents in process,
+ * and are protected by trade secret or copyright law.
+ * Dissemination of this information or reproduction of this
+ * material is strictly forbidden unless prior written
+ * permission is obtained from Emil Forslund himself.
+ */
+package com.speedment.generator.standard.internal;
+
+import static com.speedment.common.injector.State.INITIALIZED;
+import static com.speedment.common.injector.State.RESOLVED;
+import com.speedment.common.injector.annotation.ExecuteBefore;
+import com.speedment.common.injector.annotation.WithState;
+import static com.speedment.generator.standard.StandardTranslatorKey.*;
+import com.speedment.generator.standard.entity.EntityImplTranslator;
+import com.speedment.generator.standard.entity.EntityTranslator;
+import com.speedment.generator.standard.entity.GeneratedEntityImplTranslator;
+import com.speedment.generator.standard.entity.GeneratedEntityTranslator;
+import com.speedment.generator.standard.lifecycle.ApplicationBuilderTranslator;
+import com.speedment.generator.standard.lifecycle.ApplicationImplTranslator;
+import com.speedment.generator.standard.lifecycle.ApplicationTranslator;
+import com.speedment.generator.standard.lifecycle.GeneratedApplicationBuilderTranslator;
+import com.speedment.generator.standard.lifecycle.GeneratedApplicationImplTranslator;
+import com.speedment.generator.standard.lifecycle.GeneratedApplicationTranslator;
+import com.speedment.generator.standard.lifecycle.GeneratedMetadataTranslator;
+import com.speedment.generator.standard.manager.GeneratedManagerImplTranslator;
+import com.speedment.generator.standard.manager.GeneratedManagerTranslator;
+import com.speedment.generator.standard.manager.ManagerImplTranslator;
+import com.speedment.generator.standard.manager.ManagerTranslator;
+import com.speedment.generator.translator.component.CodeGenerationComponent;
+import com.speedment.runtime.config.Project;
+import com.speedment.runtime.config.Table;
+
+/**
+ *
+ * @author Emil Forslund
+ * @since 3.0.1
+ */
+public final class StandardTranslatorComponent {
+
+ @ExecuteBefore(RESOLVED)
+ void installTranslators(@WithState(INITIALIZED) CodeGenerationComponent codeGen) {
+ codeGen.put(Table.class, ENTITY, EntityTranslator::new);
+ codeGen.put(Table.class, ENTITY_IMPL, EntityImplTranslator::new);
+ codeGen.put(Table.class, MANAGER, ManagerTranslator::new);
+ codeGen.put(Table.class, MANAGER_IMPL, ManagerImplTranslator::new);
+ codeGen.put(Table.class, GENERATED_ENTITY, GeneratedEntityTranslator::new);
+ codeGen.put(Table.class, GENERATED_ENTITY_IMPL, GeneratedEntityImplTranslator::new);
+ codeGen.put(Table.class, GENERATED_MANAGER, GeneratedManagerTranslator::new);
+ codeGen.put(Table.class, GENERATED_MANAGER_IMPL, GeneratedManagerImplTranslator::new);
+ codeGen.put(Project.class, APPLICATION, ApplicationTranslator::new);
+ codeGen.put(Project.class, APPLICATION_IMPL, ApplicationImplTranslator::new);
+ codeGen.put(Project.class, APPLICATION_BUILDER, ApplicationBuilderTranslator::new);
+ codeGen.put(Project.class, GENERATED_APPLICATION, GeneratedApplicationTranslator::new);
+ codeGen.put(Project.class, GENERATED_APPLICATION_IMPL, GeneratedApplicationImplTranslator::new);
+ codeGen.put(Project.class, GENERATED_APPLICATION_BUILDER, GeneratedApplicationBuilderTranslator::new);
+ codeGen.put(Project.class, GENERATED_METADATA, GeneratedMetadataTranslator::new);
+ }
+}
\ No newline at end of file
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/util/ColumnUtil.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/internal/util/ColumnUtil.java
similarity index 94%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/util/ColumnUtil.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/internal/util/ColumnUtil.java
index 72d0e21ed4..8d4c01f892 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/util/ColumnUtil.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/internal/util/ColumnUtil.java
@@ -14,9 +14,9 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.util;
+package com.speedment.generator.standard.internal.util;
-import com.speedment.generator.core.component.TypeMapperComponent;
+import com.speedment.generator.translator.component.TypeMapperComponent;
import com.speedment.runtime.config.Column;
import com.speedment.runtime.config.trait.HasNullable;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/util/EntityTranslatorSupport.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/internal/util/EntityTranslatorSupport.java
similarity index 98%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/util/EntityTranslatorSupport.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/internal/util/EntityTranslatorSupport.java
index ff84143921..31096dd7b7 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/util/EntityTranslatorSupport.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/internal/util/EntityTranslatorSupport.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.util;
+package com.speedment.generator.standard.internal.util;
import com.speedment.common.codegen.constant.SimpleParameterizedType;
import com.speedment.common.codegen.constant.SimpleType;
@@ -22,10 +22,9 @@
import com.speedment.common.codegen.model.Import;
import com.speedment.common.codegen.model.Method;
import com.speedment.common.injector.Injector;
-import com.speedment.generator.core.component.TypeMapperComponent;
-import com.speedment.generator.core.namer.JavaLanguageNamer;
-import com.speedment.generator.core.translator.TranslatorSupport;
-import com.speedment.generator.core.util.Pluralis;
+import com.speedment.generator.translator.namer.JavaLanguageNamer;
+import com.speedment.generator.translator.TranslatorSupport;
+import com.speedment.generator.translator.util.Pluralis;
import com.speedment.runtime.config.Column;
import com.speedment.runtime.config.ForeignKey;
import com.speedment.runtime.config.ForeignKeyColumn;
@@ -78,6 +77,7 @@
import static com.speedment.common.codegen.internal.util.StaticClassUtil.instanceNotAllowed;
import static com.speedment.common.invariant.NullUtil.requireNonNulls;
+import com.speedment.generator.translator.component.TypeMapperComponent;
import com.speedment.runtime.config.util.DocumentDbUtil;
import static java.util.Objects.requireNonNull;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/util/FkHolder.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/internal/util/FkHolder.java
similarity index 93%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/util/FkHolder.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/internal/util/FkHolder.java
index 6d7a864ec2..80d212f99a 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/util/FkHolder.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/internal/util/FkHolder.java
@@ -14,13 +14,13 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.util;
+package com.speedment.generator.standard.internal.util;
import com.speedment.common.codegen.model.Interface;
import com.speedment.common.injector.Injector;
-import com.speedment.generator.core.component.CodeGenerationComponent;
-import com.speedment.generator.core.translator.JavaClassTranslator;
-import com.speedment.generator.core.translator.StandardTranslatorKey;
+import com.speedment.generator.translator.component.CodeGenerationComponent;
+import com.speedment.generator.translator.JavaClassTranslator;
+import com.speedment.generator.standard.StandardTranslatorKey;
import com.speedment.runtime.config.Column;
import com.speedment.runtime.config.ForeignKey;
import com.speedment.runtime.config.ForeignKeyColumn;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/util/GenerateMethodBodyUtil.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/internal/util/GenerateMethodBodyUtil.java
similarity index 95%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/util/GenerateMethodBodyUtil.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/internal/util/GenerateMethodBodyUtil.java
index 554e8ef1ad..9726f8e63b 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/util/GenerateMethodBodyUtil.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/internal/util/GenerateMethodBodyUtil.java
@@ -14,14 +14,14 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.util;
+package com.speedment.generator.standard.internal.util;
import com.speedment.common.codegen.constant.DefaultType;
import com.speedment.common.codegen.constant.SimpleParameterizedType;
import com.speedment.common.codegen.model.File;
import com.speedment.common.codegen.model.Import;
import com.speedment.common.codegen.model.Method;
-import com.speedment.generator.core.translator.TranslatorSupport;
+import com.speedment.generator.translator.TranslatorSupport;
import com.speedment.runtime.config.Column;
import com.speedment.runtime.config.Table;
import com.speedment.runtime.config.trait.HasEnabled;
@@ -38,7 +38,7 @@
import static com.speedment.common.codegen.internal.util.Formatting.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.joining;
-import static com.speedment.generator.core.internal.translator.manager.GeneratedManagerImplTranslator.ENTITY_CREATE_METHOD_NAME;
+import static com.speedment.generator.standard.manager.GeneratedManagerImplTranslator.ENTITY_CREATE_METHOD_NAME;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.joining;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/ApplicationBuilderTranslator.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/ApplicationBuilderTranslator.java
similarity index 93%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/ApplicationBuilderTranslator.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/ApplicationBuilderTranslator.java
index ede4f31be4..5d3ff4929a 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/ApplicationBuilderTranslator.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/ApplicationBuilderTranslator.java
@@ -14,12 +14,12 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator.lifecycle;
+package com.speedment.generator.standard.lifecycle;
import com.speedment.common.codegen.constant.SimpleType;
import com.speedment.common.codegen.model.Class;
import com.speedment.common.codegen.model.File;
-import com.speedment.generator.core.translator.AbstractJavaClassTranslator;
+import com.speedment.generator.translator.AbstractJavaClassTranslator;
import com.speedment.runtime.core.ApplicationBuilder;
import com.speedment.runtime.config.Project;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/ApplicationImplTranslator.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/ApplicationImplTranslator.java
similarity index 94%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/ApplicationImplTranslator.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/ApplicationImplTranslator.java
index 3122306ccb..2304b7e385 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/ApplicationImplTranslator.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/ApplicationImplTranslator.java
@@ -14,12 +14,12 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator.lifecycle;
+package com.speedment.generator.standard.lifecycle;
import com.speedment.common.codegen.constant.SimpleType;
import com.speedment.common.codegen.model.Class;
import com.speedment.common.codegen.model.File;
-import com.speedment.generator.core.translator.AbstractJavaClassTranslator;
+import com.speedment.generator.translator.AbstractJavaClassTranslator;
import com.speedment.runtime.core.Speedment;
import com.speedment.runtime.config.Project;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/ApplicationTranslator.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/ApplicationTranslator.java
similarity index 93%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/ApplicationTranslator.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/ApplicationTranslator.java
index e11804115a..725a5e9a4b 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/ApplicationTranslator.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/ApplicationTranslator.java
@@ -14,12 +14,12 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator.lifecycle;
+package com.speedment.generator.standard.lifecycle;
import com.speedment.common.codegen.constant.SimpleType;
import com.speedment.common.codegen.model.File;
import com.speedment.common.codegen.model.Interface;
-import com.speedment.generator.core.translator.AbstractJavaClassTranslator;
+import com.speedment.generator.translator.AbstractJavaClassTranslator;
import com.speedment.runtime.core.ApplicationBuilder;
import com.speedment.runtime.config.Project;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/GeneratedApplicationBuilderTranslator.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/GeneratedApplicationBuilderTranslator.java
similarity index 95%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/GeneratedApplicationBuilderTranslator.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/GeneratedApplicationBuilderTranslator.java
index 983d8903ff..ad02df1376 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/GeneratedApplicationBuilderTranslator.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/GeneratedApplicationBuilderTranslator.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator.lifecycle;
+package com.speedment.generator.standard.lifecycle;
import com.speedment.common.codegen.constant.SimpleParameterizedType;
import com.speedment.common.codegen.constant.SimpleType;
@@ -28,8 +28,8 @@
import com.speedment.common.codegen.model.Method;
import com.speedment.common.injector.Injector;
import com.speedment.common.injector.annotation.Inject;
-import com.speedment.generator.core.translator.AbstractJavaClassTranslator;
-import com.speedment.generator.core.translator.TranslatorSupport;
+import com.speedment.generator.translator.AbstractJavaClassTranslator;
+import com.speedment.generator.translator.TranslatorSupport;
import com.speedment.common.mapstream.MapStream;
import com.speedment.runtime.core.component.InfoComponent;
import com.speedment.runtime.config.Project;
@@ -48,7 +48,7 @@
import static com.speedment.common.codegen.constant.DefaultJavadocTag.AUTHOR;
import static com.speedment.common.codegen.internal.util.Formatting.nl;
import static com.speedment.common.codegen.internal.util.Formatting.shortName;
-import static com.speedment.generator.core.internal.translator.lifecycle.GeneratedMetadataTranslator.METADATA;
+import static com.speedment.generator.standard.lifecycle.GeneratedMetadataTranslator.METADATA;
import static java.util.stream.Collectors.toSet;
import static com.speedment.runtime.config.util.DocumentDbUtil.traverseOver;
import static java.util.Objects.requireNonNull;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/GeneratedApplicationImplTranslator.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/GeneratedApplicationImplTranslator.java
similarity index 94%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/GeneratedApplicationImplTranslator.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/GeneratedApplicationImplTranslator.java
index b12619a303..5a3c131946 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/GeneratedApplicationImplTranslator.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/GeneratedApplicationImplTranslator.java
@@ -14,12 +14,12 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator.lifecycle;
+package com.speedment.generator.standard.lifecycle;
import com.speedment.common.codegen.constant.SimpleType;
import com.speedment.common.codegen.model.Class;
import com.speedment.common.codegen.model.File;
-import com.speedment.generator.core.translator.AbstractJavaClassTranslator;
+import com.speedment.generator.translator.AbstractJavaClassTranslator;
import com.speedment.runtime.config.Project;
import com.speedment.runtime.core.internal.AbstractApplicationBuilder;
import com.speedment.runtime.core.internal.AbstractSpeedment;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/GeneratedApplicationTranslator.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/GeneratedApplicationTranslator.java
similarity index 93%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/GeneratedApplicationTranslator.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/GeneratedApplicationTranslator.java
index 199ded0e2d..9507251c82 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/GeneratedApplicationTranslator.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/GeneratedApplicationTranslator.java
@@ -14,11 +14,11 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator.lifecycle;
+package com.speedment.generator.standard.lifecycle;
import com.speedment.common.codegen.model.File;
import com.speedment.common.codegen.model.Interface;
-import com.speedment.generator.core.translator.AbstractJavaClassTranslator;
+import com.speedment.generator.translator.AbstractJavaClassTranslator;
import com.speedment.runtime.core.Speedment;
import com.speedment.runtime.config.Project;
import com.speedment.runtime.core.internal.AbstractApplicationBuilder;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/GeneratedMetadataTranslator.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/GeneratedMetadataTranslator.java
similarity index 97%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/GeneratedMetadataTranslator.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/GeneratedMetadataTranslator.java
index 9775b40276..30d42c719a 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/lifecycle/GeneratedMetadataTranslator.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/lifecycle/GeneratedMetadataTranslator.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator.lifecycle;
+package com.speedment.generator.standard.lifecycle;
import com.speedment.common.codegen.constant.DefaultType;
import com.speedment.common.codegen.internal.model.JavadocImpl;
@@ -26,7 +26,7 @@
import com.speedment.common.codegen.model.Javadoc;
import com.speedment.common.codegen.model.Method;
import com.speedment.common.injector.annotation.Inject;
-import com.speedment.generator.core.translator.AbstractJavaClassTranslator;
+import com.speedment.generator.translator.AbstractJavaClassTranslator;
import com.speedment.runtime.core.ApplicationMetadata;
import com.speedment.runtime.core.component.InfoComponent;
import com.speedment.runtime.config.Project;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/manager/GeneratedManagerImplTranslator.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/manager/GeneratedManagerImplTranslator.java
similarity index 95%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/manager/GeneratedManagerImplTranslator.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/manager/GeneratedManagerImplTranslator.java
index 84c6794e32..22e0cff25b 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/manager/GeneratedManagerImplTranslator.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/manager/GeneratedManagerImplTranslator.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator.manager;
+package com.speedment.generator.standard.manager;
import com.speedment.common.codegen.constant.DefaultType;
import com.speedment.common.codegen.constant.SimpleParameterizedType;
@@ -28,11 +28,8 @@
import com.speedment.common.codegen.model.Method;
import com.speedment.common.injector.Injector;
import com.speedment.common.injector.annotation.Inject;
-import com.speedment.generator.core.component.TypeMapperComponent;
-import com.speedment.generator.core.internal.util.EntityTranslatorSupport;
-import com.speedment.generator.core.internal.util.FkHolder;
-import com.speedment.generator.core.translator.AbstractEntityAndManagerTranslator;
-import com.speedment.generator.core.translator.TranslatorSupport;
+import com.speedment.generator.translator.AbstractEntityAndManagerTranslator;
+import com.speedment.generator.translator.TranslatorSupport;
import com.speedment.runtime.core.component.DbmsHandlerComponent;
import com.speedment.runtime.core.component.ProjectComponent;
import com.speedment.runtime.core.component.resultset.ResultSetMapperComponent;
@@ -61,14 +58,19 @@
import java.util.stream.Stream;
import static com.speedment.common.codegen.constant.DefaultAnnotationUsage.OVERRIDE;
-import static com.speedment.generator.core.internal.util.ColumnUtil.optionalGetterName;
-import static com.speedment.generator.core.internal.util.ColumnUtil.usesOptional;
-import static com.speedment.generator.core.internal.util.GenerateMethodBodyUtil.*;
import com.speedment.runtime.config.util.DocumentDbUtil;
import com.speedment.runtime.core.exception.SpeedmentException;
import static com.speedment.runtime.core.util.DatabaseUtil.dbmsTypeOf;
import static com.speedment.common.codegen.internal.util.Formatting.block;
import static com.speedment.common.codegen.internal.util.Formatting.indent;
+import static com.speedment.generator.standard.internal.util.ColumnUtil.optionalGetterName;
+import static com.speedment.generator.standard.internal.util.ColumnUtil.usesOptional;
+import com.speedment.generator.standard.internal.util.EntityTranslatorSupport;
+import com.speedment.generator.standard.internal.util.FkHolder;
+import static com.speedment.generator.standard.internal.util.GenerateMethodBodyUtil.generateFields;
+import static com.speedment.generator.standard.internal.util.GenerateMethodBodyUtil.generateNewEmptyEntity;
+import static com.speedment.generator.standard.internal.util.GenerateMethodBodyUtil.generateNewEntityFromBody;
+import com.speedment.generator.translator.component.TypeMapperComponent;
import com.speedment.runtime.config.identifier.TableIdentifier;
import static java.util.stream.Collectors.joining;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/manager/GeneratedManagerTranslator.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/manager/GeneratedManagerTranslator.java
similarity index 95%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/manager/GeneratedManagerTranslator.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/manager/GeneratedManagerTranslator.java
index 36586518f2..7c6e8ca26a 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/manager/GeneratedManagerTranslator.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/manager/GeneratedManagerTranslator.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator.manager;
+package com.speedment.generator.standard.manager;
import com.speedment.common.codegen.constant.DefaultJavadocTag;
import com.speedment.common.codegen.constant.DefaultType;
@@ -27,10 +27,8 @@
import com.speedment.common.codegen.model.Method;
import com.speedment.common.injector.Injector;
import com.speedment.common.injector.annotation.Inject;
-import com.speedment.generator.core.internal.util.EntityTranslatorSupport;
-import com.speedment.generator.core.internal.util.FkHolder;
-import com.speedment.generator.core.translator.AbstractEntityAndManagerTranslator;
-import com.speedment.generator.core.translator.TranslatorSupport;
+import com.speedment.generator.translator.AbstractEntityAndManagerTranslator;
+import com.speedment.generator.translator.TranslatorSupport;
import com.speedment.runtime.config.Table;
import com.speedment.runtime.core.field.method.BackwardFinder;
import com.speedment.runtime.core.manager.Manager;
@@ -47,7 +45,9 @@
import static com.speedment.common.codegen.constant.DefaultAnnotationUsage.OVERRIDE;
import static com.speedment.common.codegen.constant.DefaultJavadocTag.PARAM;
import static com.speedment.common.codegen.constant.DefaultJavadocTag.RETURN;
-import static com.speedment.generator.core.internal.util.ColumnUtil.usesOptional;
+import static com.speedment.generator.standard.internal.util.ColumnUtil.usesOptional;
+import com.speedment.generator.standard.internal.util.EntityTranslatorSupport;
+import com.speedment.generator.standard.internal.util.FkHolder;
/**
*
@@ -236,10 +236,6 @@ protected Method generatePrimaryKeyFor(File file) {
return method;
}
- protected Method generateGetPrimaryKeyClasses(File file) {
- return Method.of("getPrimaryKeyClasses", pkTupleType()).add(OVERRIDE);
- }
-
@Override
protected String getJavadocRepresentText() {
return "The generated base interface for the manager of every {@link " +
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/manager/ManagerImplTranslator.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/manager/ManagerImplTranslator.java
similarity index 92%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/manager/ManagerImplTranslator.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/manager/ManagerImplTranslator.java
index fc14b0ad06..8c4916c4f1 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/manager/ManagerImplTranslator.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/manager/ManagerImplTranslator.java
@@ -14,11 +14,11 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator.manager;
+package com.speedment.generator.standard.manager;
import com.speedment.common.codegen.model.Class;
import com.speedment.common.codegen.model.File;
-import com.speedment.generator.core.translator.AbstractEntityAndManagerTranslator;
+import com.speedment.generator.translator.AbstractEntityAndManagerTranslator;
import com.speedment.runtime.config.Table;
import java.lang.reflect.Type;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/manager/ManagerTranslator.java b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/manager/ManagerTranslator.java
similarity index 91%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/manager/ManagerTranslator.java
rename to generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/manager/ManagerTranslator.java
index 5f2ad7c508..76ca31b31c 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/manager/ManagerTranslator.java
+++ b/generator-parent/generator-standard/src/main/java/com/speedment/generator/standard/manager/ManagerTranslator.java
@@ -14,11 +14,11 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator.manager;
+package com.speedment.generator.standard.manager;
import com.speedment.common.codegen.model.File;
import com.speedment.common.codegen.model.Interface;
-import com.speedment.generator.core.translator.AbstractEntityAndManagerTranslator;
+import com.speedment.generator.translator.AbstractEntityAndManagerTranslator;
import com.speedment.runtime.config.Table;
/**
diff --git a/generator-parent/generator-translator/pom.xml b/generator-parent/generator-translator/pom.xml
index 407b8db1fe..36c6c378a0 100644
--- a/generator-parent/generator-translator/pom.xml
+++ b/generator-parent/generator-translator/pom.xml
@@ -33,4 +33,36 @@
+
+
+
+ com.speedment.common
+ codegen
+
+
+
+ com.speedment.common
+ injector
+
+
+
+ com.speedment.common
+ mapstream
+
+
+
+ com.speedment.runtime
+ runtime-core
+
+
+
+ com.speedment.runtime
+ runtime-config
+
+
+
+ com.speedment.runtime
+ runtime-typemapper
+
+
\ No newline at end of file
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/AbstractEntityAndManagerTranslator.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/AbstractEntityAndManagerTranslator.java
similarity index 65%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/AbstractEntityAndManagerTranslator.java
rename to generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/AbstractEntityAndManagerTranslator.java
index 646a561286..219a1d518b 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/AbstractEntityAndManagerTranslator.java
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/AbstractEntityAndManagerTranslator.java
@@ -14,18 +14,15 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.translator;
+package com.speedment.generator.translator;
import com.speedment.common.codegen.constant.DefaultType;
-import com.speedment.common.codegen.constant.SimpleParameterizedType;
import com.speedment.common.codegen.model.ClassOrInterface;
import com.speedment.common.injector.annotation.Inject;
-import com.speedment.common.tuple.Tuple1;
-import com.speedment.generator.core.component.TypeMapperComponent;
-import com.speedment.generator.core.exception.SpeedmentGeneratorException;
+import com.speedment.generator.translator.component.TypeMapperComponent;
+import com.speedment.generator.translator.exception.SpeedmentTranslatorException;
import com.speedment.runtime.config.Column;
import com.speedment.runtime.config.Table;
-import com.speedment.runtime.core.exception.SpeedmentException;
import java.lang.reflect.Type;
import java.util.NoSuchElementException;
@@ -57,7 +54,7 @@ protected Type typeOfPK() {
}
final Column firstColumn = columnsFromPks()
- .findFirst().orElseThrow(() -> new SpeedmentGeneratorException(
+ .findFirst().orElseThrow(() -> new SpeedmentTranslatorException(
"Table '" + table().get().getName() +
"' did not contain any primary key columns."
));
@@ -78,38 +75,13 @@ protected Type typeOfPK() {
return DefaultType.list(DefaultType.WILDCARD);
}
}
-
- protected Type pkTupleType() {
- final long pks = primaryKeyColumns().count();
- final Package pkg = Tuple1.class.getPackage();
- final String tupleClassName = pkg.getName() + ".Tuple" + pks;
- final java.lang.Class> tupleClass;
-
- try {
- tupleClass = java.lang.Class.forName(tupleClassName);
- } catch (final ClassNotFoundException cnf) {
- throw new SpeedmentException("Speedment does not support " + pks + " primary keys.", cnf);
- }
-
- return SimpleParameterizedType.create(
- tupleClass,
- columnsFromPks().map(col -> {
- final Type type = typeMappers.get(col).getJavaType(col);
- if (DefaultType.isPrimitive(type)) {
- return DefaultType.classOf(DefaultType.wrapperFor(type));
- } else {
- return DefaultType.classOf(type);
- }
- }).toArray(Type[]::new)
- );
- }
private Stream columnsFromPks() {
return primaryKeyColumns().map(pk -> {
try {
return pk.findColumn().get();
} catch (final NoSuchElementException ex) {
- throw new SpeedmentException(
+ throw new SpeedmentTranslatorException(
"Could not find any column belonging to primary key '" + pk.getName() + "'.", ex
);
}
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/AbstractJavaClassTranslator.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/AbstractJavaClassTranslator.java
similarity index 99%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/AbstractJavaClassTranslator.java
rename to generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/AbstractJavaClassTranslator.java
index 61d16e9ec6..fb92ed20be 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/AbstractJavaClassTranslator.java
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/AbstractJavaClassTranslator.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.translator;
+package com.speedment.generator.translator;
import com.speedment.common.codegen.Generator;
import com.speedment.common.codegen.controller.AutoImports;
@@ -30,7 +30,6 @@
import com.speedment.common.codegen.model.Javadoc;
import com.speedment.common.injector.Injector;
import com.speedment.common.injector.annotation.Inject;
-import com.speedment.generator.core.component.TypeMapperComponent;
import com.speedment.common.mapstream.MapStream;
import com.speedment.runtime.core.component.InfoComponent;
import com.speedment.runtime.config.Column;
@@ -69,6 +68,7 @@
import static com.speedment.common.codegen.constant.DefaultAnnotationUsage.GENERATED;
import static com.speedment.common.codegen.constant.DefaultJavadocTag.AUTHOR;
import static com.speedment.common.codegen.internal.util.NullUtil.requireNonNulls;
+import com.speedment.generator.translator.component.TypeMapperComponent;
import static java.util.Objects.requireNonNull;
/**
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/JavaClassTranslator.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/JavaClassTranslator.java
similarity index 97%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/JavaClassTranslator.java
rename to generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/JavaClassTranslator.java
index adc8600891..933354d41a 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/JavaClassTranslator.java
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/JavaClassTranslator.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.translator;
+package com.speedment.generator.translator;
import com.speedment.common.codegen.model.ClassOrInterface;
import com.speedment.common.codegen.model.File;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/Translator.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/Translator.java
similarity index 99%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/Translator.java
rename to generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/Translator.java
index 57e437acda..2d8c935b43 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/Translator.java
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/Translator.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.translator;
+package com.speedment.generator.translator;
import com.speedment.common.codegen.Generator;
import com.speedment.common.codegen.Meta;
diff --git a/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorBundle.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorBundle.java
new file mode 100644
index 0000000000..8c5d9e2888
--- /dev/null
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorBundle.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) Emil Forslund, 2016.
+ * All Rights Reserved.
+ *
+ * NOTICE: All information contained herein is, and remains
+ * the property of Emil Forslund and his suppliers, if any.
+ * The intellectual and technical concepts contained herein
+ * are proprietary to Emil Forslund and his suppliers and may
+ * be covered by U.S. and Foreign Patents, patents in process,
+ * and are protected by trade secret or copyright law.
+ * Dissemination of this information or reproduction of this
+ * material is strictly forbidden unless prior written
+ * permission is obtained from Emil Forslund himself.
+ */
+package com.speedment.generator.translator;
+
+import com.speedment.common.codegen.internal.java.JavaGenerator;
+import com.speedment.common.injector.InjectBundle;
+import com.speedment.generator.translator.internal.component.CodeGenerationComponentImpl;
+import com.speedment.generator.translator.internal.component.TypeMapperComponentImpl;
+import com.speedment.generator.translator.internal.namer.JavaLanguageNamerImpl;
+import java.util.stream.Stream;
+
+/**
+ *
+ * @author Emil Forslund
+ * @since 3.0.1
+ */
+public final class TranslatorBundle implements InjectBundle {
+
+ @Override
+ public Stream> injectables() {
+ return Stream.of(
+ CodeGenerationComponentImpl.class,
+ TypeMapperComponentImpl.class,
+ JavaLanguageNamerImpl.class,
+ JavaGenerator.class
+ );
+ }
+}
\ No newline at end of file
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/TranslatorConstructor.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorConstructor.java
similarity index 96%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/TranslatorConstructor.java
rename to generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorConstructor.java
index 48247d5ac8..c33da6c1bc 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/TranslatorConstructor.java
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorConstructor.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.translator;
+package com.speedment.generator.translator;
import com.speedment.common.codegen.model.ClassOrInterface;
import com.speedment.runtime.config.trait.HasMainInterface;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/TranslatorDecorator.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorDecorator.java
similarity index 96%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/TranslatorDecorator.java
rename to generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorDecorator.java
index 76e18d61be..6099c3d6ef 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/TranslatorDecorator.java
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorDecorator.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.translator;
+package com.speedment.generator.translator;
import com.speedment.common.codegen.model.ClassOrInterface;
import com.speedment.runtime.config.trait.HasMainInterface;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/TranslatorKey.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorKey.java
similarity index 92%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/TranslatorKey.java
rename to generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorKey.java
index 5c241ff52c..ed7a63b038 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/TranslatorKey.java
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorKey.java
@@ -14,10 +14,10 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.translator;
+package com.speedment.generator.translator;
import com.speedment.common.codegen.model.ClassOrInterface;
-import com.speedment.generator.core.internal.translator.TranslatorKeyImpl;
+import com.speedment.generator.translator.internal.TranslatorKeyImpl;
import com.speedment.runtime.config.trait.HasMainInterface;
/**
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/TranslatorManager.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorManager.java
similarity index 96%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/TranslatorManager.java
rename to generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorManager.java
index 49fc57bc81..f533ab2240 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/TranslatorManager.java
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorManager.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.translator;
+package com.speedment.generator.translator;
import com.speedment.common.codegen.Meta;
import com.speedment.common.codegen.model.File;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/TranslatorSupport.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorSupport.java
similarity index 99%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/TranslatorSupport.java
rename to generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorSupport.java
index efe15112d1..fa8e1688cd 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/translator/TranslatorSupport.java
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/TranslatorSupport.java
@@ -14,12 +14,10 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.translator;
+package com.speedment.generator.translator;
import com.speedment.common.codegen.constant.SimpleType;
import com.speedment.common.injector.Injector;
-import com.speedment.generator.core.component.TypeMapperComponent;
-import com.speedment.generator.core.namer.JavaLanguageNamer;
import com.speedment.runtime.config.Column;
import com.speedment.runtime.config.Dbms;
import com.speedment.runtime.config.Document;
@@ -39,6 +37,8 @@
import static com.speedment.common.codegen.internal.util.Formatting.shortName;
import static com.speedment.common.codegen.internal.util.Formatting.ucfirst;
+import com.speedment.generator.translator.component.TypeMapperComponent;
+import com.speedment.generator.translator.namer.JavaLanguageNamer;
import static com.speedment.runtime.config.Project.DEFAULT_PACKAGE_NAME;
import static com.speedment.runtime.config.util.DocumentUtil.Name.JAVA_NAME;
import static java.util.Objects.requireNonNull;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/component/CodeGenerationComponent.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/component/CodeGenerationComponent.java
similarity index 91%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/component/CodeGenerationComponent.java
rename to generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/component/CodeGenerationComponent.java
index 46c43f8e81..fdc6e16ee6 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/component/CodeGenerationComponent.java
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/component/CodeGenerationComponent.java
@@ -14,15 +14,15 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.component;
+package com.speedment.generator.translator.component;
import com.speedment.common.codegen.model.ClassOrInterface;
import com.speedment.common.injector.annotation.InjectKey;
-import com.speedment.generator.core.exception.SpeedmentGeneratorException;
-import com.speedment.generator.core.translator.Translator;
-import com.speedment.generator.core.translator.TranslatorConstructor;
-import com.speedment.generator.core.translator.TranslatorDecorator;
-import com.speedment.generator.core.translator.TranslatorKey;
+import com.speedment.generator.translator.exception.SpeedmentTranslatorException;
+import com.speedment.generator.translator.Translator;
+import com.speedment.generator.translator.TranslatorConstructor;
+import com.speedment.generator.translator.TranslatorDecorator;
+import com.speedment.generator.translator.TranslatorKey;
import com.speedment.runtime.config.trait.HasMainInterface;
import com.speedment.runtime.config.trait.HasName;
@@ -147,11 +147,11 @@ public interface CodeGenerationComponent {
* @return a Stream of newly created {@code Translator Translators}
* for the given Document
*
- * @throws SpeedmentGeneratorException if the specified translator did not
+ * @throws SpeedmentTranslatorException if the specified translator did not
* exist
*/
default > Translator
- findTranslator(DOC document, TranslatorKey key) throws SpeedmentGeneratorException {
+ findTranslator(DOC document, TranslatorKey key) throws SpeedmentTranslatorException {
return CodeGenerationComponent.this.findTranslator(document, key.getTranslatedType(), key.getKey());
}
@@ -168,11 +168,11 @@ public interface CodeGenerationComponent {
* @return the newly created {@code Translator Translators} for the
* given Document
*
- * @throws SpeedmentGeneratorException if the specified translator did not
+ * @throws SpeedmentTranslatorException if the specified translator did not
* exist
*/
> Translator
- findTranslator(DOC document, Class modelType, String key) throws SpeedmentGeneratorException;
+ findTranslator(DOC document, Class modelType, String key) throws SpeedmentTranslatorException;
/**
* Returns a stream over the currently installed translator keys.
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/component/TypeMapperComponent.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/component/TypeMapperComponent.java
similarity index 97%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/component/TypeMapperComponent.java
rename to generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/component/TypeMapperComponent.java
index a6e75939bb..f71d4a571f 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/component/TypeMapperComponent.java
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/component/TypeMapperComponent.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.component;
+package com.speedment.generator.translator.component;
import com.speedment.common.injector.annotation.InjectKey;
import com.speedment.runtime.config.Column;
diff --git a/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/exception/SpeedmentTranslatorException.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/exception/SpeedmentTranslatorException.java
new file mode 100644
index 0000000000..5d3726cdf8
--- /dev/null
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/exception/SpeedmentTranslatorException.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) Emil Forslund, 2016.
+ * All Rights Reserved.
+ *
+ * NOTICE: All information contained herein is, and remains
+ * the property of Emil Forslund and his suppliers, if any.
+ * The intellectual and technical concepts contained herein
+ * are proprietary to Emil Forslund and his suppliers and may
+ * be covered by U.S. and Foreign Patents, patents in process,
+ * and are protected by trade secret or copyright law.
+ * Dissemination of this information or reproduction of this
+ * material is strictly forbidden unless prior written
+ * permission is obtained from Emil Forslund himself.
+ */
+package com.speedment.generator.translator.exception;
+
+/**
+ * An specialized runtime exception thrown when something goes wrong during the
+ * Speedment code generation process when a translator fails.
+ *
+ * @author Emil Forslund
+ * @since 3.0.1
+ */
+public final class SpeedmentTranslatorException extends RuntimeException {
+
+ private static final long serialVersionUID = 8374787683561187637L;
+
+ public SpeedmentTranslatorException() {}
+
+ public SpeedmentTranslatorException(String message) {
+ super(message);
+ }
+
+ public SpeedmentTranslatorException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public SpeedmentTranslatorException(Throwable cause) {
+ super(cause);
+ }
+
+ public SpeedmentTranslatorException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+ super(message, cause, enableSuppression, writableStackTrace);
+ }
+}
\ No newline at end of file
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/TranslatorKeyImpl.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/internal/TranslatorKeyImpl.java
similarity index 92%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/TranslatorKeyImpl.java
rename to generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/internal/TranslatorKeyImpl.java
index 36aa374739..e4b4e78d12 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/translator/TranslatorKeyImpl.java
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/internal/TranslatorKeyImpl.java
@@ -14,10 +14,10 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.translator;
+package com.speedment.generator.translator.internal;
import com.speedment.common.codegen.model.ClassOrInterface;
-import com.speedment.generator.core.translator.TranslatorKey;
+import com.speedment.generator.translator.TranslatorKey;
import com.speedment.runtime.config.trait.HasMainInterface;
import static java.util.Objects.requireNonNull;
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/component/CodeGenerationComponentImpl.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/internal/component/CodeGenerationComponentImpl.java
similarity index 58%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/component/CodeGenerationComponentImpl.java
rename to generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/internal/component/CodeGenerationComponentImpl.java
index 77ce0a722d..7bef7039aa 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/component/CodeGenerationComponentImpl.java
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/internal/component/CodeGenerationComponentImpl.java
@@ -14,39 +14,17 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.component;
+package com.speedment.generator.translator.internal.component;
-import com.speedment.common.codegen.internal.java.JavaGenerator;
import com.speedment.common.codegen.model.ClassOrInterface;
-import com.speedment.common.injector.InjectBundle;
import com.speedment.common.injector.Injector;
-import com.speedment.common.injector.annotation.ExecuteBefore;
import com.speedment.common.injector.annotation.Inject;
-import com.speedment.generator.core.component.CodeGenerationComponent;
-import com.speedment.generator.core.internal.namer.JavaLanguageNamerImpl;
-import com.speedment.generator.core.internal.translator.TranslatorManagerImpl;
-import com.speedment.generator.core.internal.translator.entity.EntityImplTranslator;
-import com.speedment.generator.core.internal.translator.entity.EntityTranslator;
-import com.speedment.generator.core.internal.translator.entity.GeneratedEntityImplTranslator;
-import com.speedment.generator.core.internal.translator.entity.GeneratedEntityTranslator;
-import com.speedment.generator.core.internal.translator.lifecycle.ApplicationBuilderTranslator;
-import com.speedment.generator.core.internal.translator.lifecycle.ApplicationImplTranslator;
-import com.speedment.generator.core.internal.translator.lifecycle.ApplicationTranslator;
-import com.speedment.generator.core.internal.translator.lifecycle.GeneratedApplicationBuilderTranslator;
-import com.speedment.generator.core.internal.translator.lifecycle.GeneratedApplicationImplTranslator;
-import com.speedment.generator.core.internal.translator.lifecycle.GeneratedApplicationTranslator;
-import com.speedment.generator.core.internal.translator.lifecycle.GeneratedMetadataTranslator;
-import com.speedment.generator.core.internal.translator.manager.GeneratedManagerImplTranslator;
-import com.speedment.generator.core.internal.translator.manager.GeneratedManagerTranslator;
-import com.speedment.generator.core.internal.translator.manager.ManagerImplTranslator;
-import com.speedment.generator.core.internal.translator.manager.ManagerTranslator;
-import com.speedment.generator.core.translator.JavaClassTranslator;
-import com.speedment.generator.core.translator.Translator;
-import com.speedment.generator.core.translator.TranslatorConstructor;
-import com.speedment.generator.core.translator.TranslatorDecorator;
+import com.speedment.generator.translator.component.CodeGenerationComponent;
+import com.speedment.generator.translator.JavaClassTranslator;
+import com.speedment.generator.translator.Translator;
+import com.speedment.generator.translator.TranslatorConstructor;
+import com.speedment.generator.translator.TranslatorDecorator;
import com.speedment.common.mapstream.MapStream;
-import com.speedment.runtime.config.Project;
-import com.speedment.runtime.config.Table;
import com.speedment.runtime.config.trait.HasMainInterface;
import com.speedment.runtime.config.trait.HasName;
@@ -58,24 +36,11 @@
import java.util.function.Supplier;
import java.util.stream.Stream;
-import static com.speedment.common.injector.State.RESOLVED;
-import com.speedment.generator.core.exception.SpeedmentGeneratorException;
-import static com.speedment.generator.core.translator.StandardTranslatorKey.*;
+import com.speedment.generator.translator.exception.SpeedmentTranslatorException;
import static java.util.Objects.requireNonNull;
public final class CodeGenerationComponentImpl implements CodeGenerationComponent {
- public static InjectBundle include() {
- return InjectBundle.of(
- EventComponentImpl.class,
- TypeMapperComponentImpl.class,
- TranslatorManagerImpl.class,
- JavaLanguageNamerImpl.class,
- PathComponentImpl.class,
- JavaGenerator.class
- );
- }
-
private @Inject Injector injector;
private final Map, Map>> map;
@@ -84,25 +49,6 @@ public CodeGenerationComponentImpl() {
map = new ConcurrentHashMap<>();
}
- @ExecuteBefore(RESOLVED)
- void installTranslators() {
- put(Table.class, ENTITY, EntityTranslator::new);
- put(Table.class, ENTITY_IMPL, EntityImplTranslator::new);
- put(Table.class, MANAGER, ManagerTranslator::new);
- put(Table.class, MANAGER_IMPL, ManagerImplTranslator::new);
- put(Table.class, GENERATED_ENTITY, GeneratedEntityTranslator::new);
- put(Table.class, GENERATED_ENTITY_IMPL, GeneratedEntityImplTranslator::new);
- put(Table.class, GENERATED_MANAGER, GeneratedManagerTranslator::new);
- put(Table.class, GENERATED_MANAGER_IMPL, GeneratedManagerImplTranslator::new);
- put(Project.class, APPLICATION, ApplicationTranslator::new);
- put(Project.class, APPLICATION_IMPL, ApplicationImplTranslator::new);
- put(Project.class, APPLICATION_BUILDER, ApplicationBuilderTranslator::new);
- put(Project.class, GENERATED_APPLICATION, GeneratedApplicationTranslator::new);
- put(Project.class, GENERATED_APPLICATION_IMPL, GeneratedApplicationImplTranslator::new);
- put(Project.class, GENERATED_APPLICATION_BUILDER, GeneratedApplicationBuilderTranslator::new);
- put(Project.class, GENERATED_METADATA, GeneratedMetadataTranslator::new);
- }
-
@SuppressWarnings("unchecked")
@Override
public >
@@ -171,8 +117,8 @@ Translator findTranslator(DOC document, Class modelType, String key)
.map(injector::inject);
}
- private static Supplier noTranslatorFound(HasMainInterface doc, String key) {
- return () -> new SpeedmentGeneratorException(
+ private static Supplier noTranslatorFound(HasMainInterface doc, String key) {
+ return () -> new SpeedmentTranslatorException(
"Found no translator with key '"
+ key + "' for document '"
+ doc.mainInterface().getSimpleName() + "'."
diff --git a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/component/TypeMapperComponentImpl.java b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/internal/component/TypeMapperComponentImpl.java
similarity index 94%
rename from generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/component/TypeMapperComponentImpl.java
rename to generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/internal/component/TypeMapperComponentImpl.java
index e567d7b8d5..eb447d97f0 100644
--- a/generator-parent/generator-core/src/main/java/com/speedment/generator/core/internal/component/TypeMapperComponentImpl.java
+++ b/generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/internal/component/TypeMapperComponentImpl.java
@@ -14,12 +14,12 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-package com.speedment.generator.core.internal.component;
+package com.speedment.generator.translator.internal.component;
import com.speedment.common.injector.Injector;
import com.speedment.common.injector.annotation.Inject;
-import com.speedment.generator.core.component.TypeMapperComponent;
-import com.speedment.generator.core.exception.SpeedmentGeneratorException;
+import com.speedment.generator.translator.exception.SpeedmentTranslatorException;
+import com.speedment.generator.translator.component.TypeMapperComponent;
import com.speedment.runtime.config.Column;
import com.speedment.runtime.typemapper.TypeMapper;
import com.speedment.runtime.typemapper.bigdecimal.BigDecimalToDouble;
@@ -146,7 +146,7 @@ public void install(Class> databaseType, Supplier> typeMapper
(TypeMapper