SetaPDF_Core_Type_IndirectReference Class representing an indirect reference

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

Class hierarchy

Implements

Summary

Properties

$_gen

The initial generation number

$_objectId

The initial object id

$_objectIdent

The object identifier

$_observed

Defines if this object is under observation

$_observers

protected array SetaPDF_Core_Type_AbstractType::$_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.


Static Methods

_ensureType()

protected static SetaPDF_Core_Type_AbstractType::_ensureType (
string $type, mixed $value, string $errorMessage [, $ensure = true ]
): mixed

Ensure that a value is an instance of a specific PDF type.

Parameters
$type : string
 
$value : mixed
 
$errorMessage : string
 
$ensure
 
Exceptions

Throws SetaPDF_Core_Type_Exception

ensureType()

Ensures that the passed value is a SetaPDF_Core_Type_IndirectReference instance.

Parameters
$value : mixed
 
Exceptions

Throws SetaPDF_Core_Type_Exception

ensureWithType()

Ensures that the passed value is an instance of the passed type.

Parameters
$type : string
 
$value : mixed
 
Exceptions

Throws SetaPDF_Core_Type_Exception

is()

public static SetaPDF_Core_Type_AbstractType::is (
string $type, mixed $value [, bool $ensure = true ]
): bool

Checks if the type of a value is the expected one.

Indirect references will be evaluated if $ensure is set to true.

Parameters
$type : string
 
$value : mixed
 
$ensure : bool
 

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_IndirectReference::__construct (
integer|SetaPDF_Core_Type_IndirectObjectInterface $objectId [, integer|null $gen = 0 [, SetaPDF_Core_Type_Owner $owner = null ]]
)

The constructor.

Parameters
$objectId : integer|SetaPDF_Core_Type_IndirectObjectInterface
 
$gen : integer|null
 
$owner : SetaPDF_Core_Type_Owner
 
Exceptions

Throws InvalidArgumentException

__clone()

Implementation of __clone().

__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.

__wakeup()

Implementation of __wakeup.

Unset the observed flag.

attach()

Add an observer to the object.

Implementation of the Observer Pattern.

Parameters
$observer : SplObserver
 

cleanUp()

deepClone()

Clone the object recursively in the context of a document.

Parameters
$document : SetaPDF_Core_Document
 
Exceptions

Throws SetaPDF_Core_Type_IndirectReference_Exception

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

Automatically resolves the indirect reference to the object.

The $forceObservation is used to forward/handle the observer pattern.

If it is set to true or this object is observed already the resolved object will get observed automatically.

If the parameter is set to false, the document is detached from the resolved object, so that it is only possible to use this object as a read only object.

Parameters
$forceObservation : boolean

If this is set to true, the resolved object will be observed automatically

Exceptions

Throws SetaPDF_Core_Type_IndirectReference_Exception

Throws SetaPDF_Core_Document_ObjectNotFoundException

getGen()

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

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.

setValue()

Set the indirect object value.

Parameters
$value : SetaPDF_Core_Type_IndirectObject
 
Exceptions

Throws InvalidArgumentException

toPdfString()

public SetaPDF_Core_Type_IndirectReference::toPdfString (
[ SetaPDF_Core_Document $pdfDocument = null ]
): string

Returns the type as a formatted PDF string.

Parameters
$pdfDocument : SetaPDF_Core_Document
 

toPhp()

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

See

writeTo()

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

Parameters
$pdfDocument : SetaPDF_Core_Document