SetaPDF_Core_Type_IndirectObject Class representing an indirect object

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

Class hierarchy

Implements

Summary

Properties

$_gen

The initial generation number

$_objectId

The initial object id

$_objectIdent

The object identifier

$_observed

protected boolean SetaPDF_Core_Type_IndirectObject::$_observed = false

Defines if this object is under observation

$_observers

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.

$_value

The value of the indirect object


Static Methods

writePdfString()

public static SetaPDF_Core_Type_AbstractType::writePdfString (
SetaPDF_Core_WriteInterface $writer, mixed $value
): void

Parses a php value to a pdf string and writes it into a writer.

PHP data type -> PDF data type

Null -> SetaPDF_Core_Type_Null

Boolean -> SetaPDF_Core_Type_Boolean

Integer/Double -> SetaPDF_Core_Type_Numeric

String -> SetaPDF_Core_Type_String or SetaPDF_Core_Type_Name(if the string starts with "/")

Indexed array -> SetaPDF_Core_Type_Array

Associative array -> SetaPDF_Core_Type_Dictionary

Parameters
$writer : SetaPDF_Core_WriteInterface
 
$value : mixed
 
Exceptions

Throws InvalidArgumentException


Methods

__construct()

public SetaPDF_Core_Type_IndirectObject::__construct (
[ null|SetaPDF_Core_Type_AbstractType $value = null [, SetaPDF_Core_Type_Owner $owner = null [, integer $objectId = 0 [, integer $gen = 0 ]]]]
)

The constructor.

Parameters
$value : null|SetaPDF_Core_Type_AbstractType
 
$owner : SetaPDF_Core_Type_Owner
 
$objectId : integer
 
$gen : integer
 
Exceptions

Throws InvalidArgumentException

attach()

Add an observer to the object.

Implementation of the Observer Pattern. This overwritten method forwards the attach()-call to the value of the indirect object.

Parameters
$observer : SplObserver
 

cleanUp()

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

Ensures the access to the value.

This method automatically forwards the request to the value.

Parameters
$forceObservation : boolean|null
 

getGen()

public SetaPDF_Core_Type_IndirectObject::getGen (
void
): integer

Returns the initial generation number.

getObjectId()

Returns the initial object id.

getObjectIdent()

Get the Object Identifier.

This identifier has nothing to do with the object numbers of a PDF document. They will be used to map an object to document related object numbers.

getOwner()

Get the owner object of this indirect object.

getOwnerPdfDocument()

getValue()

isObserved()

public SetaPDF_Core_Type_AbstractType::isObserved (
void
): boolean

Checks if this object is observed.

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.

observe()

Observe the object if an owner document is attached.

setValue()

Sets the value of the PDF type.

Parameters
$value : SetaPDF_Core_Type_AbstractType
 
Exceptions

Throws InvalidArgumentException

toPdfString()

Returns the type as a formatted PDF string.

Parameters
$pdfDocument : SetaPDF_Core_Document
 

toPhp()

public SetaPDF_Core_Type_IndirectObject::toPhp (
void
): array

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

See

update()

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

Triggered if a value of this object is changed.

Forward this to other observing objects.

Parameters
$SplSubject : SplSubject
 

writeTo()

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

Parameters
$pdfDocument : SetaPDF_Core_Document