blob: 455fc4c4a513a738f11b4c0d55fca0a63d7d04ef [file] [log] [blame]
Dan Sinclair93bb7252017-12-07 22:33:43 +00001// Copyright 2017 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#ifndef FXJS_XFA_CJX_MODEL_H_
8#define FXJS_XFA_CJX_MODEL_H_
9
Dan Sinclairc0022612017-12-11 22:31:58 +000010#include "fxjs/xfa/cjx_node.h"
Tom Sepez49dbb7f2018-12-19 17:56:55 +000011#include "fxjs/xfa/jse_define.h"
Dan Sinclair93bb7252017-12-07 22:33:43 +000012
13class CXFA_Node;
14
15class CJX_Model : public CJX_Node {
16 public:
Tom Sepez757a6bf2020-09-17 17:22:38 +000017 CONSTRUCT_VIA_MAKE_GARBAGE_COLLECTED;
Dan Sinclair93bb7252017-12-07 22:33:43 +000018 ~CJX_Model() override;
19
Tom Sepez7e786cc2019-01-23 21:57:06 +000020 // CJX_Object:
21 bool DynamicTypeIs(TypeTag eType) const override;
22
Tom Sepezc26730d2019-01-22 18:55:32 +000023 JSE_METHOD(clearErrorList);
24 JSE_METHOD(createNode);
25 JSE_METHOD(isCompatibleNS);
Dan Sinclair93bb7252017-12-07 22:33:43 +000026
Tom Sepez315f94a2018-07-24 19:07:35 +000027 JSE_PROP(aliasNode);
28 JSE_PROP(context);
Dan Sinclairfe9d6402017-12-14 19:45:53 +000029
Tom Sepez757a6bf2020-09-17 17:22:38 +000030 protected:
31 explicit CJX_Model(CXFA_Node* obj);
32
Dan Sinclair93bb7252017-12-07 22:33:43 +000033 private:
Tom Sepezc26730d2019-01-22 18:55:32 +000034 using Type__ = CJX_Model;
Tom Sepez7e786cc2019-01-23 21:57:06 +000035 using ParentType__ = CJX_Node;
Tom Sepezc26730d2019-01-22 18:55:32 +000036
Tom Sepez7e786cc2019-01-23 21:57:06 +000037 static const TypeTag static_type__ = TypeTag::Model;
Dan Sinclair93bb7252017-12-07 22:33:43 +000038 static const CJX_MethodSpec MethodSpecs[];
39};
40
41#endif // FXJS_XFA_CJX_MODEL_H_