SetaPDF_Core_Type_Dictionary Class representing a dictionary

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

Class hierarchy

Implements

Summary

Properties

$_entries

protected array SetaPDF_Core_Type_Dictionary::$_entries = array()

An array of SetaPDF_Core_Type_Dictionary_Entry objects

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()

The Objects to notify on any change

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

$_pdfStringCallbacks

protected array SetaPDF_Core_Type_Dictionary::$_pdfStringCallbacks = array()

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

$_usePdfStringCallbacks

protected boolean SetaPDF_Core_Type_Dictionary::$_usePdfStringCallbacks = false

Defines if this object make use of pdf string callbacks


Static Methods

writePdfString()

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

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()

public SetaPDF_Core_Type_AbstractType::__sleep (
void
): array

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()

public SetaPDF_Core_Type_Dictionary::attach (
SplObserver $observer
): void

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()

count()

public SetaPDF_Core_Type_Dictionary::count (
void
): int

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::ensure (
[ boolean|null $forceObservation = null ]
): SetaPDF_Core_Type_AbstractType

Returns the main value.

This method is used for automatically resolving of indirect references.

Parameters
$forceObservation : boolean|null
 

getKeys()

public SetaPDF_Core_Type_Dictionary::getKeys (
void
): array

Returns the key names.

getValue()

public SetaPDF_Core_Type_Dictionary::getValue (
[ string|null $offset = null ]
): array|SetaPDF_Core_Type_AbstractType|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()

public SetaPDF_Core_Type_AbstractType::isObserved (
void
): boolean

Checks if this object is observed.

key()

public SetaPDF_Core_Type_Dictionary::key (
void
): integer

Returns the key of the current element.

next()

Moves forward to next element.

notify()

public SetaPDF_Core_Type_AbstractType::notify (
void
): void

Notifies all attached observers.

Implementation of the Observer Pattern.

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

offsetExists()

public SetaPDF_Core_Type_Dictionary::offsetExists (
string $offset
): boolean

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 SetaPDF_Core_Type_Dictionary::offsetUnset (
string $offset
): void

Checks whether a offset exists.

Parameters
$offset : string
 

registerPdfStringCallback()

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

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

Parameters
$callback : callback
 
$name : string
 

rewind()

public SetaPDF_Core_Type_Dictionary::rewind (
void
): void

Rewinds the Iterator to the first element.

setValue()

public SetaPDF_Core_Type_Dictionary::setValue (
array $entries
): void

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 SetaPDF_Core_Type_Dictionary::toPhp (
void
): array

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

unRegisterPdfStringCallback()

Unregister a callback function.

Parameters
$name : string
 

update()

public SetaPDF_Core_Type_Dictionary::update (
SplSubject $SplSubject
): void

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

Parameters
$SplSubject : SplSubject
 

valid()

public SetaPDF_Core_Type_Dictionary::valid (
void
): boolean

Checks if current position is valid.

See

writeTo()

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

Parameters
$pdfDocument : SetaPDF_Core_Document