SetaPDF_Core_Type_Dictionary Class representing a dictionary

File: /SetaPDF/Core/Type/Dictionary.php

Class hierarchy

Implements

Summary

Properties

$_entries

protected array An array of SetaPDF_Core_Type_Dictionary_Entry objects SetaPDF_Core_Type_Dictionary::$_entries = array()

The entries/values in the dictionary

$_observed

protected boolean SetaPDF_Core_Type_Dictionary::$_observed = false

Defines if this object is under observation

$_observers

protected array SetaPDF_Core_Type_Dictionary::$_observers = array()

This will be the PDF document or another value holding this one. Initially this will be an array.

$_pdfStringCallbacks

An array of callbacks before this object is converted to a PDF string.

$_usePdfStringCallbacks

Defines if this object make use of pdf string callbacks


Static Methods

writePdfString()

static public void SetaPDF_Core_Type_Dictionary::writePdfString ( SetaPDF_Core_WriteInterface $writer, array $values )

Parses an associative array to a pdf dictionary string and writes it to a writer.

Parameters
$writer : SetaPDF_Core_WriteInterface
 
$values : array
 
Exceptions

Throws InvalidArgumentException

See

Methods

__construct()

public SetaPDF_Core_Type_Dictionary::__construct ( [ array $entries = null ] )

The constructor.

Parameters
$entries : array

An array filled with SetaPDF_Core_Type_Dictionary_Entry OR an associative array

Exceptions

Throws InvalidArgumentException

__sleep()

Implementation of __sleep.

We remove the observers from all elements because they will get read if they are waked up in an observed object.

_handlePdfStringCallback()

Execute the registered callbacks before the object is converted to a PDF string.

attach()

Add an observer to the object.

Implementation of the Observer Pattern. This overwritten method forwards the attach()-call to all dictionary values.

Parameters
$observer : SplObserver
 

cleanUp()

Release objects/memory.

See

count()

public int SetaPDF_Core_Type_Dictionary::count ( void )

Returns the number of elements in the dictionary.

current()

Returns the current element.

deepClone()

Clone the object recursively in the context of a document.

Parameters
$document : SetaPDF_Core_Document
 

detach()

Detach an observer from the object.

Implementation of the Observer Pattern.

Parameters
$observer : SplObserver
 

detachAll()

Detach all observers from this object.

Be careful with this method!!!

ensure()

public SetaPDF_Core_Type_AbstractType SetaPDF_Core_Type_AbstractType::ensure ( [ boolean|null $forceObservation = null ] )

Returns the main value.

This method is used for automatically resolving of indirect references.

Parameters
$forceObservation : boolean|null
 

getKeys()

public array SetaPDF_Core_Type_Dictionary::getKeys ( void )

Returns the key names.

getValue()

public array|SetaPDF_Core_Type_AbstractType|null SetaPDF_Core_Type_Dictionary::getValue ( [ string|null $offset = null ] )

Gets the value.

Returns all entries of this dictionary or a specific value of a named entry.

Parameters
$offset : string|null

The name of the entry or null to receive all entries

Return Values

An array of SetaPDF_Core_Type_Dictionary_Entry objects, a SetaPDF_Core_Type_AbstractType instance or null if the given offset was not found

isObserved()

Checks if this object is observed.

key()

public integer SetaPDF_Core_Type_Dictionary::key ( void )

Returns the key of the current element.

next()

Moves forward to next element.

notify()

Notifies all attached observers.

Implementation of the Observer Pattern.

Has to be called by any method that changes a value.

offsetExists()

public boolean SetaPDF_Core_Type_Dictionary::offsetExists ( string $offset )

Checks whether a offset exists.

Parameters
$offset : string

An offset to check for.

offsetGet()

Offset to retrieve.

Parameters
$offset : string

The offset to retrieve.

offsetSet()

Offset to set.

If offset is null then the value need to be a SetaPDF_Core_Type_Dictionary_Entry.

If value is scalar and offset is already set the setValue method of the offset will be used.

Otherwise it should be an instance of SetaPDF_Core_Type_AbstractType.

Parameters
$offset : null|string|SetaPDF_Core_Type_Name

The offset to assign the value to.

$value : SetaPDF_Core_Type_Dictionary_Entry|SetaPDF_Core_Type_AbstractType|mixed

The value to set.

Exceptions

Throws InvalidArgumentException

offsetUnset()

public void SetaPDF_Core_Type_Dictionary::offsetUnset ( string $offset )

Checks whether a offset exists.

Parameters
$offset : string
 

registerPdfStringCallback()

public void SetaPDF_Core_Type_Dictionary::registerPdfStringCallback ( callback $callback, string $name )

Register a callback function which is called before the object is converted to a PDF string.

Parameters
$callback : callback
 
$name : string
 

rewind()

public void SetaPDF_Core_Type_Dictionary::rewind ( void )

Rewinds the Iterator to the first element.

setValue()

public void SetaPDF_Core_Type_Dictionary::setValue ( array $entries )

Set the values of the dictionary.

Parameters
$entries : array

Array of SetaPDF_Core_Type_Dictionary_Entry objects

Exceptions

Throws InvalidArgumentException

toPdfString()

Returns the type as a formatted PDF string.

Parameters
$pdfDocument : SetaPDF_Core_Document
 

toPhp()

public array SetaPDF_Core_Type_Dictionary::toPhp ( void )

Converts the PDF data type to a PHP data type and returns it.

unRegisterPdfStringCallback()

Unregister a callback function.

Parameters
$name : string
 

update()

public void SetaPDF_Core_Type_Dictionary::update ( SplSubject $SplSubject )

Triggered if a value of this object is changed. Forward this to the "parent" object.

Parameters
$SplSubject : SplSubject
 

valid()

public boolean SetaPDF_Core_Type_Dictionary::valid ( void )

Checks if current position is valid.

See

writeTo()

Writes the type as a formatted PDF string to the document.

Parameters
$pdfDocument : SetaPDF_Core_Document