private void serializeMetaTypes() {
    if (!context.supertypes.isEmpty()) {
      processingEnv.getMessager().printMessage(Kind.NOTE, "Serializing Supertypes");
      serialize(conf.getSupertypeSerializer(), context.supertypes.values());
    }

    if (!context.entityTypes.isEmpty()) {
      processingEnv.getMessager().printMessage(Kind.NOTE, "Serializing Entity types");
      serialize(conf.getEntitySerializer(), context.entityTypes.values());
    }

    if (!context.extensionTypes.isEmpty()) {
      processingEnv.getMessager().printMessage(Kind.NOTE, "Serializing Extension types");
      serialize(conf.getEmbeddableSerializer(), context.extensionTypes.values());
    }

    if (!context.embeddableTypes.isEmpty()) {
      processingEnv.getMessager().printMessage(Kind.NOTE, "Serializing Embeddable types");
      serialize(conf.getEmbeddableSerializer(), context.embeddableTypes.values());
    }

    if (!context.projectionTypes.isEmpty()) {
      processingEnv.getMessager().printMessage(Kind.NOTE, "Serializing Projection types");
      serialize(conf.getDTOSerializer(), context.projectionTypes.values());
    }
  }