{
throw new NullPointerException();
}
final NamedStaticDataFactory staticDataFactory = (NamedStaticDataFactory) dataFactory;
final String fileName = BundleUtilities.getUniqueName(bundle, state.getFileName(), "datasources/static-ds{0}.xml");
if (fileName == null)
{
throw new IOException("Unable to generate unique name for the Named-Static-Data-Source");
}
final OutputStream outputStream = bundle.createEntry(fileName, "text/xml");
final DefaultTagDescription tagDescription = new DefaultTagDescription();
tagDescription.setNamespaceHasCData(StaticDataFactoryModule.NAMESPACE, false);
tagDescription.setElementHasCData(StaticDataFactoryModule.NAMESPACE, "query", true);
final XmlWriter xmlWriter = new XmlWriter(new OutputStreamWriter(outputStream, "UTF-8"), tagDescription, " ",
"\n");
xmlWriter.writeXmlDeclaration("UTF-8");
final AttributeList rootAttrs = new AttributeList();
rootAttrs.addNamespaceDeclaration("data", StaticDataFactoryModule.NAMESPACE);
xmlWriter.writeTag(StaticDataFactoryModule.NAMESPACE, "static-datasource", rootAttrs, XmlWriterSupport.OPEN);
final String[] queryNames = staticDataFactory.getQueryNames();
for (int i = 0; i < queryNames.length; i++)
{
final String queryName = queryNames[i];
final String query = staticDataFactory.getQuery(queryName);
xmlWriter.writeTag(StaticDataFactoryModule.NAMESPACE, "query", "name", queryName, XmlWriterSupport.OPEN);
xmlWriter.writeTextNormalized(query, false);
xmlWriter.writeCloseTag();
}
xmlWriter.writeCloseTag();