private TypeSpec migrationType() { MigrationVersionMetadata migrationVersion = schemaName().migrationVersion(); ClassName className = migrationVersion.className(); return TypeSpec.classBuilder(className.simpleName()) .addAnnotation(migrationAnnotation()) .addTypes( tableInfoList() .stream() .map(TableInfoMetadata::type) .collect(MoreCollectors.toImmutableList())) .build(); }
private AnnotationSpec schemaAnnotation(MigrationVersionMetadata migrationVersion) { return AnnotationSpec.builder(Schema.class) .addMember("migrations", "{ $T.class }", migrationVersion.className()) .build(); }