diff options
Diffstat (limited to 'libqpdf/QPDFObjectHandle.cc')
-rw-r--r-- | libqpdf/QPDFObjectHandle.cc | 59 |
1 files changed, 58 insertions, 1 deletions
diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index 54897b83..9b51a0cb 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -7,6 +7,8 @@ #include <qpdf/QPDF_Real.hh> #include <qpdf/QPDF_Name.hh> #include <qpdf/QPDF_String.hh> +#include <qpdf/QPDF_Keyword.hh> +#include <qpdf/QPDF_InlineImage.hh> #include <qpdf/QPDF_Array.hh> #include <qpdf/QPDF_Dictionary.hh> #include <qpdf/QPDF_Stream.hh> @@ -152,6 +154,20 @@ QPDFObjectHandle::isString() } bool +QPDFObjectHandle::isKeyword() +{ + dereference(); + return QPDFObjectTypeAccessor<QPDF_Keyword>::check(obj.getPointer()); +} + +bool +QPDFObjectHandle::isInlineImage() +{ + dereference(); + return QPDFObjectTypeAccessor<QPDF_InlineImage>::check(obj.getPointer()); +} + +bool QPDFObjectHandle::isArray() { dereference(); @@ -190,7 +206,8 @@ QPDFObjectHandle::isIndirect() bool QPDFObjectHandle::isScalar() { - return (! (isArray() || isDictionary() || isStream())); + return (! (isArray() || isDictionary() || isStream() || + isKeyword() || isInlineImage())); } // Bool accessors @@ -245,6 +262,22 @@ QPDFObjectHandle::getUTF8Value() return dynamic_cast<QPDF_String*>(obj.getPointer())->getUTF8Val(); } +// Keyword and Inline Image accessors + +std::string +QPDFObjectHandle::getKeywordValue() +{ + assertKeyword(); + return dynamic_cast<QPDF_Keyword*>(obj.getPointer())->getVal(); +} + +std::string +QPDFObjectHandle::getInlineImageValue() +{ + assertInlineImage(); + return dynamic_cast<QPDF_InlineImage*>(obj.getPointer())->getVal(); +} + // Array accessors int @@ -929,6 +962,18 @@ QPDFObjectHandle::newString(std::string const& str) } QPDFObjectHandle +QPDFObjectHandle::newKeyword(std::string const& value) +{ + return QPDFObjectHandle(new QPDF_Keyword(value)); +} + +QPDFObjectHandle +QPDFObjectHandle::newInlineImage(std::string const& value) +{ + return QPDFObjectHandle(new QPDF_InlineImage(value)); +} + +QPDFObjectHandle QPDFObjectHandle::newArray() { return newArray(std::vector<QPDFObjectHandle>()); @@ -1213,6 +1258,18 @@ QPDFObjectHandle::assertString() } void +QPDFObjectHandle::assertKeyword() +{ + assertType("Keyword", isKeyword()); +} + +void +QPDFObjectHandle::assertInlineImage() +{ + assertType("InlineImage", isInlineImage()); +} + +void QPDFObjectHandle::assertArray() { assertType("Array", isArray()); |