1 // Copyright 2016 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #include "core/fpdfapi/parser/cpdf_object.h" 8 9 #include <algorithm> 10 11 #include "core/fpdfapi/parser/cpdf_array.h" 12 #include "core/fpdfapi/parser/cpdf_dictionary.h" 13 #include "core/fpdfapi/parser/cpdf_indirect_object_holder.h" 14 #include "core/fpdfapi/parser/cpdf_parser.h" 15 #include "core/fpdfapi/parser/cpdf_reference.h" 16 #include "core/fxcrt/fx_string.h" 17 #include "third_party/base/logging.h" 18 #include "third_party/base/ptr_util.h" 19 ~CPDF_Object()20CPDF_Object::~CPDF_Object() {} 21 GetDirect()22CPDF_Object* CPDF_Object::GetDirect() { 23 return this; 24 } 25 GetDirect() const26const CPDF_Object* CPDF_Object::GetDirect() const { 27 return this; 28 } 29 CloneObjectNonCyclic(bool bDirect) const30RetainPtr<CPDF_Object> CPDF_Object::CloneObjectNonCyclic(bool bDirect) const { 31 std::set<const CPDF_Object*> visited_objs; 32 return CloneNonCyclic(bDirect, &visited_objs); 33 } 34 CloneDirectObject() const35RetainPtr<CPDF_Object> CPDF_Object::CloneDirectObject() const { 36 return CloneObjectNonCyclic(true); 37 } 38 CloneNonCyclic(bool bDirect,std::set<const CPDF_Object * > * pVisited) const39RetainPtr<CPDF_Object> CPDF_Object::CloneNonCyclic( 40 bool bDirect, 41 std::set<const CPDF_Object*>* pVisited) const { 42 return Clone(); 43 } 44 GetString() const45ByteString CPDF_Object::GetString() const { 46 return ByteString(); 47 } 48 GetUnicodeText() const49WideString CPDF_Object::GetUnicodeText() const { 50 return WideString(); 51 } 52 GetNumber() const53float CPDF_Object::GetNumber() const { 54 return 0; 55 } 56 GetInteger() const57int CPDF_Object::GetInteger() const { 58 return 0; 59 } 60 GetDict()61CPDF_Dictionary* CPDF_Object::GetDict() { 62 return nullptr; 63 } 64 GetDict() const65const CPDF_Dictionary* CPDF_Object::GetDict() const { 66 return nullptr; 67 } 68 SetString(const ByteString & str)69void CPDF_Object::SetString(const ByteString& str) { 70 NOTREACHED(); 71 } 72 IsArray() const73bool CPDF_Object::IsArray() const { 74 return false; 75 } 76 IsBoolean() const77bool CPDF_Object::IsBoolean() const { 78 return false; 79 } 80 IsDictionary() const81bool CPDF_Object::IsDictionary() const { 82 return false; 83 } 84 IsName() const85bool CPDF_Object::IsName() const { 86 return false; 87 } 88 IsNumber() const89bool CPDF_Object::IsNumber() const { 90 return false; 91 } 92 IsReference() const93bool CPDF_Object::IsReference() const { 94 return false; 95 } 96 IsStream() const97bool CPDF_Object::IsStream() const { 98 return false; 99 } 100 IsString() const101bool CPDF_Object::IsString() const { 102 return false; 103 } 104 IsNull() const105bool CPDF_Object::IsNull() const { 106 return false; 107 } 108 AsArray()109CPDF_Array* CPDF_Object::AsArray() { 110 return nullptr; 111 } 112 AsArray() const113const CPDF_Array* CPDF_Object::AsArray() const { 114 return nullptr; 115 } 116 AsBoolean()117CPDF_Boolean* CPDF_Object::AsBoolean() { 118 return nullptr; 119 } 120 AsBoolean() const121const CPDF_Boolean* CPDF_Object::AsBoolean() const { 122 return nullptr; 123 } 124 AsDictionary()125CPDF_Dictionary* CPDF_Object::AsDictionary() { 126 return nullptr; 127 } 128 AsDictionary() const129const CPDF_Dictionary* CPDF_Object::AsDictionary() const { 130 return nullptr; 131 } 132 AsName()133CPDF_Name* CPDF_Object::AsName() { 134 return nullptr; 135 } 136 AsName() const137const CPDF_Name* CPDF_Object::AsName() const { 138 return nullptr; 139 } 140 AsNumber()141CPDF_Number* CPDF_Object::AsNumber() { 142 return nullptr; 143 } 144 AsNumber() const145const CPDF_Number* CPDF_Object::AsNumber() const { 146 return nullptr; 147 } 148 AsReference()149CPDF_Reference* CPDF_Object::AsReference() { 150 return nullptr; 151 } 152 AsReference() const153const CPDF_Reference* CPDF_Object::AsReference() const { 154 return nullptr; 155 } 156 AsStream()157CPDF_Stream* CPDF_Object::AsStream() { 158 return nullptr; 159 } 160 AsStream() const161const CPDF_Stream* CPDF_Object::AsStream() const { 162 return nullptr; 163 } 164 AsString()165CPDF_String* CPDF_Object::AsString() { 166 return nullptr; 167 } 168 AsString() const169const CPDF_String* CPDF_Object::AsString() const { 170 return nullptr; 171 } 172 MakeReference(CPDF_IndirectObjectHolder * holder) const173RetainPtr<CPDF_Object> CPDF_Object::MakeReference( 174 CPDF_IndirectObjectHolder* holder) const { 175 if (IsInline()) { 176 NOTREACHED(); 177 return nullptr; 178 } 179 return pdfium::MakeRetain<CPDF_Reference>(holder, GetObjNum()); 180 } 181