tribble.archive
Interface WritableDocument

All Superinterfaces:
ArchiveDocument, java.io.Closeable
All Known Implementing Classes:
AbstractWritableDocument

public interface WritableDocument
extends ArchiveDocument

Generic writable archive document.

This interface extends ArchiveDocument by adding methods that allow a document to be created and modified. This is necessary for applications that create document objects, allowing them to set the document properties, data contents, etc., prior to storing it into an archive system.

Note that subclasses should not provide a public constructor, since document objects are meant to be created using the ArchiveWriter.createDocument() method instead. This is so that document IDs and default document properties can be established for newly created documents by the ArchiveWriter implementation as soon as possible, at the time that the document objects are created.

Note: This requires Java 1.5 or later.

Source code:
http://david.tribble.com/src/java/tribble/archive/WritableDocument.java
Documentation:
http://david.tribble.com/docs/tribble/archive/WritableDocument.html

Since:
2008-04-03
Version:
API 2.0, $Revision: 1.1 $ $Date: 2008/04/03 22:05:12 $
Author:
David R. Tribble (david@tribble.com) Copyright 2004 by David R. Tribble, all rights reserved.
See Also:
ArchiveWriter, AbstractWritableDocument

Field Summary
static java.lang.String REV
           
 
Method Summary
 void addProperty(WritableProperty prop)
          Add a property to this archive document.
 java.io.OutputStream putDataStream()
          Open a writable data stream to the contents of this archive document.
 void setID(java.lang.String id)
          Establish the ID of this archive document.
 void setProperty(java.lang.String prop, java.lang.Object val)
          Establish the value of a property in this archive document.
 void setSize(long len)
          Establish the data size for this archive document.
 
Methods inherited from interface tribble.archive.ArchiveDocument
close, getDataStream, getID, getProperties, getProperty, getSize
 

Field Detail

REV

static final java.lang.String REV
See Also:
Constant Field Values
Method Detail

setID

void setID(java.lang.String id)
           throws java.io.IOException,
                  java.lang.UnsupportedOperationException
Establish the ID of this archive document.

Parameters:
id - A name that identifies the document within the archive. Whether or not this name must be unique is up to the implementation.
Throws:
java.io.IOException - Thrown if an error occurred while accessing the document.
java.lang.UnsupportedOperationException - (unchecked) Thrown if this operation is not allowed by the implementation, i.e., if the IDs are assigned to archive documents by some other means.
Since:
API 2.0, 2008-04-03

setSize

void setSize(long len)
             throws java.io.IOException,
                    java.lang.UnsupportedOperationException
Establish the data size for this archive document.

Parameters:
len - The size (typically in bytes) of the document data, or -1 if the size is indeterminate.
Throws:
java.io.IOException - Thrown if an error occurred while modifying the document.
java.lang.UnsupportedOperationException - (unchecked) Thrown if this operation is not allowed by the implementation, i.e., if the sizes are assigned to archive documents by some other means.
Since:
API 2.0, 2008-04-03

setProperty

void setProperty(java.lang.String prop,
                 java.lang.Object val)
                 throws java.io.IOException
Establish the value of a property in this archive document.

Parameters:
prop - The name of the document property to set.
val - The new property value.
Throws:
java.io.IOException - Thrown if an error occurred while modifying the document, or if the document does not have the specified property.
Since:
API 2.0, 2008-04-03

addProperty

void addProperty(WritableProperty prop)
                 throws java.lang.UnsupportedOperationException,
                        java.io.IOException
Add a property to this archive document.

Parameters:
prop - A property to associate with this document.
Throws:
java.io.IOException - Thrown if an error occurred while modifying the document.
java.lang.UnsupportedOperationException - (unchecked) Thrown if this method is not supported by the implementation of this interface, i.e., the implementation assigns properties to documents by some other means.
Since:
API 2.0, 2008-04-03

putDataStream

java.io.OutputStream putDataStream()
                                   throws java.io.IOException
Open a writable data stream to the contents of this archive document.

Returns:
A writable binary data stream to which the contents of the document are to be written. Note that the stream must be flushed and closed (by calling its close() method) after the data is completely written in order to commit the data to the archive.
Throws:
java.io.IOException - Thrown if an error occurred while accessing the document.
Since:
API 2.0, 2008-04-03