What is everyones thoughts on having Exporter contain methods for create, drop and alter scenarios versus getting Exporter per each of those actions?
interface Exporter<T extends Exportable> { public String[] sqlCreateStrings(T exportable, Dialect dialect); public String[] sqlDropStrings(T exportable, Dialect dialect); public String[] sqlMigrationStrings(T exportable, Dialect dialect); } + Exporter<Table> gerTableExporter() { return ...; } versus interface Exporter<T extends Exportable> { public String[] sqlExportStrings(T exportable, Dialect dialect); } Exporter<Table> gerTableExporter(Exporter.Action typeOrExport) { return ...; } I think the first is simpler for our use cases, but I can see how the seconds might be simpler for custom ones. On Fri 10 Aug 2012 01:49:48 AM CDT, Gail Badner wrote: > +1 > > ----- Original Message ----- >> From: "Strong Liu" <st...@hibernate.org> >> To: "Steve Ebersole" <st...@hibernate.org> >> Cc: "Hibernate hibernate-dev" <hibernate-dev@lists.jboss.org> >> Sent: Thursday, August 9, 2012 9:15:32 PM >> Subject: Re: [hibernate-dev] SchemaManagementTool / Exportable >> >> >> +1 >> >> On Aug 10, 2012, at 12:38 AM, Steve Ebersole <st...@hibernate.org> >> wrote: >> >>> The basics of org.hibernate.service.schema.spi.SchemaManagementTool >>> are >>> essentially done. There is a lot of clean up I want to do after >>> Configuration is gutted or removed, changing how SchemaExport, etc >>> work >>> internally. >>> >>> But one thing I wanted to discuss was to change up how Exportable >>> works. >>> Today, its really not much different than what we used to do. The >>> database objects themselves know how to render themselves into SQL >>> CREATE/DROP/ALTER commands. What I am contemplating is >>> externalizing >>> this rendering (lets call them ExportableRenderer, thought better >>> names >>> welcome). This would serve 2 useful purposes: >>> 1) Clean up the Table, Sequence, etc code clutter. >>> 2) Allow plugging in alternate renderings for things. This could >>> be >>> dialects or users or event custom SchemaManagementTool supplied. >>> >>> WDYT? >>> >>> -- >>> st...@hibernate.org >>> http://hibernate.org >>> _______________________________________________ >>> hibernate-dev mailing list >>> hibernate-dev@lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/hibernate-dev >> >> ------------------------- >> Best Regards, >> >> Strong Liu <stliu at hibernate.org> >> http://about.me/stliu/bio >> >> _______________________________________________ >> hibernate-dev mailing list >> hibernate-dev@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/hibernate-dev >> -- st...@hibernate.org http://hibernate.org _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev