diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2013-08-07 23:53:53 +0200 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2013-08-07 23:53:53 +0200 |
commit | 26b01b500065634eb3133dc354a0ba71b13bff56 (patch) | |
tree | 2fed1b329f421b7da7bf6c223f17fad230d1b5bd /container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/SequencesGenerator.java | |
parent | dd150071369e825d4b4a59e15ad3291841c7ba13 (diff) | |
download | container-playground-26b01b500065634eb3133dc354a0ba71b13bff56.tar.gz container-playground-26b01b500065634eb3133dc354a0ba71b13bff56.tar.bz2 container-playground-26b01b500065634eb3133dc354a0ba71b13bff56.tar.xz container-playground-26b01b500065634eb3133dc354a0ba71b13bff56.zip |
wip
o Start of JPA implementation.
Diffstat (limited to 'container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/SequencesGenerator.java')
-rw-r--r-- | container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/SequencesGenerator.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/SequencesGenerator.java b/container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/SequencesGenerator.java new file mode 100644 index 0000000..07823af --- /dev/null +++ b/container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/SequencesGenerator.java @@ -0,0 +1,41 @@ +package io.trygvis.persistence.generators; + +import io.trygvis.container.compiler.SqlUnitModel; +import io.trygvis.container.compiler.model.ClassG; +import io.trygvis.container.compiler.model.FieldRef; +import io.trygvis.container.compiler.model.TypeRef; +import io.trygvis.persistence.SequenceMirror; + +import java.util.ArrayList; +import java.util.List; + +import static io.trygvis.container.compiler.Utils.toJavaString; +import static java.lang.reflect.Modifier.PUBLIC; +import static org.apache.commons.lang.StringUtils.capitalize; +import static org.apache.commons.lang.StringUtils.join; + +public class SequencesGenerator { + public static ClassG generateSequences(SqlUnitModel unit) { + TypeRef sequences = new TypeRef(unit.getPackageName() + ".Sequences"); + ClassG g = new ClassG(PUBLIC, sequences); + List<String> creates = new ArrayList<>(); + List<String> drops = new ArrayList<>(); + for (SequenceMirror sequence : unit.getSequences().values()) { + TypeRef stringType = g.imports.add(String.class); + String value = "CREATE SEQUENCE " + sequence.sequenceName + ";"; + FieldRef f = g.addPublicStaticFinalField(stringType, "create" + capitalize(sequence.name)). + value(toJavaString(value)); + creates.add(f.name); + + f = g.addPublicStaticFinalField(stringType, "drop" + capitalize(sequence.name)). + value(toJavaString("DROP SEQUENCE " + sequence.sequenceName) + ";"); + drops.add(f.name); + + } + g.addPublicStaticFinalField(new TypeRef(String[].class), "createSequences"). + value("new String[]{" + join(creates, ", ") + "}"); + g.addPublicStaticFinalField(new TypeRef(String[].class), "dropSequences"). + value("new String[]{" + join(drops, ", ") + "}"); + return g; + } +} |