net.sf.jasperreports.engine.export.oasis.ContentBuilder Maven / Gradle / Ivy
/*
* JasperReports - Free Java Reporting Library.
* Copyright (C) 2001 - 2014 TIBCO Software Inc. All rights reserved.
* http://www.jaspersoft.com
*
* Unless you have purchased a commercial license agreement from Jaspersoft,
* the following license terms apply:
*
* This program is part of JasperReports.
*
* JasperReports is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* JasperReports is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with JasperReports. If not, see .
*/
/*
* Special thanks to Google 'Summer of Code 2005' program for supporting this development
*
* Contributors:
* Majid Ali Khan - [email protected]
* Frank Sch�nheit - [email protected]
*/
package net.sf.jasperreports.engine.export.oasis;
import java.io.IOException;
import java.io.Writer;
import java.util.Collection;
import java.util.Iterator;
import net.sf.jasperreports.engine.export.zip.ExportZipEntry;
/**
* @author Teodor Danciu ([email protected])
*/
public class ContentBuilder
{
/**
*
*/
public static final String VERSION = "1.1";
/**
*
*/
private ExportZipEntry contentEntry;
private ExportZipEntry styleEntry;
private ExportZipEntry bodyEntry;
private Collection fontFaces;
private String mimeType;
private StringBuilder namedExpressions;
/**
*
*/
public ContentBuilder(
ExportZipEntry contentEntry,
ExportZipEntry styleEntry,
ExportZipEntry bodyEntry,
Collection fontFaces
)
{
this(
contentEntry,
styleEntry,
bodyEntry,
fontFaces,
OasisZip.MIME_TYPE_ODT
);
}
/**
*
*/
public ContentBuilder(
ExportZipEntry contentEntry,
ExportZipEntry styleEntry,
ExportZipEntry bodyEntry,
Collection fontFaces,
String mimeType
)
{
this(
contentEntry,
styleEntry,
bodyEntry,
fontFaces,
mimeType,
null
);
}
/**
*
*/
public ContentBuilder(
ExportZipEntry contentEntry,
ExportZipEntry styleEntry,
ExportZipEntry bodyEntry,
Collection fontFaces,
String mimeType,
StringBuilder namedExpressions
)
{
this.contentEntry = contentEntry;
this.styleEntry = styleEntry;
this.bodyEntry = bodyEntry;
this.fontFaces = fontFaces;
this.mimeType = mimeType;
this.namedExpressions = namedExpressions;
}
public void build() throws IOException
{
Writer writer = contentEntry.getWriter();
writer.write("\n");
writer.write("\n");
writer.write(" \n");
writer.write(" \n");
if (fontFaces != null)
{
for (Iterator it = fontFaces.iterator(); it.hasNext();)
{
String fontFace = it.next();
writer.write(" \n");
}
}
writer.write(" \n");
writer.write(" \n");
writer.flush();
styleEntry.writeData(contentEntry.getOutputStream());
writer.write(" \n");
writer.write(" \n");
writer.write(" \n");
writer.write(" \n");
writer.write("\n");
writer.write("\n");
writer.flush();
bodyEntry.writeData(contentEntry.getOutputStream());
if(namedExpressions != null){
writer.write(namedExpressions.toString());
}
writer.write(" \n \n");
writer.write(" \n");
writer.flush();
writer.close();
}
}