From e78c0a1e4a4ebc71502dceccc9ae640862b7ce9e Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sun, 11 Aug 2013 22:35:02 +0200 Subject: o Overhauling inheritance, adding a decent start of support for @MappedSuperclass. --- .../io/trygvis/container/compiler/MyProcessor.java | 24 ++++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'container-compiler-plugin/src/main/java/io/trygvis/container/compiler/MyProcessor.java') 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; } } } -- cgit v1.2.3