1/*
2 * Copyright 2013 Google Inc.
3
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#include "SkPdfOutlineItemDictionary_autogen.h"
9#include "SkPdfNativeDoc.h"
10
11SkString SkPdfOutlineItemDictionary::Title(SkPdfNativeDoc* doc) {
12  SkPdfNativeObject* ret = get("Title", "");
13  if (doc) {ret = doc->resolveReference(ret);}
14  if ((ret != NULL && ret->isAnyString()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->stringValue2();
15  // TODO(edisonn): warn about missing required field, assert for known good pdfs
16  return SkString();
17}
18
19bool SkPdfOutlineItemDictionary::has_Title() const {
20  return get("Title", "") != NULL;
21}
22
23SkPdfDictionary* SkPdfOutlineItemDictionary::Parent(SkPdfNativeDoc* doc) {
24  SkPdfNativeObject* ret = get("Parent", "");
25  if (doc) {ret = doc->resolveReference(ret);}
26  if ((ret != NULL && ret->isDictionary()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfDictionary*)ret;
27  // TODO(edisonn): warn about missing default value for optional fields
28  return NULL;
29}
30
31bool SkPdfOutlineItemDictionary::has_Parent() const {
32  return get("Parent", "") != NULL;
33}
34
35SkPdfDictionary* SkPdfOutlineItemDictionary::Prev(SkPdfNativeDoc* doc) {
36  SkPdfNativeObject* ret = get("Prev", "");
37  if (doc) {ret = doc->resolveReference(ret);}
38  if ((ret != NULL && ret->isDictionary()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfDictionary*)ret;
39  // TODO(edisonn): warn about missing default value for optional fields
40  return NULL;
41}
42
43bool SkPdfOutlineItemDictionary::has_Prev() const {
44  return get("Prev", "") != NULL;
45}
46
47SkPdfDictionary* SkPdfOutlineItemDictionary::Next(SkPdfNativeDoc* doc) {
48  SkPdfNativeObject* ret = get("Next", "");
49  if (doc) {ret = doc->resolveReference(ret);}
50  if ((ret != NULL && ret->isDictionary()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfDictionary*)ret;
51  // TODO(edisonn): warn about missing default value for optional fields
52  return NULL;
53}
54
55bool SkPdfOutlineItemDictionary::has_Next() const {
56  return get("Next", "") != NULL;
57}
58
59SkPdfDictionary* SkPdfOutlineItemDictionary::First(SkPdfNativeDoc* doc) {
60  SkPdfNativeObject* ret = get("First", "");
61  if (doc) {ret = doc->resolveReference(ret);}
62  if ((ret != NULL && ret->isDictionary()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfDictionary*)ret;
63  // TODO(edisonn): warn about missing default value for optional fields
64  return NULL;
65}
66
67bool SkPdfOutlineItemDictionary::has_First() const {
68  return get("First", "") != NULL;
69}
70
71SkPdfDictionary* SkPdfOutlineItemDictionary::Last(SkPdfNativeDoc* doc) {
72  SkPdfNativeObject* ret = get("Last", "");
73  if (doc) {ret = doc->resolveReference(ret);}
74  if ((ret != NULL && ret->isDictionary()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfDictionary*)ret;
75  // TODO(edisonn): warn about missing default value for optional fields
76  return NULL;
77}
78
79bool SkPdfOutlineItemDictionary::has_Last() const {
80  return get("Last", "") != NULL;
81}
82
83int64_t SkPdfOutlineItemDictionary::Count(SkPdfNativeDoc* doc) {
84  SkPdfNativeObject* ret = get("Count", "");
85  if (doc) {ret = doc->resolveReference(ret);}
86  if ((ret != NULL && ret->isInteger()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->intValue();
87  // TODO(edisonn): warn about missing default value for optional fields
88  return 0;
89}
90
91bool SkPdfOutlineItemDictionary::has_Count() const {
92  return get("Count", "") != NULL;
93}
94
95bool SkPdfOutlineItemDictionary::isDestAName(SkPdfNativeDoc* doc) {
96  SkPdfNativeObject* ret = get("Dest", "");
97  if (doc) {ret = doc->resolveReference(ret);}
98  return ret != NULL && ret->isName();
99}
100
101SkString SkPdfOutlineItemDictionary::getDestAsName(SkPdfNativeDoc* doc) {
102  SkPdfNativeObject* ret = get("Dest", "");
103  if (doc) {ret = doc->resolveReference(ret);}
104  if ((ret != NULL && ret->isName()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->nameValue2();
105  // TODO(edisonn): warn about missing default value for optional fields
106  return SkString();
107}
108
109bool SkPdfOutlineItemDictionary::isDestAString(SkPdfNativeDoc* doc) {
110  SkPdfNativeObject* ret = get("Dest", "");
111  if (doc) {ret = doc->resolveReference(ret);}
112  return ret != NULL && ret->isAnyString();
113}
114
115SkString SkPdfOutlineItemDictionary::getDestAsString(SkPdfNativeDoc* doc) {
116  SkPdfNativeObject* ret = get("Dest", "");
117  if (doc) {ret = doc->resolveReference(ret);}
118  if ((ret != NULL && ret->isAnyString()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->stringValue2();
119  // TODO(edisonn): warn about missing default value for optional fields
120  return SkString();
121}
122
123bool SkPdfOutlineItemDictionary::isDestAArray(SkPdfNativeDoc* doc) {
124  SkPdfNativeObject* ret = get("Dest", "");
125  if (doc) {ret = doc->resolveReference(ret);}
126  return ret != NULL && ret->isArray();
127}
128
129SkPdfArray* SkPdfOutlineItemDictionary::getDestAsArray(SkPdfNativeDoc* doc) {
130  SkPdfNativeObject* ret = get("Dest", "");
131  if (doc) {ret = doc->resolveReference(ret);}
132  if ((ret != NULL && ret->isArray()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfArray*)ret;
133  // TODO(edisonn): warn about missing default value for optional fields
134  return NULL;
135}
136
137bool SkPdfOutlineItemDictionary::has_Dest() const {
138  return get("Dest", "") != NULL;
139}
140
141SkPdfDictionary* SkPdfOutlineItemDictionary::A(SkPdfNativeDoc* doc) {
142  SkPdfNativeObject* ret = get("A", "");
143  if (doc) {ret = doc->resolveReference(ret);}
144  if ((ret != NULL && ret->isDictionary()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfDictionary*)ret;
145  // TODO(edisonn): warn about missing default value for optional fields
146  return NULL;
147}
148
149bool SkPdfOutlineItemDictionary::has_A() const {
150  return get("A", "") != NULL;
151}
152
153SkPdfDictionary* SkPdfOutlineItemDictionary::SE(SkPdfNativeDoc* doc) {
154  SkPdfNativeObject* ret = get("SE", "");
155  if (doc) {ret = doc->resolveReference(ret);}
156  if ((ret != NULL && ret->isDictionary()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfDictionary*)ret;
157  // TODO(edisonn): warn about missing default value for optional fields
158  return NULL;
159}
160
161bool SkPdfOutlineItemDictionary::has_SE() const {
162  return get("SE", "") != NULL;
163}
164
165SkPdfArray* SkPdfOutlineItemDictionary::C(SkPdfNativeDoc* doc) {
166  SkPdfNativeObject* ret = get("C", "");
167  if (doc) {ret = doc->resolveReference(ret);}
168  if ((ret != NULL && ret->isArray()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfArray*)ret;
169  // TODO(edisonn): warn about missing default value for optional fields
170  return NULL;
171}
172
173bool SkPdfOutlineItemDictionary::has_C() const {
174  return get("C", "") != NULL;
175}
176
177int64_t SkPdfOutlineItemDictionary::F(SkPdfNativeDoc* doc) {
178  SkPdfNativeObject* ret = get("F", "");
179  if (doc) {ret = doc->resolveReference(ret);}
180  if ((ret != NULL && ret->isInteger()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->intValue();
181  // TODO(edisonn): warn about missing default value for optional fields
182  return 0;
183}
184
185bool SkPdfOutlineItemDictionary::has_F() const {
186  return get("F", "") != NULL;
187}
188