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 "SkPdfPageObjectDictionary_autogen.h"
9#include "SkPdfNativeDoc.h"
10
11SkString SkPdfPageObjectDictionary::Type(SkPdfNativeDoc* doc) {
12  SkPdfNativeObject* ret = get("Type", "");
13  if (doc) {ret = doc->resolveReference(ret);}
14  if ((ret != NULL && ret->isName()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->nameValue2();
15  // TODO(edisonn): warn about missing required field, assert for known good pdfs
16  return SkString();
17}
18
19bool SkPdfPageObjectDictionary::has_Type() const {
20  return get("Type", "") != NULL;
21}
22
23SkPdfDictionary* SkPdfPageObjectDictionary::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 SkPdfPageObjectDictionary::has_Parent() const {
32  return get("Parent", "") != NULL;
33}
34
35SkPdfDate SkPdfPageObjectDictionary::LastModified(SkPdfNativeDoc* doc) {
36  SkPdfNativeObject* ret = get("LastModified", "");
37  if (doc) {ret = doc->resolveReference(ret);}
38  if ((ret != NULL && ret->isDate()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->dateValue();
39  // TODO(edisonn): warn about missing default value for optional fields
40  return SkPdfDate();
41}
42
43bool SkPdfPageObjectDictionary::has_LastModified() const {
44  return get("LastModified", "") != NULL;
45}
46
47SkPdfResourceDictionary* SkPdfPageObjectDictionary::Resources(SkPdfNativeDoc* doc) {
48  SkPdfNativeObject* ret = get("Resources", "");
49  if (doc) {ret = doc->resolveReference(ret);}
50  if ((ret != NULL && ret->isDictionary() && ((SkPdfResourceDictionary*)ret)->valid()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfResourceDictionary*)ret;
51  // TODO(edisonn): warn about missing required field, assert for known good pdfs
52  return NULL;
53}
54
55bool SkPdfPageObjectDictionary::has_Resources() const {
56  return get("Resources", "") != NULL;
57}
58
59SkRect SkPdfPageObjectDictionary::MediaBox(SkPdfNativeDoc* doc) {
60  SkPdfNativeObject* ret = get("MediaBox", "");
61  if (doc) {ret = doc->resolveReference(ret);}
62  if ((ret != NULL && ret->isRectangle()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->rectangleValue();
63  // TODO(edisonn): warn about missing required field, assert for known good pdfs
64  return SkRect::MakeEmpty();
65}
66
67bool SkPdfPageObjectDictionary::has_MediaBox() const {
68  return get("MediaBox", "") != NULL;
69}
70
71SkRect SkPdfPageObjectDictionary::CropBox(SkPdfNativeDoc* doc) {
72  SkPdfNativeObject* ret = get("CropBox", "");
73  if (doc) {ret = doc->resolveReference(ret);}
74  if ((ret != NULL && ret->isRectangle()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->rectangleValue();
75  // TODO(edisonn): warn about missing default value for optional fields
76  return SkRect::MakeEmpty();
77}
78
79bool SkPdfPageObjectDictionary::has_CropBox() const {
80  return get("CropBox", "") != NULL;
81}
82
83SkRect SkPdfPageObjectDictionary::BleedBox(SkPdfNativeDoc* doc) {
84  SkPdfNativeObject* ret = get("BleedBox", "");
85  if (doc) {ret = doc->resolveReference(ret);}
86  if ((ret != NULL && ret->isRectangle()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->rectangleValue();
87  // TODO(edisonn): warn about missing default value for optional fields
88  return SkRect::MakeEmpty();
89}
90
91bool SkPdfPageObjectDictionary::has_BleedBox() const {
92  return get("BleedBox", "") != NULL;
93}
94
95SkRect SkPdfPageObjectDictionary::TrimBox(SkPdfNativeDoc* doc) {
96  SkPdfNativeObject* ret = get("TrimBox", "");
97  if (doc) {ret = doc->resolveReference(ret);}
98  if ((ret != NULL && ret->isRectangle()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->rectangleValue();
99  // TODO(edisonn): warn about missing default value for optional fields
100  return SkRect::MakeEmpty();
101}
102
103bool SkPdfPageObjectDictionary::has_TrimBox() const {
104  return get("TrimBox", "") != NULL;
105}
106
107SkRect SkPdfPageObjectDictionary::ArtBox(SkPdfNativeDoc* doc) {
108  SkPdfNativeObject* ret = get("ArtBox", "");
109  if (doc) {ret = doc->resolveReference(ret);}
110  if ((ret != NULL && ret->isRectangle()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->rectangleValue();
111  // TODO(edisonn): warn about missing default value for optional fields
112  return SkRect::MakeEmpty();
113}
114
115bool SkPdfPageObjectDictionary::has_ArtBox() const {
116  return get("ArtBox", "") != NULL;
117}
118
119SkPdfDictionary* SkPdfPageObjectDictionary::BoxColorInfo(SkPdfNativeDoc* doc) {
120  SkPdfNativeObject* ret = get("BoxColorInfo", "");
121  if (doc) {ret = doc->resolveReference(ret);}
122  if ((ret != NULL && ret->isDictionary()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfDictionary*)ret;
123  // TODO(edisonn): warn about missing default value for optional fields
124  return NULL;
125}
126
127bool SkPdfPageObjectDictionary::has_BoxColorInfo() const {
128  return get("BoxColorInfo", "") != NULL;
129}
130
131bool SkPdfPageObjectDictionary::isContentsAStream(SkPdfNativeDoc* doc) {
132  SkPdfNativeObject* ret = get("Contents", "");
133  if (doc) {ret = doc->resolveReference(ret);}
134  return ret != NULL && ret->hasStream();
135}
136
137SkPdfStream* SkPdfPageObjectDictionary::getContentsAsStream(SkPdfNativeDoc* doc) {
138  SkPdfNativeObject* ret = get("Contents", "");
139  if (doc) {ret = doc->resolveReference(ret);}
140  if ((ret != NULL && ret->hasStream()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->getStream();
141  // TODO(edisonn): warn about missing default value for optional fields
142  return NULL;
143}
144
145bool SkPdfPageObjectDictionary::isContentsAArray(SkPdfNativeDoc* doc) {
146  SkPdfNativeObject* ret = get("Contents", "");
147  if (doc) {ret = doc->resolveReference(ret);}
148  return ret != NULL && ret->isArray();
149}
150
151SkPdfArray* SkPdfPageObjectDictionary::getContentsAsArray(SkPdfNativeDoc* doc) {
152  SkPdfNativeObject* ret = get("Contents", "");
153  if (doc) {ret = doc->resolveReference(ret);}
154  if ((ret != NULL && ret->isArray()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfArray*)ret;
155  // TODO(edisonn): warn about missing default value for optional fields
156  return NULL;
157}
158
159bool SkPdfPageObjectDictionary::has_Contents() const {
160  return get("Contents", "") != NULL;
161}
162
163int64_t SkPdfPageObjectDictionary::Rotate(SkPdfNativeDoc* doc) {
164  SkPdfNativeObject* ret = get("Rotate", "");
165  if (doc) {ret = doc->resolveReference(ret);}
166  if ((ret != NULL && ret->isInteger()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->intValue();
167  // TODO(edisonn): warn about missing default value for optional fields
168  return 0;
169}
170
171bool SkPdfPageObjectDictionary::has_Rotate() const {
172  return get("Rotate", "") != NULL;
173}
174
175SkPdfTransparencyGroupDictionary* SkPdfPageObjectDictionary::Group(SkPdfNativeDoc* doc) {
176  SkPdfNativeObject* ret = get("Group", "");
177  if (doc) {ret = doc->resolveReference(ret);}
178  if ((ret != NULL && ret->isDictionary() && ((SkPdfTransparencyGroupDictionary*)ret)->valid()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfTransparencyGroupDictionary*)ret;
179  // TODO(edisonn): warn about missing default value for optional fields
180  return NULL;
181}
182
183bool SkPdfPageObjectDictionary::has_Group() const {
184  return get("Group", "") != NULL;
185}
186
187SkPdfStream* SkPdfPageObjectDictionary::Thumb(SkPdfNativeDoc* doc) {
188  SkPdfNativeObject* ret = get("Thumb", "");
189  if (doc) {ret = doc->resolveReference(ret);}
190  if ((ret != NULL && ret->hasStream()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->getStream();
191  // TODO(edisonn): warn about missing default value for optional fields
192  return NULL;
193}
194
195bool SkPdfPageObjectDictionary::has_Thumb() const {
196  return get("Thumb", "") != NULL;
197}
198
199SkPdfArray* SkPdfPageObjectDictionary::B(SkPdfNativeDoc* doc) {
200  SkPdfNativeObject* ret = get("B", "");
201  if (doc) {ret = doc->resolveReference(ret);}
202  if ((ret != NULL && ret->isArray()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfArray*)ret;
203  // TODO(edisonn): warn about missing default value for optional fields
204  return NULL;
205}
206
207bool SkPdfPageObjectDictionary::has_B() const {
208  return get("B", "") != NULL;
209}
210
211double SkPdfPageObjectDictionary::Dur(SkPdfNativeDoc* doc) {
212  SkPdfNativeObject* ret = get("Dur", "");
213  if (doc) {ret = doc->resolveReference(ret);}
214  if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue();
215  // TODO(edisonn): warn about missing default value for optional fields
216  return 0;
217}
218
219bool SkPdfPageObjectDictionary::has_Dur() const {
220  return get("Dur", "") != NULL;
221}
222
223SkPdfDictionary* SkPdfPageObjectDictionary::Trans(SkPdfNativeDoc* doc) {
224  SkPdfNativeObject* ret = get("Trans", "");
225  if (doc) {ret = doc->resolveReference(ret);}
226  if ((ret != NULL && ret->isDictionary()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfDictionary*)ret;
227  // TODO(edisonn): warn about missing default value for optional fields
228  return NULL;
229}
230
231bool SkPdfPageObjectDictionary::has_Trans() const {
232  return get("Trans", "") != NULL;
233}
234
235SkPdfArray* SkPdfPageObjectDictionary::Annots(SkPdfNativeDoc* doc) {
236  SkPdfNativeObject* ret = get("Annots", "");
237  if (doc) {ret = doc->resolveReference(ret);}
238  if ((ret != NULL && ret->isArray()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfArray*)ret;
239  // TODO(edisonn): warn about missing default value for optional fields
240  return NULL;
241}
242
243bool SkPdfPageObjectDictionary::has_Annots() const {
244  return get("Annots", "") != NULL;
245}
246
247SkPdfDictionary* SkPdfPageObjectDictionary::AA(SkPdfNativeDoc* doc) {
248  SkPdfNativeObject* ret = get("AA", "");
249  if (doc) {ret = doc->resolveReference(ret);}
250  if ((ret != NULL && ret->isDictionary()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfDictionary*)ret;
251  // TODO(edisonn): warn about missing default value for optional fields
252  return NULL;
253}
254
255bool SkPdfPageObjectDictionary::has_AA() const {
256  return get("AA", "") != NULL;
257}
258
259SkPdfStream* SkPdfPageObjectDictionary::Metadata(SkPdfNativeDoc* doc) {
260  SkPdfNativeObject* ret = get("Metadata", "");
261  if (doc) {ret = doc->resolveReference(ret);}
262  if ((ret != NULL && ret->hasStream()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->getStream();
263  // TODO(edisonn): warn about missing default value for optional fields
264  return NULL;
265}
266
267bool SkPdfPageObjectDictionary::has_Metadata() const {
268  return get("Metadata", "") != NULL;
269}
270
271SkPdfDictionary* SkPdfPageObjectDictionary::PieceInfo(SkPdfNativeDoc* doc) {
272  SkPdfNativeObject* ret = get("PieceInfo", "");
273  if (doc) {ret = doc->resolveReference(ret);}
274  if ((ret != NULL && ret->isDictionary()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfDictionary*)ret;
275  // TODO(edisonn): warn about missing default value for optional fields
276  return NULL;
277}
278
279bool SkPdfPageObjectDictionary::has_PieceInfo() const {
280  return get("PieceInfo", "") != NULL;
281}
282
283int64_t SkPdfPageObjectDictionary::StructParents(SkPdfNativeDoc* doc) {
284  SkPdfNativeObject* ret = get("StructParents", "");
285  if (doc) {ret = doc->resolveReference(ret);}
286  if ((ret != NULL && ret->isInteger()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->intValue();
287  // TODO(edisonn): warn about missing default value for optional fields
288  return 0;
289}
290
291bool SkPdfPageObjectDictionary::has_StructParents() const {
292  return get("StructParents", "") != NULL;
293}
294
295SkString SkPdfPageObjectDictionary::ID(SkPdfNativeDoc* doc) {
296  SkPdfNativeObject* ret = get("ID", "");
297  if (doc) {ret = doc->resolveReference(ret);}
298  if ((ret != NULL && ret->isAnyString()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->stringValue2();
299  // TODO(edisonn): warn about missing default value for optional fields
300  return SkString();
301}
302
303bool SkPdfPageObjectDictionary::has_ID() const {
304  return get("ID", "") != NULL;
305}
306
307double SkPdfPageObjectDictionary::PZ(SkPdfNativeDoc* doc) {
308  SkPdfNativeObject* ret = get("PZ", "");
309  if (doc) {ret = doc->resolveReference(ret);}
310  if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue();
311  // TODO(edisonn): warn about missing default value for optional fields
312  return 0;
313}
314
315bool SkPdfPageObjectDictionary::has_PZ() const {
316  return get("PZ", "") != NULL;
317}
318
319SkPdfDictionary* SkPdfPageObjectDictionary::SeparationInfo(SkPdfNativeDoc* doc) {
320  SkPdfNativeObject* ret = get("SeparationInfo", "");
321  if (doc) {ret = doc->resolveReference(ret);}
322  if ((ret != NULL && ret->isDictionary()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfDictionary*)ret;
323  // TODO(edisonn): warn about missing default value for optional fields
324  return NULL;
325}
326
327bool SkPdfPageObjectDictionary::has_SeparationInfo() const {
328  return get("SeparationInfo", "") != NULL;
329}
330