setasign\SetaPDF2\Core\Type

PdfIndirectObject Class representing an indirect object

File: /SetaPDF v2/Core/Type/PdfIndirectObject.php
Old class name (alias): \SetaPDF_Core_Type_IndirectObject

Class hierarchy

Implements

Summary

Properties

$_gen

protected int PdfIndirectObject::$_gen = 0

The initial generation number

$_objectId

The initial object id

$_objectIdent

protected string PdfIndirectObject::$_objectIdent

The object identifier

$_observed

protected bool AbstractType::$_observed = false

Defines if this object is under observation

$_observers

protected array 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.

$_owner

The owner object

$_value

The value of the indirect object

$metadata

public array AbstractType::$metadata = array()

An array for individual metadata.


Static Methods

_ensureType()

protected static 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 Exception

ensureType()

public static PdfIndirectObject::ensureType (
mixed $indirectObject
): self

Ensures that the passed value is a PdfIndirectObject instance.

Parameters
$indirectObject : mixed
 
Exceptions

Throws Exception

ensureWithType()

public static AbstractType::ensureWithType (
string $type,
mixed $value
): \SetaPDF_Core_Type_AbstractType

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

Parameters
$type : string
 
$value : mixed
 
Exceptions

Throws Exception

is()

public static 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 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 -> PdfNull

Boolean -> PdfBoolean

Integer/Double -> PdfNumeric

String -> PdfString or PdfName(if the string starts with "/")

Indexed array -> PdfArray

Associative array -> PdfDictionary

Parameters
$writer : \SetaPDF_Core_WriteInterface
 
$value : mixed
 
Exceptions

Throws \InvalidArgumentException


Methods

__construct()

public PdfIndirectObject::__construct (
?\SetaPDF_Core_Type_AbstractType $value = null,
?\SetaPDF_Core_Type_Owner $owner = null,
int $objectId = 0,
int $gen = 0
)

The constructor.

Parameters
$value : ?\SetaPDF_Core_Type_AbstractType
 
$owner : ?\SetaPDF_Core_Type_Owner
 
$objectId : int
 
$gen : int
 
Exceptions

Throws \InvalidArgumentException

attach()

public PdfIndirectObject::attach (
\SplObserver $observer
): void

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

public PdfIndirectObject::cleanUp (
void
): void

Release objects/memory.

See

deepClone()

Clone the object recursively in the context of a document.

Parameters
$document : \SetaPDF_Core_Document
 

detach()

public AbstractType::detach (
\SplObserver $observer
): void

Detach an observer from the object.

Implementation of the Observer Pattern.

Parameters
$observer : \SplObserver
 

detachAll()

public AbstractType::detachAll (
void
): void

Detach all observers from this object.

Be careful with this method!!!

ensure()

public PdfIndirectObject::ensure (
?bool $forceObservation = null,
array &$ensuredObjectsList = array ( )
): \SetaPDF_Core_Type_AbstractType

Ensures the access to the value.

This method automatically forwards the request to the value.

Parameters
$forceObservation : ?bool
 
$ensuredObjectsList : array

A list of all ensured indirect objects to prevent recursion

getGen()

public PdfIndirectObject::getGen (
void
): int

Returns the initial generation number.

getObjectId()

public PdfIndirectObject::getObjectId (
void
): int

Returns the initial object id.

getObjectIdent()

public PdfIndirectObject::getObjectIdent (
void
): string

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

Returns the owner document.

getValue()

Gets the PDF value.

isObserved()

public AbstractType::isObserved (
void
): bool

Checks if this object is observed.

notify()

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

public PdfIndirectObject::observe (
void
): void

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

public PdfIndirectObject::toPdfString (
?\SetaPDF_Core_Document $pdfDocument = null
): string

Returns the type as a formatted PDF string.

Parameters
$pdfDocument : ?\SetaPDF_Core_Document
 

toPhp()

public PdfIndirectObject::toPhp (
void
): array

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

See

update()

public PdfIndirectObject::update (
\SplSubject $SplSubject
): void

Triggered if a value of this object is changed.

Forward this to other observing objects.

Parameters
$SplSubject : \SplSubject
 

writeTo()

public PdfIndirectObject::writeTo (
\SetaPDF_Core_Document $pdfDocument
): void

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

Parameters
$pdfDocument : \SetaPDF_Core_Document