public void execute ( ) throws IOException { // collect types try { collectTypes ( ) ; } catch ( Exception e ) { throw new QueryException ( e ) ; } // go through supertypes Set < Supertype > additions = Sets . newHashSet ( ) ; for ( Map . Entry < Class < ? > , EntityType > entry : allTypes . entrySet ( ) ) { EntityType entityType = entry . getValue ( ) ; if ( entityType . getSuperType ( ) != null && ! allTypes . containsKey ( entityType . getSuperType ( ) . getType ( ) . getJavaClass ( ) ) ) { additions . add ( entityType . getSuperType ( ) ) ; } } for ( Supertype type : additions ) { type . setEntityType ( createEntityType ( type . getType ( ) , this . superTypes ) ) ; } // merge supertype fields into subtypes Set < EntityType > handled = new HashSet < EntityType > ( ) ; for ( EntityType type : superTypes . values ( ) ) { addSupertypeFields ( type , allTypes , handled ) ; } for ( EntityType type : entityTypes . values ( ) ) { addSupertypeFields ( type , allTypes , handled ) ; } for ( EntityType type : embeddableTypes . values ( ) ) { addSupertypeFields ( type , allTypes , handled ) ; } // serialize them serialize ( superTypes , supertypeSerializer ) ; serialize ( embeddableTypes , embeddableSerializer ) ; serialize ( entityTypes , entitySerializer ) ; }
Export the contents