package org.jboss.tools.hibernate.runtime.v_3_5.internal; import java.io.File; import java.util.Map; import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2x.HibernateMappingExporter; import org.hibernate.tool.hbm2x.pojo.POJOClass; import org.jboss.tools.hibernate.runtime.common.IFacadeFactory; import org.jboss.tools.hibernate.runtime.spi.IExportPOJODelegate; public class HibernateMappingExporterExtension extends HibernateMappingExporter { private IExportPOJODelegate delegateExporter; private IFacadeFactory facadeFactory; public HibernateMappingExporterExtension(IFacadeFactory facadeFactory, Configuration cfg, File file) { super(cfg, file); this.facadeFactory = facadeFactory; } public void setDelegate(IExportPOJODelegate delegate) { delegateExporter = delegate; } public void superExportPOJO(Map<Object, Object> map, POJOClass pojoClass) { super.exportPOJO(map, pojoClass); } @SuppressWarnings({ "rawtypes", "unchecked" }) @Override protected void exportPOJO(Map map, POJOClass pojoClass) { if (delegateExporter == null) { super.exportPOJO(map, pojoClass); } else { delegateExporter.exportPOJO( (Map<Object, Object>)map, facadeFactory.createPOJOClass(pojoClass)); } } }