Home | History | Annotate | Download | only in pdfapi
      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 "SkPdfGraphicsStateDictionary_autogen.h"
      9 #include "SkPdfNativeDoc.h"
     10 
     11 SkString SkPdfGraphicsStateDictionary::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 default value for optional fields
     16   return SkString();
     17 }
     18 
     19 bool SkPdfGraphicsStateDictionary::has_Type() const {
     20   return get("Type", "") != NULL;
     21 }
     22 
     23 double SkPdfGraphicsStateDictionary::LW(SkPdfNativeDoc* doc) {
     24   SkPdfNativeObject* ret = get("LW", "");
     25   if (doc) {ret = doc->resolveReference(ret);}
     26   if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue();
     27   // TODO(edisonn): warn about missing default value for optional fields
     28   return 0;
     29 }
     30 
     31 bool SkPdfGraphicsStateDictionary::has_LW() const {
     32   return get("LW", "") != NULL;
     33 }
     34 
     35 int64_t SkPdfGraphicsStateDictionary::LC(SkPdfNativeDoc* doc) {
     36   SkPdfNativeObject* ret = get("LC", "");
     37   if (doc) {ret = doc->resolveReference(ret);}
     38   if ((ret != NULL && ret->isInteger()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->intValue();
     39   // TODO(edisonn): warn about missing default value for optional fields
     40   return 0;
     41 }
     42 
     43 bool SkPdfGraphicsStateDictionary::has_LC() const {
     44   return get("LC", "") != NULL;
     45 }
     46 
     47 int64_t SkPdfGraphicsStateDictionary::LJ(SkPdfNativeDoc* doc) {
     48   SkPdfNativeObject* ret = get("LJ", "");
     49   if (doc) {ret = doc->resolveReference(ret);}
     50   if ((ret != NULL && ret->isInteger()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->intValue();
     51   // TODO(edisonn): warn about missing default value for optional fields
     52   return 0;
     53 }
     54 
     55 bool SkPdfGraphicsStateDictionary::has_LJ() const {
     56   return get("LJ", "") != NULL;
     57 }
     58 
     59 double SkPdfGraphicsStateDictionary::ML(SkPdfNativeDoc* doc) {
     60   SkPdfNativeObject* ret = get("ML", "");
     61   if (doc) {ret = doc->resolveReference(ret);}
     62   if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue();
     63   // TODO(edisonn): warn about missing default value for optional fields
     64   return 0;
     65 }
     66 
     67 bool SkPdfGraphicsStateDictionary::has_ML() const {
     68   return get("ML", "") != NULL;
     69 }
     70 
     71 SkPdfArray* SkPdfGraphicsStateDictionary::D(SkPdfNativeDoc* doc) {
     72   SkPdfNativeObject* ret = get("D", "");
     73   if (doc) {ret = doc->resolveReference(ret);}
     74   if ((ret != NULL && ret->isArray()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfArray*)ret;
     75   // TODO(edisonn): warn about missing default value for optional fields
     76   return NULL;
     77 }
     78 
     79 bool SkPdfGraphicsStateDictionary::has_D() const {
     80   return get("D", "") != NULL;
     81 }
     82 
     83 SkString SkPdfGraphicsStateDictionary::RI(SkPdfNativeDoc* doc) {
     84   SkPdfNativeObject* ret = get("RI", "");
     85   if (doc) {ret = doc->resolveReference(ret);}
     86   if ((ret != NULL && ret->isName()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->nameValue2();
     87   // TODO(edisonn): warn about missing default value for optional fields
     88   return SkString();
     89 }
     90 
     91 bool SkPdfGraphicsStateDictionary::has_RI() const {
     92   return get("RI", "") != NULL;
     93 }
     94 
     95 bool SkPdfGraphicsStateDictionary::OP(SkPdfNativeDoc* doc) {
     96   SkPdfNativeObject* ret = get("OP", "");
     97   if (doc) {ret = doc->resolveReference(ret);}
     98   if ((ret != NULL && ret->isBoolean()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->boolValue();
     99   // TODO(edisonn): warn about missing default value for optional fields
    100   return false;
    101 }
    102 
    103 bool SkPdfGraphicsStateDictionary::has_OP() const {
    104   return get("OP", "") != NULL;
    105 }
    106 
    107 bool SkPdfGraphicsStateDictionary::op(SkPdfNativeDoc* doc) {
    108   SkPdfNativeObject* ret = get("op", "");
    109   if (doc) {ret = doc->resolveReference(ret);}
    110   if ((ret != NULL && ret->isBoolean()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->boolValue();
    111   // TODO(edisonn): warn about missing default value for optional fields
    112   return false;
    113 }
    114 
    115 bool SkPdfGraphicsStateDictionary::has_op() const {
    116   return get("op", "") != NULL;
    117 }
    118 
    119 int64_t SkPdfGraphicsStateDictionary::OPM(SkPdfNativeDoc* doc) {
    120   SkPdfNativeObject* ret = get("OPM", "");
    121   if (doc) {ret = doc->resolveReference(ret);}
    122   if ((ret != NULL && ret->isInteger()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->intValue();
    123   // TODO(edisonn): warn about missing default value for optional fields
    124   return 0;
    125 }
    126 
    127 bool SkPdfGraphicsStateDictionary::has_OPM() const {
    128   return get("OPM", "") != NULL;
    129 }
    130 
    131 SkPdfArray* SkPdfGraphicsStateDictionary::Font(SkPdfNativeDoc* doc) {
    132   SkPdfNativeObject* ret = get("Font", "");
    133   if (doc) {ret = doc->resolveReference(ret);}
    134   if ((ret != NULL && ret->isArray()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfArray*)ret;
    135   // TODO(edisonn): warn about missing default value for optional fields
    136   return NULL;
    137 }
    138 
    139 bool SkPdfGraphicsStateDictionary::has_Font() const {
    140   return get("Font", "") != NULL;
    141 }
    142 
    143 SkPdfFunction SkPdfGraphicsStateDictionary::BG(SkPdfNativeDoc* doc) {
    144   SkPdfNativeObject* ret = get("BG", "");
    145   if (doc) {ret = doc->resolveReference(ret);}
    146   if ((ret != NULL && ret->isFunction()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->functionValue();
    147   // TODO(edisonn): warn about missing default value for optional fields
    148   return SkPdfFunction();
    149 }
    150 
    151 bool SkPdfGraphicsStateDictionary::has_BG() const {
    152   return get("BG", "") != NULL;
    153 }
    154 
    155 bool SkPdfGraphicsStateDictionary::isBG2AFunction(SkPdfNativeDoc* doc) {
    156   SkPdfNativeObject* ret = get("BG2", "");
    157   if (doc) {ret = doc->resolveReference(ret);}
    158   return ret != NULL && ret->isFunction();
    159 }
    160 
    161 SkPdfFunction SkPdfGraphicsStateDictionary::getBG2AsFunction(SkPdfNativeDoc* doc) {
    162   SkPdfNativeObject* ret = get("BG2", "");
    163   if (doc) {ret = doc->resolveReference(ret);}
    164   if ((ret != NULL && ret->isFunction()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->functionValue();
    165   // TODO(edisonn): warn about missing default value for optional fields
    166   return SkPdfFunction();
    167 }
    168 
    169 bool SkPdfGraphicsStateDictionary::isBG2AName(SkPdfNativeDoc* doc) {
    170   SkPdfNativeObject* ret = get("BG2", "");
    171   if (doc) {ret = doc->resolveReference(ret);}
    172   return ret != NULL && ret->isName();
    173 }
    174 
    175 SkString SkPdfGraphicsStateDictionary::getBG2AsName(SkPdfNativeDoc* doc) {
    176   SkPdfNativeObject* ret = get("BG2", "");
    177   if (doc) {ret = doc->resolveReference(ret);}
    178   if ((ret != NULL && ret->isName()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->nameValue2();
    179   // TODO(edisonn): warn about missing default value for optional fields
    180   return SkString();
    181 }
    182 
    183 bool SkPdfGraphicsStateDictionary::has_BG2() const {
    184   return get("BG2", "") != NULL;
    185 }
    186 
    187 SkPdfFunction SkPdfGraphicsStateDictionary::UCR(SkPdfNativeDoc* doc) {
    188   SkPdfNativeObject* ret = get("UCR", "");
    189   if (doc) {ret = doc->resolveReference(ret);}
    190   if ((ret != NULL && ret->isFunction()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->functionValue();
    191   // TODO(edisonn): warn about missing default value for optional fields
    192   return SkPdfFunction();
    193 }
    194 
    195 bool SkPdfGraphicsStateDictionary::has_UCR() const {
    196   return get("UCR", "") != NULL;
    197 }
    198 
    199 bool SkPdfGraphicsStateDictionary::isUCR2AFunction(SkPdfNativeDoc* doc) {
    200   SkPdfNativeObject* ret = get("UCR2", "");
    201   if (doc) {ret = doc->resolveReference(ret);}
    202   return ret != NULL && ret->isFunction();
    203 }
    204 
    205 SkPdfFunction SkPdfGraphicsStateDictionary::getUCR2AsFunction(SkPdfNativeDoc* doc) {
    206   SkPdfNativeObject* ret = get("UCR2", "");
    207   if (doc) {ret = doc->resolveReference(ret);}
    208   if ((ret != NULL && ret->isFunction()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->functionValue();
    209   // TODO(edisonn): warn about missing default value for optional fields
    210   return SkPdfFunction();
    211 }
    212 
    213 bool SkPdfGraphicsStateDictionary::isUCR2AName(SkPdfNativeDoc* doc) {
    214   SkPdfNativeObject* ret = get("UCR2", "");
    215   if (doc) {ret = doc->resolveReference(ret);}
    216   return ret != NULL && ret->isName();
    217 }
    218 
    219 SkString SkPdfGraphicsStateDictionary::getUCR2AsName(SkPdfNativeDoc* doc) {
    220   SkPdfNativeObject* ret = get("UCR2", "");
    221   if (doc) {ret = doc->resolveReference(ret);}
    222   if ((ret != NULL && ret->isName()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->nameValue2();
    223   // TODO(edisonn): warn about missing default value for optional fields
    224   return SkString();
    225 }
    226 
    227 bool SkPdfGraphicsStateDictionary::has_UCR2() const {
    228   return get("UCR2", "") != NULL;
    229 }
    230 
    231 bool SkPdfGraphicsStateDictionary::isTRAFunction(SkPdfNativeDoc* doc) {
    232   SkPdfNativeObject* ret = get("TR", "");
    233   if (doc) {ret = doc->resolveReference(ret);}
    234   return ret != NULL && ret->isFunction();
    235 }
    236 
    237 SkPdfFunction SkPdfGraphicsStateDictionary::getTRAsFunction(SkPdfNativeDoc* doc) {
    238   SkPdfNativeObject* ret = get("TR", "");
    239   if (doc) {ret = doc->resolveReference(ret);}
    240   if ((ret != NULL && ret->isFunction()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->functionValue();
    241   // TODO(edisonn): warn about missing default value for optional fields
    242   return SkPdfFunction();
    243 }
    244 
    245 bool SkPdfGraphicsStateDictionary::isTRAArray(SkPdfNativeDoc* doc) {
    246   SkPdfNativeObject* ret = get("TR", "");
    247   if (doc) {ret = doc->resolveReference(ret);}
    248   return ret != NULL && ret->isArray();
    249 }
    250 
    251 SkPdfArray* SkPdfGraphicsStateDictionary::getTRAsArray(SkPdfNativeDoc* doc) {
    252   SkPdfNativeObject* ret = get("TR", "");
    253   if (doc) {ret = doc->resolveReference(ret);}
    254   if ((ret != NULL && ret->isArray()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfArray*)ret;
    255   // TODO(edisonn): warn about missing default value for optional fields
    256   return NULL;
    257 }
    258 
    259 bool SkPdfGraphicsStateDictionary::isTRAName(SkPdfNativeDoc* doc) {
    260   SkPdfNativeObject* ret = get("TR", "");
    261   if (doc) {ret = doc->resolveReference(ret);}
    262   return ret != NULL && ret->isName();
    263 }
    264 
    265 SkString SkPdfGraphicsStateDictionary::getTRAsName(SkPdfNativeDoc* doc) {
    266   SkPdfNativeObject* ret = get("TR", "");
    267   if (doc) {ret = doc->resolveReference(ret);}
    268   if ((ret != NULL && ret->isName()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->nameValue2();
    269   // TODO(edisonn): warn about missing default value for optional fields
    270   return SkString();
    271 }
    272 
    273 bool SkPdfGraphicsStateDictionary::has_TR() const {
    274   return get("TR", "") != NULL;
    275 }
    276 
    277 bool SkPdfGraphicsStateDictionary::isTR2AFunction(SkPdfNativeDoc* doc) {
    278   SkPdfNativeObject* ret = get("TR2", "");
    279   if (doc) {ret = doc->resolveReference(ret);}
    280   return ret != NULL && ret->isFunction();
    281 }
    282 
    283 SkPdfFunction SkPdfGraphicsStateDictionary::getTR2AsFunction(SkPdfNativeDoc* doc) {
    284   SkPdfNativeObject* ret = get("TR2", "");
    285   if (doc) {ret = doc->resolveReference(ret);}
    286   if ((ret != NULL && ret->isFunction()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->functionValue();
    287   // TODO(edisonn): warn about missing default value for optional fields
    288   return SkPdfFunction();
    289 }
    290 
    291 bool SkPdfGraphicsStateDictionary::isTR2AArray(SkPdfNativeDoc* doc) {
    292   SkPdfNativeObject* ret = get("TR2", "");
    293   if (doc) {ret = doc->resolveReference(ret);}
    294   return ret != NULL && ret->isArray();
    295 }
    296 
    297 SkPdfArray* SkPdfGraphicsStateDictionary::getTR2AsArray(SkPdfNativeDoc* doc) {
    298   SkPdfNativeObject* ret = get("TR2", "");
    299   if (doc) {ret = doc->resolveReference(ret);}
    300   if ((ret != NULL && ret->isArray()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfArray*)ret;
    301   // TODO(edisonn): warn about missing default value for optional fields
    302   return NULL;
    303 }
    304 
    305 bool SkPdfGraphicsStateDictionary::isTR2AName(SkPdfNativeDoc* doc) {
    306   SkPdfNativeObject* ret = get("TR2", "");
    307   if (doc) {ret = doc->resolveReference(ret);}
    308   return ret != NULL && ret->isName();
    309 }
    310 
    311 SkString SkPdfGraphicsStateDictionary::getTR2AsName(SkPdfNativeDoc* doc) {
    312   SkPdfNativeObject* ret = get("TR2", "");
    313   if (doc) {ret = doc->resolveReference(ret);}
    314   if ((ret != NULL && ret->isName()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->nameValue2();
    315   // TODO(edisonn): warn about missing default value for optional fields
    316   return SkString();
    317 }
    318 
    319 bool SkPdfGraphicsStateDictionary::has_TR2() const {
    320   return get("TR2", "") != NULL;
    321 }
    322 
    323 bool SkPdfGraphicsStateDictionary::isHTADictionary(SkPdfNativeDoc* doc) {
    324   SkPdfNativeObject* ret = get("HT", "");
    325   if (doc) {ret = doc->resolveReference(ret);}
    326   return ret != NULL && ret->isDictionary();
    327 }
    328 
    329 SkPdfDictionary* SkPdfGraphicsStateDictionary::getHTAsDictionary(SkPdfNativeDoc* doc) {
    330   SkPdfNativeObject* ret = get("HT", "");
    331   if (doc) {ret = doc->resolveReference(ret);}
    332   if ((ret != NULL && ret->isDictionary()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfDictionary*)ret;
    333   // TODO(edisonn): warn about missing default value for optional fields
    334   return NULL;
    335 }
    336 
    337 bool SkPdfGraphicsStateDictionary::isHTAStream(SkPdfNativeDoc* doc) {
    338   SkPdfNativeObject* ret = get("HT", "");
    339   if (doc) {ret = doc->resolveReference(ret);}
    340   return ret != NULL && ret->hasStream();
    341 }
    342 
    343 SkPdfStream* SkPdfGraphicsStateDictionary::getHTAsStream(SkPdfNativeDoc* doc) {
    344   SkPdfNativeObject* ret = get("HT", "");
    345   if (doc) {ret = doc->resolveReference(ret);}
    346   if ((ret != NULL && ret->hasStream()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->getStream();
    347   // TODO(edisonn): warn about missing default value for optional fields
    348   return NULL;
    349 }
    350 
    351 bool SkPdfGraphicsStateDictionary::isHTAName(SkPdfNativeDoc* doc) {
    352   SkPdfNativeObject* ret = get("HT", "");
    353   if (doc) {ret = doc->resolveReference(ret);}
    354   return ret != NULL && ret->isName();
    355 }
    356 
    357 SkString SkPdfGraphicsStateDictionary::getHTAsName(SkPdfNativeDoc* doc) {
    358   SkPdfNativeObject* ret = get("HT", "");
    359   if (doc) {ret = doc->resolveReference(ret);}
    360   if ((ret != NULL && ret->isName()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->nameValue2();
    361   // TODO(edisonn): warn about missing default value for optional fields
    362   return SkString();
    363 }
    364 
    365 bool SkPdfGraphicsStateDictionary::has_HT() const {
    366   return get("HT", "") != NULL;
    367 }
    368 
    369 double SkPdfGraphicsStateDictionary::FL(SkPdfNativeDoc* doc) {
    370   SkPdfNativeObject* ret = get("FL", "");
    371   if (doc) {ret = doc->resolveReference(ret);}
    372   if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue();
    373   // TODO(edisonn): warn about missing default value for optional fields
    374   return 0;
    375 }
    376 
    377 bool SkPdfGraphicsStateDictionary::has_FL() const {
    378   return get("FL", "") != NULL;
    379 }
    380 
    381 double SkPdfGraphicsStateDictionary::SM(SkPdfNativeDoc* doc) {
    382   SkPdfNativeObject* ret = get("SM", "");
    383   if (doc) {ret = doc->resolveReference(ret);}
    384   if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue();
    385   // TODO(edisonn): warn about missing default value for optional fields
    386   return 0;
    387 }
    388 
    389 bool SkPdfGraphicsStateDictionary::has_SM() const {
    390   return get("SM", "") != NULL;
    391 }
    392 
    393 bool SkPdfGraphicsStateDictionary::SA(SkPdfNativeDoc* doc) {
    394   SkPdfNativeObject* ret = get("SA", "");
    395   if (doc) {ret = doc->resolveReference(ret);}
    396   if ((ret != NULL && ret->isBoolean()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->boolValue();
    397   // TODO(edisonn): warn about missing default value for optional fields
    398   return false;
    399 }
    400 
    401 bool SkPdfGraphicsStateDictionary::has_SA() const {
    402   return get("SA", "") != NULL;
    403 }
    404 
    405 bool SkPdfGraphicsStateDictionary::isBMAName(SkPdfNativeDoc* doc) {
    406   SkPdfNativeObject* ret = get("BM", "");
    407   if (doc) {ret = doc->resolveReference(ret);}
    408   return ret != NULL && ret->isName();
    409 }
    410 
    411 SkString SkPdfGraphicsStateDictionary::getBMAsName(SkPdfNativeDoc* doc) {
    412   SkPdfNativeObject* ret = get("BM", "");
    413   if (doc) {ret = doc->resolveReference(ret);}
    414   if ((ret != NULL && ret->isName()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->nameValue2();
    415   // TODO(edisonn): warn about missing default value for optional fields
    416   return SkString();
    417 }
    418 
    419 bool SkPdfGraphicsStateDictionary::isBMAArray(SkPdfNativeDoc* doc) {
    420   SkPdfNativeObject* ret = get("BM", "");
    421   if (doc) {ret = doc->resolveReference(ret);}
    422   return ret != NULL && ret->isArray();
    423 }
    424 
    425 SkPdfArray* SkPdfGraphicsStateDictionary::getBMAsArray(SkPdfNativeDoc* doc) {
    426   SkPdfNativeObject* ret = get("BM", "");
    427   if (doc) {ret = doc->resolveReference(ret);}
    428   if ((ret != NULL && ret->isArray()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfArray*)ret;
    429   // TODO(edisonn): warn about missing default value for optional fields
    430   return NULL;
    431 }
    432 
    433 bool SkPdfGraphicsStateDictionary::has_BM() const {
    434   return get("BM", "") != NULL;
    435 }
    436 
    437 bool SkPdfGraphicsStateDictionary::isSMaskADictionary(SkPdfNativeDoc* doc) {
    438   SkPdfNativeObject* ret = get("SMask", "");
    439   if (doc) {ret = doc->resolveReference(ret);}
    440   return ret != NULL && ret->isDictionary();
    441 }
    442 
    443 SkPdfDictionary* SkPdfGraphicsStateDictionary::getSMaskAsDictionary(SkPdfNativeDoc* doc) {
    444   SkPdfNativeObject* ret = get("SMask", "");
    445   if (doc) {ret = doc->resolveReference(ret);}
    446   if ((ret != NULL && ret->isDictionary()) || (doc == NULL && ret != NULL && ret->isReference())) return (SkPdfDictionary*)ret;
    447   // TODO(edisonn): warn about missing default value for optional fields
    448   return NULL;
    449 }
    450 
    451 bool SkPdfGraphicsStateDictionary::isSMaskAName(SkPdfNativeDoc* doc) {
    452   SkPdfNativeObject* ret = get("SMask", "");
    453   if (doc) {ret = doc->resolveReference(ret);}
    454   return ret != NULL && ret->isName();
    455 }
    456 
    457 SkString SkPdfGraphicsStateDictionary::getSMaskAsName(SkPdfNativeDoc* doc) {
    458   SkPdfNativeObject* ret = get("SMask", "");
    459   if (doc) {ret = doc->resolveReference(ret);}
    460   if ((ret != NULL && ret->isName()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->nameValue2();
    461   // TODO(edisonn): warn about missing default value for optional fields
    462   return SkString();
    463 }
    464 
    465 bool SkPdfGraphicsStateDictionary::has_SMask() const {
    466   return get("SMask", "") != NULL;
    467 }
    468 
    469 double SkPdfGraphicsStateDictionary::CA(SkPdfNativeDoc* doc) {
    470   SkPdfNativeObject* ret = get("CA", "");
    471   if (doc) {ret = doc->resolveReference(ret);}
    472   if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue();
    473   // TODO(edisonn): warn about missing default value for optional fields
    474   return 0;
    475 }
    476 
    477 bool SkPdfGraphicsStateDictionary::has_CA() const {
    478   return get("CA", "") != NULL;
    479 }
    480 
    481 double SkPdfGraphicsStateDictionary::ca(SkPdfNativeDoc* doc) {
    482   SkPdfNativeObject* ret = get("ca", "");
    483   if (doc) {ret = doc->resolveReference(ret);}
    484   if ((ret != NULL && ret->isNumber()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->numberValue();
    485   // TODO(edisonn): warn about missing default value for optional fields
    486   return 0;
    487 }
    488 
    489 bool SkPdfGraphicsStateDictionary::has_ca() const {
    490   return get("ca", "") != NULL;
    491 }
    492 
    493 bool SkPdfGraphicsStateDictionary::AIS(SkPdfNativeDoc* doc) {
    494   SkPdfNativeObject* ret = get("AIS", "");
    495   if (doc) {ret = doc->resolveReference(ret);}
    496   if ((ret != NULL && ret->isBoolean()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->boolValue();
    497   // TODO(edisonn): warn about missing default value for optional fields
    498   return false;
    499 }
    500 
    501 bool SkPdfGraphicsStateDictionary::has_AIS() const {
    502   return get("AIS", "") != NULL;
    503 }
    504 
    505 bool SkPdfGraphicsStateDictionary::TK(SkPdfNativeDoc* doc) {
    506   SkPdfNativeObject* ret = get("TK", "");
    507   if (doc) {ret = doc->resolveReference(ret);}
    508   if ((ret != NULL && ret->isBoolean()) || (doc == NULL && ret != NULL && ret->isReference())) return ret->boolValue();
    509   // TODO(edisonn): warn about missing default value for optional fields
    510   return false;
    511 }
    512 
    513 bool SkPdfGraphicsStateDictionary::has_TK() const {
    514   return get("TK", "") != NULL;
    515 }
    516