K. Moon | 832a694 | 2022-10-31 20:11:31 +0000 | [diff] [blame] | 1 | // Copyright 2016 The PDFium Authors |
Tom Sepez | 5fc239a | 2016-03-10 14:10:38 -0800 | [diff] [blame] | 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 | |
dsinclair | 488b7ad | 2016-10-04 11:55:50 -0700 | [diff] [blame] | 7 | #include "core/fpdfapi/parser/cpdf_boolean.h" |
Lei Zhang | c52e300 | 2018-10-01 17:38:38 +0000 | [diff] [blame] | 8 | |
Dan Sinclair | bcd1e70 | 2017-08-31 13:19:18 -0400 | [diff] [blame] | 9 | #include "core/fxcrt/fx_stream.h" |
Tom Sepez | 5fc239a | 2016-03-10 14:10:38 -0800 | [diff] [blame] | 10 | |
Lei Zhang | f3163cf | 2019-12-17 00:55:11 +0000 | [diff] [blame] | 11 | CPDF_Boolean::CPDF_Boolean() = default; |
Tom Sepez | 5fc239a | 2016-03-10 14:10:38 -0800 | [diff] [blame] | 12 | |
thestig | ded3634 | 2016-05-23 17:54:02 -0700 | [diff] [blame] | 13 | CPDF_Boolean::CPDF_Boolean(bool value) : m_bValue(value) {} |
Tom Sepez | 5fc239a | 2016-03-10 14:10:38 -0800 | [diff] [blame] | 14 | |
Lei Zhang | f3163cf | 2019-12-17 00:55:11 +0000 | [diff] [blame] | 15 | CPDF_Boolean::~CPDF_Boolean() = default; |
Tom Sepez | 5fc239a | 2016-03-10 14:10:38 -0800 | [diff] [blame] | 16 | |
| 17 | CPDF_Object::Type CPDF_Boolean::GetType() const { |
Hans Wennborg | 2f62d36 | 2018-10-22 19:17:02 +0000 | [diff] [blame] | 18 | return kBoolean; |
Tom Sepez | 5fc239a | 2016-03-10 14:10:38 -0800 | [diff] [blame] | 19 | } |
| 20 | |
Tom Sepez | a3097da | 2019-05-01 16:42:36 +0000 | [diff] [blame] | 21 | RetainPtr<CPDF_Object> CPDF_Boolean::Clone() const { |
| 22 | return pdfium::MakeRetain<CPDF_Boolean>(m_bValue); |
Tom Sepez | 5fc239a | 2016-03-10 14:10:38 -0800 | [diff] [blame] | 23 | } |
| 24 | |
Ryan Harrison | 275e260 | 2017-09-18 14:23:18 -0400 | [diff] [blame] | 25 | ByteString CPDF_Boolean::GetString() const { |
Tom Sepez | 5fc239a | 2016-03-10 14:10:38 -0800 | [diff] [blame] | 26 | return m_bValue ? "true" : "false"; |
| 27 | } |
| 28 | |
| 29 | int CPDF_Boolean::GetInteger() const { |
| 30 | return m_bValue; |
| 31 | } |
| 32 | |
Ryan Harrison | 275e260 | 2017-09-18 14:23:18 -0400 | [diff] [blame] | 33 | void CPDF_Boolean::SetString(const ByteString& str) { |
Tom Sepez | 5fc239a | 2016-03-10 14:10:38 -0800 | [diff] [blame] | 34 | m_bValue = (str == "true"); |
| 35 | } |
| 36 | |
Tom Sepez | d6daaed | 2022-09-02 23:58:32 +0000 | [diff] [blame] | 37 | CPDF_Boolean* CPDF_Boolean::AsMutableBoolean() { |
Tom Sepez | 5fc239a | 2016-03-10 14:10:38 -0800 | [diff] [blame] | 38 | return this; |
| 39 | } |
| 40 | |
Artem Strygin | 2bfa785 | 2018-07-23 19:54:34 +0000 | [diff] [blame] | 41 | bool CPDF_Boolean::WriteTo(IFX_ArchiveStream* archive, |
| 42 | const CPDF_Encryptor* encryptor) const { |
Dan Sinclair | 5b59033 | 2017-05-10 13:59:14 -0400 | [diff] [blame] | 43 | return archive->WriteString(" ") && |
Ryan Harrison | 275e260 | 2017-09-18 14:23:18 -0400 | [diff] [blame] | 44 | archive->WriteString(GetString().AsStringView()); |
Dan Sinclair | c68b1e7 | 2017-05-08 16:59:54 -0400 | [diff] [blame] | 45 | } |