14ee2ad04344446e610172a0e73949212923014dfSebastian Redl/*
22cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor * Copyright 2013 Google Inc.
32cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor
42cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor * Use of this source code is governed by a BSD-style license that can be
52cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor * found in the LICENSE file.
62cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor */
72cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor
82cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#include "SkPdfEmbeddedFontStreamDictionary_autogen.h"
92cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor#include "SkPdfNativeDoc.h"
10a4232eb646d89e7d52424bb42eb87d9061f39e63Sebastian Redl
112cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregorint64_t SkPdfEmbeddedFontStreamDictionary::Length1(SkPdfNativeDoc* doc) {
122cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor  SkPdfNativeObject* ret = get("Length1", "");
132cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor  if (doc) {ret = doc->resolveReference(ret);}
147faa2ec03a7ef120ac165bb45b6c70a8b20c9f1cSebastian Redl  if ((ret != NULL && ret->isInteger()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->intValue();
150eca89e9890db4d8336ce762a5b359a1d58ca02bArgyrios Kyrtzidis  // TODO(edisonn): warn about missing default value for optional fields
16e737f5041a36d0befb39ffeed8d50ba15916d3daDouglas Gregor  return 0;
17e737f5041a36d0befb39ffeed8d50ba15916d3daDouglas Gregor}
182cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor
192cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregorbool SkPdfEmbeddedFontStreamDictionary::has_Length1() const {
202cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor  return get("Length1", "") != NULL;
212a7fb27913999d132cf9e10e03dc5271faa2e9d3John McCall}
2289eaf3af92c72c0c1aae807644e39cabc461d685Argyrios Kyrtzidis
230b7489194f9f89fac39d57211c1e7953ae50251fDouglas Gregorint64_t SkPdfEmbeddedFontStreamDictionary::Length2(SkPdfNativeDoc* doc) {
247a1fad38256eb4c5129359be85ba1ea1678eb5c9John McCall  SkPdfNativeObject* ret = get("Length2", "");
252cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor  if (doc) {ret = doc->resolveReference(ret);}
26a1ee0c548b8aa4aaf93d1917e304e3da13171a08John McCall  if ((ret != NULL && ret->isInteger()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->intValue();
276ab7cd853e9c15cf986a8a7c3db1f8d20e275409Sebastian Redl  // TODO(edisonn): warn about missing default value for optional fields
287c5d24efcd2e505b5739f7def08dfe25ce59a1b2Chris Lattner  return 0;
296a5a23f8e7fb65e028c8092bc1d1a1d9dfe2e9bcDouglas Gregor}
307c5d24efcd2e505b5739f7def08dfe25ce59a1b2Chris Lattner
3183d63c78810556d26b62ac4cbae2eda6cdd2570cSteve Naroffbool SkPdfEmbeddedFontStreamDictionary::has_Length2() const {
3214f79002e58556798e86168c63e48d533287eda5Douglas Gregor  return get("Length2", "") != NULL;
3310e286aa8d39fb51a21412850265d9dae74613eeChris Lattner}
343251ceb90b3fec68e86d6dcfa58836e20a7205c3Douglas Gregor
3514f79002e58556798e86168c63e48d533287eda5Douglas Gregorint64_t SkPdfEmbeddedFontStreamDictionary::Length3(SkPdfNativeDoc* doc) {
36bd94500d3aa60092fb0f1e90f53fb0d03fa502a8Douglas Gregor  SkPdfNativeObject* ret = get("Length3", "");
372bec0410d268779f601bd509e0302a500af7ac6aDouglas Gregor  if (doc) {ret = doc->resolveReference(ret);}
38ab41e63821dc60ad144d0684df8d79a9eef86b75Douglas Gregor  if ((ret != NULL && ret->isInteger()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->intValue();
390a0d2b179085a52c10402feebeb6db8b4d96a140Douglas Gregor  // TODO(edisonn): warn about missing default value for optional fields
4017fc223395d51be582fc666bb6ea21bd1dff26dcDouglas Gregor  return 0;
4117fc223395d51be582fc666bb6ea21bd1dff26dcDouglas Gregor}
422596e429a61602312bdd149786045b8a90cd2d10Daniel Dunbar
432cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregorbool SkPdfEmbeddedFontStreamDictionary::has_Length3() const {
44fbfd180495e7800975c6d9bdc6d24e706ef70e34Michael J. Spencer  return get("Length3", "") != NULL;
4514f79002e58556798e86168c63e48d533287eda5Douglas Gregor}
4603013fa9a0bf1ef4b907f5fec006c8f4000fdd21Michael J. Spencer
47f62d43d2afe1960755a1b5813cae1e5983bcac1bDouglas GregorSkString SkPdfEmbeddedFontStreamDictionary::Subtype(SkPdfNativeDoc* doc) {
483c304bd9ec2b4611572d4cbae9e1727bbecb5dc9Chris Lattner  SkPdfNativeObject* ret = get("Subtype", "");
49cfbf1c7536e016dc275139dd842d4a5f059a749fDouglas Gregor  if (doc) {ret = doc->resolveReference(ret);}
50f62d43d2afe1960755a1b5813cae1e5983bcac1bDouglas Gregor  if ((ret != NULL && ret->isName()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->nameValue2();
512cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor  // TODO(edisonn): warn about missing default value for optional fields
528538e8d43a3a9bd439c987c0de37bcbf035dd391Sebastian Redl  return SkString();
532cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor}
54ade5000c8763f4bec41f452d7efa3a9b2a6d4712Sebastian Redl
555f9e272e632e951b1efe824cd16acb4d96077930Chris Lattnerbool SkPdfEmbeddedFontStreamDictionary::has_Subtype() const {
565f9e272e632e951b1efe824cd16acb4d96077930Chris Lattner  return get("Subtype", "") != NULL;
575f9e272e632e951b1efe824cd16acb4d96077930Chris Lattner}
586e089c687cc2b914c46859ab7e46fe4c3c6b0afbBenjamin Kramer
59ade5000c8763f4bec41f452d7efa3a9b2a6d4712Sebastian RedlSkPdfStream* SkPdfEmbeddedFontStreamDictionary::Metadata(SkPdfNativeDoc* doc) {
606e089c687cc2b914c46859ab7e46fe4c3c6b0afbBenjamin Kramer  SkPdfNativeObject* ret = get("Metadata", "");
616e089c687cc2b914c46859ab7e46fe4c3c6b0afbBenjamin Kramer  if (doc) {ret = doc->resolveReference(ret);}
625f9e272e632e951b1efe824cd16acb4d96077930Chris Lattner  if ((ret != NULL && ret->hasStream()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->getStream();
635f9e272e632e951b1efe824cd16acb4d96077930Chris Lattner  // TODO(edisonn): warn about missing default value for optional fields
646e089c687cc2b914c46859ab7e46fe4c3c6b0afbBenjamin Kramer  return NULL;
65ade5000c8763f4bec41f452d7efa3a9b2a6d4712Sebastian Redl}
66ade5000c8763f4bec41f452d7efa3a9b2a6d4712Sebastian Redl
672cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregorbool SkPdfEmbeddedFontStreamDictionary::has_Metadata() const {
682cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor  return get("Metadata", "") != NULL;
692cf2634ffdb4f7c8d46cef3f8e60a55993f1c57aDouglas Gregor}
7012b1c7615d4f9a2edc544be499f895f16ac100edChris Lattner