# org.pdfclown.tokens.ObjectStream Class Reference

Object stream containing a sequence of PDF objects [PDF:1.6:3.4.6]. More...

Inheritance diagram for org.pdfclown.tokens.ObjectStream:

List of all members.

## Classes
class | ObjectEntry
## Public Member Functions
override PdfObject | Accept (IVisitor visitor, object data)
| Accepts a visit.
void | Add (int key, PdfDataObject value)
void | Clear ()
virtual PdfObject | Clone (File context)
| Creates a deep copy of this object within the specified file context.
object | Clone ()
| Creates a shallow copy of this object.
bool | ContainsKey (int key)
void | CopyTo (KeyValuePair< int, PdfDataObject >[] entries, int index)
IBuffer | GetBody (bool decode)
| Gets the stream body.
| ObjectStream (PdfDictionary header, IBuffer body)
| ObjectStream ()
bool | Remove (KeyValuePair< int, PdfDataObject > entry)
bool | Remove (int key)
PdfDataObject | Resolve ()
| Ensures this object to be resolved into its corresponding data object.
void | SetDataFile (FileSpecification value, bool preserve)
override PdfObject | Swap (PdfObject other)
| Swaps contents between this object and the other one.
bool | TryGetValue (int key, out PdfDataObject value)
PdfDirectObject | Unresolve ()
| Ensures this object to be unresolved into its corresponding indirect reference, if available.
override void | WriteTo (IOutputStream stream, File context)
| Serializes this object to the specified stream.
## Static Public Member Functions
static PdfObject | Clone (PdfObject @object, File context)
| Gets the clone of the specified object, registered inside the specified file context.
static PdfDataObject | Resolve (PdfObject @object)
| Ensures an indirect reference to be resolved into its corresponding data object.
static PdfDirectObject | Unresolve (PdfDataObject @object)
| Ensures a data object to be unresolved into its corresponding indirect reference, if available.
## Protected Member Functions
internal void | Update ()
| Updates the state of this object.
## Properties
ObjectStream | BaseStream`[get, set]`
| Gets/Sets the object stream extended by this one.
IBuffer | Body`[get]`
| Gets the decoded stream body.
virtual PdfIndirectObject | Container`[get]`
| Gets the indirect object containing this object.
int | Count`[get]`
PdfIndirectObject | DataContainer`[get]`
| Gets the indirect object containing the data associated to this object.
FileSpecification | DataFile`[get, set]`
| Gets/Sets the file containing the object data.
virtual File | File`[get]`
| Gets the file containing this object.
PdfDirectObject | Filter`[get, set]`
PdfDictionary | Header`[get]`
| Gets the stream header.
virtual PdfIndirectObject | IndirectObject`[get]`
| Gets the indirect object corresponding to this object.
bool | IsReadOnly`[get]`
ICollection< int > | Keys`[get]`
PdfDirectObject | Parameters`[get, set]`
override PdfObject | Parent`[get, set]`
| Gets/Sets the parent of this object.
virtual PdfReference | Reference`[get]`
| Gets the indirect reference of this object.
PdfDataObject | this [int key]`[get, set]`
override bool | Updateable`[get, set]`
| Gets/Sets whether the detection of object state changes is enabled.
override bool | Updated`[get, set]`
| Gets/Sets whether the initial state of this object has been modified.
ICollection< PdfDataObject > | Values`[get]`
internal override bool | Virtual`[get, set]`
| Gets/Sets whether this object acts like a null-object placeholder.

##

Object stream containing a sequence of PDF objects [PDF:1.6:3.4.6].

The purpose of object streams is to allow a greater number of PDF objects to be compressed, thereby substantially reducing the size of PDF files. The objects in the stream are referred to as compressed objects.

## Constructor & Destructor Documentation

org.pdfclown.tokens.ObjectStream.ObjectStream | ( |  | ) |

org.pdfclown.tokens.ObjectStream.ObjectStream | ( | PdfDictionary | header,
|  | IBuffer | body |
| ) |  |  |

## Member Function Documentation

override PdfObject org.pdfclown.tokens.ObjectStream.Accept | ( | IVisitor | visitor,
|  | object | data |
| ) |  |  | `[virtual]`

Accepts a visit.

Parameters:

  | visitor | Visiting object.
  | data | Supplemental data.

Returns:
  Result object.

Reimplemented from org.pdfclown.objects.PdfStream.

References org.pdfclown.objects.IVisitor.Visit().

void org.pdfclown.tokens.ObjectStream.Add | ( | int | key,
|  | PdfDataObject | value |
| ) |  |  |

void org.pdfclown.tokens.ObjectStream.Clear | ( |  | ) |

virtual PdfObject org.pdfclown.objects.PdfObject.Clone | ( | File | context | ) | `[virtual, inherited]`

Creates a deep copy of this object within the specified file context.

Reimplemented in org.pdfclown.objects.PdfSimpleObject< TValue >.

References org.pdfclown.files.File.Cloner.

object org.pdfclown.objects.PdfObject.Clone | ( |  | ) | `[inherited]`

Creates a shallow copy of this object.

References org.pdfclown.objects.PdfObject.Parent.

static PdfObject org.pdfclown.objects.PdfObject.Clone | ( | PdfObject @ | object,
|  | File | context |
| ) |  |  | `[static, inherited]`

Gets the clone of the specified object, registered inside the specified file context.

Parameters:

  | object | Object to clone into the specified file context.
  | context | File context of the cloning.

Referenced by org.pdfclown.objects.PdfObjectWrapper< PdfTextString >.Clone(), and org.pdfclown.objects.Cloner.Visit().

bool org.pdfclown.tokens.ObjectStream.ContainsKey | ( | int | key | ) |

void org.pdfclown.tokens.ObjectStream.CopyTo | ( | KeyValuePair< int, PdfDataObject >[] | entries,
|  | int | index |
| ) |  |  |

IBuffer org.pdfclown.objects.PdfStream.GetBody | ( | bool | decode | ) | `[inherited]`

Gets the stream body.

Parameters:

  | decode | Defines whether the body has to be decoded.

References org.pdfclown.documents.files.FileSpecification.GetInputStream(), and org.pdfclown.objects.PdfDictionary.Updateable.

bool org.pdfclown.tokens.ObjectStream.Remove | ( | KeyValuePair< int, PdfDataObject > | entry | ) |

bool org.pdfclown.tokens.ObjectStream.Remove | ( | int | key | ) |

Referenced by org.pdfclown.objects.PdfIndirectObject.Uncompress().

PdfDataObject org.pdfclown.objects.PdfObject.Resolve | ( |  | ) | `[inherited]`

Ensures this object to be resolved into its corresponding data object.

See also:
  Unresolve()

References org.pdfclown.objects.PdfReference.DataObject.

static PdfDataObject org.pdfclown.objects.PdfObject.Resolve | ( | PdfObject @ | object | ) | `[static, inherited]`

Ensures an indirect reference to be resolved into its corresponding data object.

Parameters:

  | object | Object to resolve.

Referenced by org.pdfclown.objects.Tree< TKey, TValue >.Remove(), org.pdfclown.documents.Pages.Remove(), org.pdfclown.documents.Page.ToXObject(), org.pdfclown.documents.contents.xObjects.XObject.Wrap(), org.pdfclown.documents.multimedia.Rendition.Wrap(), org.pdfclown.documents.contents.PropertyList.Wrap(), org.pdfclown.documents.contents.colorSpaces.Pattern.Wrap(), org.pdfclown.documents.multimedia.MediaOffset.Wrap(), org.pdfclown.documents.multimedia.MediaClip.Wrap(), org.pdfclown.documents.interchange.access.LanguageIdentifier.Wrap(), org.pdfclown.documents.contents.layers.LayerNode.Wrap(), org.pdfclown.documents.functions.Function.Wrap(), org.pdfclown.documents.files.FileSpecification.Wrap(), org.pdfclown.documents.interaction.navigation.document.Destination.Wrap(), org.pdfclown.documents.contents.colorSpaces.ColorSpace.Wrap(), org.pdfclown.documents.interaction.annotations.Annotation.Wrap(), and org.pdfclown.documents.interaction.actions.Action.Wrap().

void org.pdfclown.objects.PdfStream.SetDataFile | ( | FileSpecification | value,
|  | bool | preserve |
| ) |  |  | `[inherited]`

Parameters:

  | preserve | Indicates whether the data from the old data source substitutes the new one. This way data can be imported to/exported from local or preserved in case of external file location changed.

See also:
  DataFile

References org.pdfclown.objects.PdfObjectWrapper.BaseObject.

override PdfObject org.pdfclown.objects.PdfStream.Swap | ( | PdfObject | other | ) | `[virtual, inherited]`

Swaps contents between this object and the other one.

Parameters:

  | other | Object whose contents have to be swapped with this one's.

Returns:
  This object.

Implements org.pdfclown.objects.PdfObject.

References org.pdfclown.objects.PdfObject.Update().

bool org.pdfclown.tokens.ObjectStream.TryGetValue | ( | int | key,
|  | out PdfDataObject | value |
| ) |  |  |

PdfDirectObject org.pdfclown.objects.PdfObject.Unresolve | ( |  | ) | `[inherited]`

Ensures this object to be unresolved into its corresponding indirect reference, if available.

Returns:
  PdfReference, if available;

      this

  , otherwise.

See also:
  Resolve()

static PdfDirectObject org.pdfclown.objects.PdfObject.Unresolve | ( | PdfDataObject @ | object | ) | `[static, inherited]`

Ensures a data object to be unresolved into its corresponding indirect reference, if available.

Parameters:

  | object | Object to unresolve.

Returns:
  PdfReference, if available;

      object

  , otherwise.

internal void org.pdfclown.objects.PdfObject.Update | ( |  | ) | `[protected, inherited]`

Updates the state of this object.

Referenced by org.pdfclown.objects.PdfStream.Swap(), org.pdfclown.objects.PdfDictionary.Swap(), and org.pdfclown.objects.PdfArray.Swap().

override void org.pdfclown.tokens.ObjectStream.WriteTo | ( | IOutputStream | stream,
|  | File | context |
| ) |  |  | `[virtual]`

Serializes this object to the specified stream.

Parameters:

  | stream | Target stream.
  | context | File context.

Reimplemented from org.pdfclown.objects.PdfStream.

## Property Documentation

ObjectStream org.pdfclown.tokens.ObjectStream.BaseStream`[get, set]`

Gets/Sets the object stream extended by this one.

Both streams are considered part of a collection of object streams whose links form a directed acyclic graph.

IBuffer org.pdfclown.objects.PdfStream.Body`[get, inherited]`

Gets the decoded stream body.

Referenced by org.pdfclown.documents.contents.Contents.Flush(), org.pdfclown.documents.contents.fonts.CMap.Get(), org.pdfclown.documents.contents.fonts.Type1Font.GetNativeEncoding(), org.pdfclown.documents.contents.fonts.Font.Load(), and org.pdfclown.documents.contents.fonts.TrueTypeFont.LoadEncoding().

virtual PdfIndirectObject org.pdfclown.objects.PdfObject.Container`[get, inherited]`

Gets the indirect object containing this object.

See also:
  DataContainer, IndirectObject

Reimplemented in org.pdfclown.objects.PdfIndirectObject.

Referenced by org.pdfclown.tokens.CompressedWriter.WriteIncremental().

int org.pdfclown.tokens.ObjectStream.Count`[get]`

PdfIndirectObject org.pdfclown.objects.PdfObject.DataContainer`[get, inherited]`

Gets the indirect object containing the data associated to this object.

See also:
  Container, IndirectObject

FileSpecification org.pdfclown.objects.PdfStream.DataFile`[get, set, inherited]`

Gets/Sets the file containing the object data.

Implements org.pdfclown.documents.files.IFileResource.

virtual File org.pdfclown.objects.PdfObject.File`[get, inherited]`

Gets the file containing this object.

Reimplemented in org.pdfclown.objects.PdfIndirectObject.

Referenced by org.pdfclown.objects.Cloner.Visit().

PdfDirectObject org.pdfclown.objects.PdfStream.Filter`[get, set, inherited]`

PdfDictionary org.pdfclown.objects.PdfStream.Header`[get, inherited]`

Gets the stream header.

Referenced by org.pdfclown.documents.contents.fonts.Type1Font.GetNativeEncoding(), org.pdfclown.documents.contents.xObjects.ImageXObject.ImageXObject(), org.pdfclown.documents.contents.fonts.TrueTypeFont.LoadEncoding(), and org.pdfclown.documents.contents.xObjects.XObject.XObject().

virtual PdfIndirectObject org.pdfclown.objects.PdfObject.IndirectObject`[get, inherited]`

Gets the indirect object corresponding to this object.

See also:
  Container, DataContainer

Reimplemented in org.pdfclown.objects.PdfIndirectObject, and org.pdfclown.objects.PdfReference.

bool org.pdfclown.tokens.ObjectStream.IsReadOnly`[get]`

ICollection<int> org.pdfclown.tokens.ObjectStream.Keys`[get]`

PdfDirectObject org.pdfclown.objects.PdfStream.Parameters`[get, set, inherited]`

override PdfObject org.pdfclown.objects.PdfStream.Parent`[get, set, inherited]`

Gets/Sets the parent of this object.

See also:
  Container

Reimplemented from org.pdfclown.objects.PdfObject.

virtual PdfReference org.pdfclown.objects.PdfObject.Reference`[get, inherited]`

Gets the indirect reference of this object.

Reimplemented in org.pdfclown.objects.PdfIndirectObject, and org.pdfclown.objects.PdfReference.

Referenced by org.pdfclown.objects.PdfIndirectObject.Compress(), org.pdfclown.objects.Tree< TKey, TValue >.Remove(), and org.pdfclown.objects.Cloner.Visit().

PdfDataObject org.pdfclown.tokens.ObjectStream.this[int key]`[get, set]`

override bool org.pdfclown.objects.PdfStream.Updateable`[get, set, inherited]`

Gets/Sets whether the detection of object state changes is enabled.

Reimplemented from org.pdfclown.objects.PdfObject.

override bool org.pdfclown.objects.PdfStream.Updated`[get, set, inherited]`

Gets/Sets whether the initial state of this object has been modified.

Reimplemented from org.pdfclown.objects.PdfObject.

ICollection<PdfDataObject> org.pdfclown.tokens.ObjectStream.Values`[get]`

internal override bool org.pdfclown.objects.PdfStream.Virtual`[get, set, protected, inherited]`

Gets/Sets whether this object acts like a null-object placeholder.

Reimplemented from org.pdfclown.objects.PdfObject.

Copyright 2006-2013 Stefano Chizzolini. For more information, please visit PDF Clown home page.