Code Search for Developers
 
 
  

IDocArchiveWriter.java from BIRT at Krugle


Show IDocArchiveWriter.java syntax highlighted

/*******************************************************************************
 * Copyright (c) 2004 Actuate Corporation.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *  Actuate Corporation  - initial API and implementation
 *******************************************************************************/

package org.eclipse.birt.core.archive;

import java.io.IOException;

/**
 * An interface that wraps around a report archive for reading. A report 
 * archive may be, but is not limited to a zip file in compressed format, 
 * a folder in uncompressed format. 
 * 
 * Notice that the interface does not define archive file name, nor 
 * does it define folder name to store/uncompress the archive to. 
 * Setting such environments up is implementation class's  
 * responsibility. 
 */
public interface IDocArchiveWriter {

	/**
	 * This function must be called before the writer is used.
	 *  initialize the document archive. 
	 */
	public void initialize( ) throws IOException;
	
	/**
	 * @return the archive name
	 */
	public String getName();

	/**
	 * Create a random access stream in the archive and return it.
	 * 
	 * @param relativePath - relative path to report archive path. The path is based on Unix 
	 * 						syntax, with the root of the archive denoted by "/". The 
	 * 						initial "/" character can be skipped.
	 *  
	 * @return RAOutputStream
	 */
	public RAOutputStream createRandomAccessStream(String relativePath) throws IOException;
	
	/**
	 * Delete a stream from the archive. 
	 * Note: Not all of the derived classes support this function. E.g. FileArchiveWriter doesn't support it.  
	 * @param relativePath - the relative path of the stream
	 * @return whether the operation was successful
	 * @throws IOException
	 */
	public boolean dropStream( String relativePath );
	
	/**
	 * @param relativePath - the relative stream path in the archive. 
	 * The relative path is based on Unix syntax, with the root of the archive denoted 
	 * by "/". The initial "/" character can be skipped.
	 * 
	 * @return a list of strings representing the underlying stream 
	 * names. The return values are in the relative path format too.  
	 */
	public boolean exists( String relativePath );

	/**
	 * Set the stream sorter (if needed). The stream sorter will be used to sort the streams. If no stream sorter is set, the streams will be written in random order.
	 * @param streamSorter - the stream sorter
	 */
	public void setStreamSorter( IStreamSorter streamSorter );
	
	/**
	 * This function must be called after the writer is used.
	 * finalizes the socument archive. This may involve compressing the archive
	 * to a single file. This also closes and finishes using the archive.
	 */
	public void finish() throws IOException;
	
	/**
	 * This function flushs all the buffers in the writer
	 * @throws IOException
	 */
	public void flush( ) throws IOException;
	
	/**
	 * try to lock the stream
	 * @param stream
	 * @return the locker.
	 * @throws IOException
	 */
	public Object lock(String stream) throws IOException;
	
	/**
	 * unlock the stream locked by the object.
	 * @param locker object returned by the lock().
	 * @throws IOException
	 */
	public void unlock(Object locker);
}




See more files for this project here

BIRT

BIRT is an open source, Eclipse-based reporting system that integrates with your application to produce compelling reports for both web and PDF.

Project homepage: http://www.eclipse.org/birt/phoenix/
Programming language(s): Java,XML
License: gpl2

  ArchiveUtil.java
  DocArchiveLockManager.java
  FileArchiveReader.java
  FileArchiveWriter.java
  FolderArchive.java
  FolderArchiveReader.java
  FolderArchiveWriter.java
  IDocArchiveReader.java
  IDocArchiveWriter.java
  IStreamSorter.java
  RAFileInputStream.java
  RAFileOutputStream.java
  RAFolderInputStream.java
  RAFolderOutputStream.java
  RAInputStream.java
  RAOutputStream.java
  RAStreamBuffer.java
  RAStreamBufferMgr.java