From 8593b9fdf74e68099a5fe2aa0b6d0b6320781a2d Mon Sep 17 00:00:00 2001 From: m-holger Date: Fri, 21 Jan 2022 14:09:06 +0000 Subject: Add new convenience methods QPDFObjectHandle::isNameAndEquals, etc Add methods isNameAndEquals, isDictionaryOfType, isStreamOfType --- libqpdf/QPDFObjectHandle.cc | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'libqpdf/QPDFObjectHandle.cc') diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index 1a8e3223..f2c77dca 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -497,6 +497,34 @@ QPDFObjectHandle::isScalar() isOperator() || isInlineImage())); } +bool +QPDFObjectHandle::isNameAndEquals(std::string const& name) +{ + return isName() && (getName() == name); +} + +bool +QPDFObjectHandle::isDictionaryOfType(std::string const& type, + std::string const& subtype) +{ + if (isDictionary() && getKey("/Type").isNameAndEquals(type)) + { + return (subtype == "") || + (hasKey("/Subtype") && getKey("/Subtype").isNameAndEquals(subtype)); + } + else + { + return false; + } +} + +bool +QPDFObjectHandle::isStreamOfType(std::string const& type, + std::string const& subtype) +{ + return isStream() && getDict().isDictionaryOfType(type, subtype); +} + // Bool accessors bool -- cgit v1.2.3-70-g09d2