Class PdfObjectWrapper<T extends PdfObject>

    • Field Detail

      • pdfObject

        private T extends PdfObject pdfObject
    • Constructor Detail

      • PdfObjectWrapper

        protected PdfObjectWrapper​(T pdfObject)
    • Method Detail

      • getPdfObject

        public T getPdfObject()
      • makeIndirect

        public PdfObjectWrapper<T> makeIndirect​(PdfDocument document,
                                                PdfIndirectReference reference)
        Marks object behind wrapper to be saved as indirect.
        Parameters:
        document - a document the indirect reference belongs to.
        reference - a reference which will be assigned for the object behind wrapper.
        Returns:
        object itself.
      • makeIndirect

        public PdfObjectWrapper<T> makeIndirect​(PdfDocument document)
        Marks object behind wrapper to be saved as indirect.
        Parameters:
        document - a document the indirect reference will belong to.
        Returns:
        object itself.
      • flush

        public void flush()
      • isFlushed

        public boolean isFlushed()
      • isWrappedObjectMustBeIndirect

        protected abstract boolean isWrappedObjectMustBeIndirect()
        Defines if the object behind this wrapper must be an indirect object in the resultant document.

        If this method returns true it doesn't necessarily mean that object must be in the indirect state at any moment, but rather defines that when the object will be written to the document it will be transformed into indirect object if it's not indirect yet.

        Return value of this method shouldn't depend on any logic, it should return always true or false.
        Returns:
        true if in the resultant document the object behind the wrapper must be indirect, otherwise false.
      • setPdfObject

        protected void setPdfObject​(T pdfObject)
      • setForbidRelease

        protected void setForbidRelease()
      • unsetForbidRelease

        protected void unsetForbidRelease()
      • ensureUnderlyingObjectHasIndirectReference

        protected void ensureUnderlyingObjectHasIndirectReference()
      • markObjectAsIndirect

        protected static void markObjectAsIndirect​(PdfObject pdfObject)
      • ensureObjectIsAddedToDocument

        protected static void ensureObjectIsAddedToDocument​(PdfObject object)
        Some wrappers use object's indirect reference to obtain the PdfDocument to which the object belongs to. For this matter, for these wrappers it is implicitly defined that they work with indirect objects only. Commonly these wrappers have two constructors: one with PdfDocument as parameter to create a new object, and the other one which wraps around the given PdfObject. This method should be used in the second type of constructors to ensure that wrapper will able to obtain the PdfDocument instance.
        Parameters:
        object - the PdfObject to be checked if it is indirect.