SetaPDF_Core_Type_IndirectReference Class representing an indirect reference
File: /SetaPDF v2/Core/Type/IndirectReference.php
Class hierarchy
Implements
Summary
Properties
$_objectId
The initial object id
$_objectIdent
The object identifier
$_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.
Static Methods
_ensureType()
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()
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()
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()
The constructor.
Parameters
- $objectId : integer|SetaPDF_Core_Type_IndirectObjectInterface
- $gen : integer|null
- $owner : SetaPDF_Core_Type_Owner
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.
attach()
Add an observer to the object.
Implementation of the Observer Pattern.
Parameters
- $observer : SplObserver
deepClone()
Clone the object recursively in the context of a document.
Parameters
- $document : SetaPDF_Core_Document
Exceptions
Throws SetaPDF_Core_Document_ObjectNotFoundException
Throws SetaPDF_Core_Exception
Throws SetaPDF_Core_Parser_Pdf_InvalidTokenException
Throws SetaPDF_Core_Reader_Exception
Throws SetaPDF_Core_Type_Exception
Throws SetaPDF_Exception
detach()
Detach an observer from the object.
Implementation of the Observer Pattern.
Parameters
- $observer : SplObserver
ensure()
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_Document_ObjectNotFoundException
Throws SetaPDF_Core_Exception
Throws SetaPDF_Core_Parser_Pdf_InvalidTokenException
Throws SetaPDF_Core_Reader_Exception
Throws SetaPDF_Core_Type_Exception
Throws SetaPDF_Core_Type_IndirectReference_Exception
Throws SetaPDF_Exception
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.
getValue()
Get the indirect object.
Exceptions
Throws SetaPDF_Core_Document_ObjectNotFoundException
Throws SetaPDF_Core_Exception
Throws SetaPDF_Core_Parser_Pdf_InvalidTokenException
Throws SetaPDF_Core_Reader_Exception
Throws SetaPDF_Core_Type_Exception
Throws SetaPDF_Core_Type_IndirectReference_Exception
Throws SetaPDF_Exception
notify()
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()
Returns the type as a formatted PDF string.
Parameters
- $pdfDocument : SetaPDF_Core_Document
writeTo()
Writes the type as a formatted PDF string to the document.
Parameters
- $pdfDocument : SetaPDF_Core_Document
Exceptions
Throws SetaPDF_Core_Exception