summaryrefslogtreecommitdiff
path: root/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/MyProcessor.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-compiler-plugin/src/main/java/io/trygvis/container/compiler/MyProcessor.java')
-rw-r--r--container-compiler-plugin/src/main/java/io/trygvis/container/compiler/MyProcessor.java24
1 files changed, 13 insertions, 11 deletions
diff --git a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/MyProcessor.java b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/MyProcessor.java
index 24cacf4..80b7283 100644
--- a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/MyProcessor.java
+++ b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/MyProcessor.java
@@ -1,10 +1,8 @@
package io.trygvis.container.compiler;
import io.trygvis.container.log.Log;
-import io.trygvis.persistence.EntityMirror;
import io.trygvis.persistence.SqlEntity;
import io.trygvis.persistence.SqlEntitySet;
-import io.trygvis.persistence.generators.DaoGenerator;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.processing.Completion;
@@ -23,14 +21,15 @@ import javax.lang.model.util.ElementFilter;
import javax.lang.model.util.Elements;
import javax.lang.model.util.Types;
import javax.persistence.Entity;
+import javax.persistence.MappedSuperclass;
import javax.tools.Diagnostic;
import java.util.HashSet;
import java.util.Set;
import static io.trygvis.container.compiler.Utils.writeFile;
import static io.trygvis.persistence.generators.SequencesGenerator.generateSequences;
-import static io.trygvis.persistence.generators.SqlSessionGenerator.generateSqlSession;
import static io.trygvis.persistence.generators.SqlSessionFactoryGenerator.generateSqlSessionFactory;
+import static io.trygvis.persistence.generators.SqlSessionGenerator.generateSqlSession;
import static java.util.Arrays.asList;
import static java.util.Collections.emptyList;
import static java.util.Collections.emptySet;
@@ -100,6 +99,7 @@ public class MyProcessor implements Processor {
}
boolean first = true;
+
public boolean work(RoundEnvironment roundEnv) throws Exception {
if (!first) {
return false;
@@ -109,6 +109,7 @@ public class MyProcessor implements Processor {
TypeElement tx = elements.getTypeElement(Transactional.class.getCanonicalName());
TypeElement log = elements.getTypeElement(Log.class.getCanonicalName());
TypeElement entity = elements.getTypeElement(Entity.class.getCanonicalName());
+ TypeElement mappedSuperclass = elements.getTypeElement(MappedSuperclass.class.getCanonicalName());
SqlUnitModel unit = new SqlUnitModel();
EntityHandler entityHandler = new EntityHandler(processingEnv, unit);
@@ -129,15 +130,16 @@ public class MyProcessor implements Processor {
if (types.isSameType(log.asType(), annotationType)) {
new LogHandler(processingEnv).processLog((TypeElement) element);
}
- if (types.isSameType(entity.asType(), annotationType)) {
- try {
- entityHandler.recordEntity((TypeElement) element);
- } catch (CompilerException e) {
-// e.printStackTrace(System.out);
- Messager messager = processingEnv.getMessager();
- messager.printMessage(Diagnostic.Kind.ERROR, e.getMessage(), e.element);
- hadErrors = true;
+ try {
+ if (types.isSameType(entity.asType(), annotationType)) {
+ entityHandler.record((TypeElement) element, false);
+ } else if (types.isSameType(mappedSuperclass.asType(), annotationType)) {
+ entityHandler.record((TypeElement) element, true);
}
+ } catch (CompilerException e) {
+ Messager messager = processingEnv.getMessager();
+ messager.printMessage(Diagnostic.Kind.ERROR, e.getMessage(), e.element);
+ hadErrors = true;
}
}
}