Skip to content

Commit 99c643f

Browse files
janariosebersole
authored andcommitted
Changed to keep generated classes in Context
1 parent 9352546 commit 99c643f

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

tooling/metamodel-generator/src/main/java/org/hibernate/jpamodelgen/Context.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.Collection;
1111
import java.util.Collections;
1212
import java.util.HashMap;
13+
import java.util.HashSet;
1314
import java.util.List;
1415
import java.util.Map;
1516
import javax.annotation.processing.ProcessingEnvironment;
@@ -60,6 +61,9 @@ public final class Context {
6061
private boolean addSuppressWarningsAnnotation;
6162
private AccessType persistenceUnitDefaultAccessType;
6263

64+
// keep track of all classes for which model have been generated
65+
private final Collection<String> generatedModelClasses = new HashSet<String>();
66+
6367
public Context(ProcessingEnvironment pe) {
6468
this.pe = pe;
6569

@@ -181,6 +185,14 @@ public TypeElement getTypeElementForFullyQualifiedName(String fqcn) {
181185
return elementUtils.getTypeElement( fqcn );
182186
}
183187

188+
void markGenerated(String name) {
189+
generatedModelClasses.add( name );
190+
}
191+
192+
boolean isAlreadyGenerated(String name) {
193+
return generatedModelClasses.contains( name );
194+
}
195+
184196
public void logMessage(Diagnostic.Kind type, String message) {
185197
if ( !logDebug && type.equals( Diagnostic.Kind.OTHER ) ) {
186198
return;

tooling/metamodel-generator/src/main/java/org/hibernate/jpamodelgen/JPAMetaModelEntityProcessor.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -137,13 +137,13 @@ public boolean process(final Set<? extends TypeElement> annotations, final Round
137137
}
138138

139139
private void createMetaModelClasses() {
140-
// keep track of all classes for which model have been generated
141-
Collection<String> generatedModelClasses = new ArrayList<String>();
142-
143140
for ( MetaEntity entity : context.getMetaEntities() ) {
141+
if ( context.isAlreadyGenerated( entity.getQualifiedName() ) ) {
142+
continue;
143+
}
144144
context.logMessage( Diagnostic.Kind.OTHER, "Writing meta model for entity " + entity );
145145
ClassWriter.writeFile( entity, context );
146-
generatedModelClasses.add( entity.getQualifiedName() );
146+
context.markGenerated( entity.getQualifiedName() );
147147
}
148148

149149
// we cannot process the delayed entities in any order. There might be dependencies between them.
@@ -154,7 +154,7 @@ private void createMetaModelClasses() {
154154
int toProcessCountBeforeLoop = toProcessEntities.size();
155155
for ( MetaEntity entity : toProcessEntities ) {
156156
// see METAGEN-36
157-
if ( generatedModelClasses.contains( entity.getQualifiedName() ) ) {
157+
if ( context.isAlreadyGenerated( entity.getQualifiedName() ) ) {
158158
processedEntities.add( entity );
159159
continue;
160160
}
@@ -165,6 +165,7 @@ private void createMetaModelClasses() {
165165
Diagnostic.Kind.OTHER, "Writing meta model for embeddable/mapped superclass" + entity
166166
);
167167
ClassWriter.writeFile( entity, context );
168+
context.markGenerated( entity.getQualifiedName() );
168169
processedEntities.add( entity );
169170
}
170171
toProcessEntities.removeAll( processedEntities );

0 commit comments

Comments
 (0)