code: 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);
      }
docs: Export the contents
  
  @throws IOException