public List<JavaFile> generate() { MigrationVersionMetadata migrationVersion = schemaName().migrationVersion(); return type() .stream() .map(type -> migrationVersion.generate(type)) .collect(MoreCollectors.toImmutableList()); }
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(); }