15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright 2013 Google Inc.
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * found in the LICENSE file.
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "SkPdfMacOsFileInformationDictionary_autogen.h"
942a0b512b27badd0d560042d40f00d2b782c416fSelim Gurun#include "SkPdfNativeDoc.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SkString SkPdfMacOsFileInformationDictionary::Subtype(SkPdfNativeDoc* doc) {
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SkPdfNativeObject* ret = get("Subtype", "");
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (doc) {ret = doc->resolveReference(ret);}
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if ((ret != NULL && ret->isAnyString()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->stringValue2();
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // TODO(edisonn): warn about missing default value for optional fields
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return SkString();
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SkPdfMacOsFileInformationDictionary::has_Subtype() const {
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return get("Subtype", "") != NULL;
217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
221e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SkString SkPdfMacOsFileInformationDictionary::Creator(SkPdfNativeDoc* doc) {
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SkPdfNativeObject* ret = get("Creator", "");
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (doc) {ret = doc->resolveReference(ret);}
267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  if ((ret != NULL && ret->isAnyString()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->stringValue2();
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // TODO(edisonn): warn about missing default value for optional fields
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return SkString();
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SkPdfMacOsFileInformationDictionary::has_Creator() const {
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return get("Creator", "") != NULL;
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SkPdfStream* SkPdfMacOsFileInformationDictionary::ResFork(SkPdfNativeDoc* doc) {
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SkPdfNativeObject* ret = get("ResFork", "");
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (doc) {ret = doc->resolveReference(ret);}
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if ((ret != NULL && ret->hasStream()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->getStream();
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // TODO(edisonn): warn about missing default value for optional fields
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liubool SkPdfMacOsFileInformationDictionary::has_ResFork() const {
445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  return get("ResFork", "") != NULL;
455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu}
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)