From c3ef52cf3c26d47877740dc46faa3088be44cfae Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Tue, 7 Nov 2017 20:59:00 +0000 Subject: Rename CXFA_Occur to CXFA_OccurData This CL renames CXFA_Occur to CXFA_OccurData to show it is part of the data hierarchy. Change-Id: I55096747338a9ff83ab24f528f6715a6f4302ba7 Reviewed-on: https://pdfium-review.googlesource.com/17988 Commit-Queue: dsinclair Reviewed-by: Tom Sepez --- xfa/fxfa/parser/cxfa_occurdata.cpp | 71 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 xfa/fxfa/parser/cxfa_occurdata.cpp (limited to 'xfa/fxfa/parser/cxfa_occurdata.cpp') diff --git a/xfa/fxfa/parser/cxfa_occurdata.cpp b/xfa/fxfa/parser/cxfa_occurdata.cpp new file mode 100644 index 0000000000..3bbe00cd35 --- /dev/null +++ b/xfa/fxfa/parser/cxfa_occurdata.cpp @@ -0,0 +1,71 @@ +// Copyright 2016 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#include "xfa/fxfa/parser/cxfa_occurdata.h" + +#include "xfa/fxfa/parser/cxfa_node.h" + +CXFA_OccurData::CXFA_OccurData(CXFA_Node* pNode) : CXFA_Data(pNode) {} + +int32_t CXFA_OccurData::GetMax() { + int32_t iMax = 1; + if (m_pNode) { + if (!m_pNode->JSNode()->TryInteger(XFA_ATTRIBUTE_Max, iMax, true)) + iMax = GetMin(); + } + return iMax; +} + +int32_t CXFA_OccurData::GetMin() { + int32_t iMin = 1; + if (m_pNode) { + if (!m_pNode->JSNode()->TryInteger(XFA_ATTRIBUTE_Min, iMin, true) || + iMin < 0) + iMin = 1; + } + return iMin; +} + +bool CXFA_OccurData::GetOccurInfo(int32_t& iMin, + int32_t& iMax, + int32_t& iInit) { + if (!m_pNode) + return false; + if (!m_pNode->JSNode()->TryInteger(XFA_ATTRIBUTE_Min, iMin, false) || + iMin < 0) + iMin = 1; + if (!m_pNode->JSNode()->TryInteger(XFA_ATTRIBUTE_Max, iMax, false)) { + if (iMin == 0) + iMax = 1; + else + iMax = iMin; + } + if (!m_pNode->JSNode()->TryInteger(XFA_ATTRIBUTE_Initial, iInit, false) || + iInit < iMin) { + iInit = iMin; + } + return true; +} + +void CXFA_OccurData::SetMax(int32_t iMax) { + iMax = (iMax != -1 && iMax < 1) ? 1 : iMax; + m_pNode->JSNode()->SetInteger(XFA_ATTRIBUTE_Max, iMax, false); + int32_t iMin = GetMin(); + if (iMax != -1 && iMax < iMin) { + iMin = iMax; + m_pNode->JSNode()->SetInteger(XFA_ATTRIBUTE_Min, iMin, false); + } +} + +void CXFA_OccurData::SetMin(int32_t iMin) { + iMin = (iMin < 0) ? 1 : iMin; + m_pNode->JSNode()->SetInteger(XFA_ATTRIBUTE_Min, iMin, false); + int32_t iMax = GetMax(); + if (iMax > 0 && iMax < iMin) { + iMax = iMin; + m_pNode->JSNode()->SetInteger(XFA_ATTRIBUTE_Max, iMax, false); + } +} -- cgit v1.2.3