}
try
{
final TableDataFactory tableDataFactory = (TableDataFactory) dataFactory;
final String fileName = BundleUtilities.getUniqueName(bundle, state.getFileName(),
"datasources/inline-ds{0}.xml");
if (fileName == null)
{
throw new IOException("Unable to generate unique name for Inline-Data-Source");
}
final OutputStream outputStream = bundle.createEntry(fileName, "text/xml");
final DefaultTagDescription tagDescription = new DefaultTagDescription(
ClassicEngineBoot.getInstance().getGlobalConfig(), InlineDataFactoryModule.TAG_DEF_PREFIX);
final XmlWriter xmlWriter = new XmlWriter(new OutputStreamWriter(outputStream, "UTF-8"), tagDescription, " ",
"\n");
final AttributeList rootAttrs = new AttributeList();
rootAttrs.addNamespaceDeclaration("data", InlineDataFactoryModule.NAMESPACE);
xmlWriter.writeTag(InlineDataFactoryModule.NAMESPACE, "inline-datasource", rootAttrs, XmlWriterSupport.OPEN);
final String[] tables = tableDataFactory.getQueryNames();
for (int i = 0; i < tables.length; i++)
{
final String tableName = tables[i];
final TableModel tableModel = tableDataFactory.queryData(tableName, null);
xmlWriter.writeTag(InlineDataFactoryModule.NAMESPACE, "inline-table", "name", tableName, XmlWriterSupport.OPEN);
xmlWriter.writeTag(InlineDataFactoryModule.NAMESPACE, "definition", XmlWriterSupport.OPEN);
final Class[] colTypes = new Class[tableModel.getColumnCount()];