1*feeed43cSAndroid Build Coastguard Worker <?cs # Create a comma separated list of annotations on obj that were in showAnnotations in Doclava ?> 2*feeed43cSAndroid Build Coastguard Worker <?cs # pre is an HTML string to start the list, post is an HTML string to close the list ?> 3*feeed43cSAndroid Build Coastguard Worker <?cs # for example call:show_annotations_list(cl, "<td>Annotations: ", "</td>") ?> 4*feeed43cSAndroid Build Coastguard Worker <?cs # if obj has nothing on obj.showAnnotations, nothing will be output ?> 5*feeed43cSAndroid Build Coastguard Worker <?cs def:show_annotations_list(obj) ?> 6*feeed43cSAndroid Build Coastguard Worker <?cs each:anno = obj.showAnnotations ?> 7*feeed43cSAndroid Build Coastguard Worker <?cs if:first(anno) ?> 8*feeed43cSAndroid Build Coastguard Worker <span class='annotation-message'> 9*feeed43cSAndroid Build Coastguard Worker Included in documentation by the annotations: 10*feeed43cSAndroid Build Coastguard Worker <?cs /if ?> 11*feeed43cSAndroid Build Coastguard Worker @<?cs var:anno.type.label ?> 12*feeed43cSAndroid Build Coastguard Worker <?cs if:last(anno) == 0 ?> 13*feeed43cSAndroid Build Coastguard Worker , 14*feeed43cSAndroid Build Coastguard Worker <?cs /if ?> 15*feeed43cSAndroid Build Coastguard Worker <?cs if:last(anno)?> 16*feeed43cSAndroid Build Coastguard Worker </span> 17*feeed43cSAndroid Build Coastguard Worker <?cs /if ?> 18*feeed43cSAndroid Build Coastguard Worker <?cs /each ?> 19*feeed43cSAndroid Build Coastguard Worker <?cs /def ?> 20*feeed43cSAndroid Build Coastguard Worker 21*feeed43cSAndroid Build Coastguard Worker <?cs # Override default class_link_table to display annotations ?> 22*feeed43cSAndroid Build Coastguard Worker <?cs def:class_link_table(classes) ?> 23*feeed43cSAndroid Build Coastguard Worker <?cs set:count = #1 ?> 24*feeed43cSAndroid Build Coastguard Worker <table class="jd-sumtable-expando"> 25*feeed43cSAndroid Build Coastguard Worker <?cs each:cl=classes ?> 26*feeed43cSAndroid Build Coastguard Worker <tr <?cs 27*feeed43cSAndroid Build Coastguard Worker if:cl.type.since 28*feeed43cSAndroid Build Coastguard Worker ?>data-version-added="<?cs var:cl.type.since ?>"<?cs 29*feeed43cSAndroid Build Coastguard Worker /if ?><?cs 30*feeed43cSAndroid Build Coastguard Worker if:cl.type.deprecatedsince 31*feeed43cSAndroid Build Coastguard Worker ?> data-version-deprecated="<?cs var:cl.type.deprecatedsince ?>"<?cs 32*feeed43cSAndroid Build Coastguard Worker /if ?> > 33*feeed43cSAndroid Build Coastguard Worker <td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td> 34*feeed43cSAndroid Build Coastguard Worker <td class="jd-descrcol" width="100%"> 35*feeed43cSAndroid Build Coastguard Worker <?cs call:short_descr(cl) ?> 36*feeed43cSAndroid Build Coastguard Worker <?cs call:show_annotations_list(cl) ?> 37*feeed43cSAndroid Build Coastguard Worker </td> 38*feeed43cSAndroid Build Coastguard Worker </tr> 39*feeed43cSAndroid Build Coastguard Worker <?cs set:count = count + #1 ?> 40*feeed43cSAndroid Build Coastguard Worker <?cs /each ?> 41*feeed43cSAndroid Build Coastguard Worker </table> 42*feeed43cSAndroid Build Coastguard Worker <?cs /def ?> 43*feeed43cSAndroid Build Coastguard Worker 44*feeed43cSAndroid Build Coastguard Worker <?cs 45*feeed43cSAndroid Build Coastguard Worker # Prints a comma separated list of parameters with optional line breaks 46*feeed43cSAndroid Build Coastguard Worker ?><?cs 47*feeed43cSAndroid Build Coastguard Worker def:parameter_list(params, linebreaks) ?><?cs 48*feeed43cSAndroid Build Coastguard Worker each:param = params ?><?cs 49*feeed43cSAndroid Build Coastguard Worker call:simple_type_link(param.type)?> <?cs 50*feeed43cSAndroid Build Coastguard Worker var:param.name ?><?cs 51*feeed43cSAndroid Build Coastguard Worker if: name(param)!=subcount(params)-1 52*feeed43cSAndroid Build Coastguard Worker ?>, <?cs if:linebreaks 53*feeed43cSAndroid Build Coastguard Worker ?> 54*feeed43cSAndroid Build Coastguard Worker <?cs /if ?><?cs 55*feeed43cSAndroid Build Coastguard Worker /if ?><?cs 56*feeed43cSAndroid Build Coastguard Worker /each ?><?cs 57*feeed43cSAndroid Build Coastguard Worker /def ?><?cs 58*feeed43cSAndroid Build Coastguard Worker 59*feeed43cSAndroid Build Coastguard Worker # Print output for aux tags that are not "standard" javadoc tags ?><?cs 60*feeed43cSAndroid Build Coastguard Worker def:aux_tag_list(tags) ?><?cs 61*feeed43cSAndroid Build Coastguard Worker each:tag = tags ?><p><?cs 62*feeed43cSAndroid Build Coastguard Worker if:tag.kind == "@memberDoc" ?><?cs call:tag_list(tag.commentTags) ?><?cs 63*feeed43cSAndroid Build Coastguard Worker elif:tag.kind == "@paramDoc" ?><?cs call:tag_list(tag.commentTags) ?><?cs 64*feeed43cSAndroid Build Coastguard Worker elif:tag.kind == "@returnDoc" ?><?cs call:tag_list(tag.commentTags) ?><?cs 65*feeed43cSAndroid Build Coastguard Worker elif:tag.kind == "@range" ?><?cs call:dump_range(tag) ?><?cs 66*feeed43cSAndroid Build Coastguard Worker elif:tag.kind == "@intDef" ?><?cs call:dump_int_def(tag) ?><?cs 67*feeed43cSAndroid Build Coastguard Worker elif:tag.kind == "@stringDef" ?><?cs call:dump_string_def(tag) ?><?cs 68*feeed43cSAndroid Build Coastguard Worker elif:tag.kind == "@permission" ?><?cs call:dump_permission(tag) ?><?cs 69*feeed43cSAndroid Build Coastguard Worker elif:tag.kind == "@service" ?><?cs call:dump_service(tag) ?><?cs 70*feeed43cSAndroid Build Coastguard Worker elif:tag.kind == "@feature" ?><?cs call:dump_feature(tag) ?><?cs 71*feeed43cSAndroid Build Coastguard Worker elif:tag.kind == "@column" ?><?cs call:dump_column(tag) ?><?cs 72*feeed43cSAndroid Build Coastguard Worker /if ?><?cs 73*feeed43cSAndroid Build Coastguard Worker /each ?></p><?cs 74*feeed43cSAndroid Build Coastguard Worker /def ?><?cs 75*feeed43cSAndroid Build Coastguard Worker 76*feeed43cSAndroid Build Coastguard Worker # Print output for @range tags ?><?cs 77*feeed43cSAndroid Build Coastguard Worker def:dump_range(tag) ?><?cs 78*feeed43cSAndroid Build Coastguard Worker if:tag.from && tag.to ?>Value is between <?cs var:tag.from ?> and <?cs var:tag.to ?> inclusive.<?cs 79*feeed43cSAndroid Build Coastguard Worker elif:tag.from ?>Value is <?cs var:tag.from ?> or greater.<?cs 80*feeed43cSAndroid Build Coastguard Worker elif:tag.to ?>Value is <?cs var:tag.to ?> or less.<?cs 81*feeed43cSAndroid Build Coastguard Worker /if ?><?cs 82*feeed43cSAndroid Build Coastguard Worker /def ?><?cs 83*feeed43cSAndroid Build Coastguard Worker 84*feeed43cSAndroid Build Coastguard Worker # Print output for @intDef tags ?><?cs 85*feeed43cSAndroid Build Coastguard Worker def:dump_int_def(tag) ?><?cs 86*feeed43cSAndroid Build Coastguard Worker if:tag.flag ?><?cs 87*feeed43cSAndroid Build Coastguard Worker if:subcount(tag.values) > 1 ?>Value is either <code>0</code> or combination of <?cs 88*feeed43cSAndroid Build Coastguard Worker else ?>Value is either <code>0</code> or <?cs 89*feeed43cSAndroid Build Coastguard Worker /if ?><?cs 90*feeed43cSAndroid Build Coastguard Worker else ?>Value is <?cs 91*feeed43cSAndroid Build Coastguard Worker /if ?><?cs 92*feeed43cSAndroid Build Coastguard Worker loop:i = #0, subcount(tag.values), #1 ?><?cs 93*feeed43cSAndroid Build Coastguard Worker with:val = tag.values[i] ?><?cs 94*feeed43cSAndroid Build Coastguard Worker call:tag_list(val.commentTags) ?><?cs 95*feeed43cSAndroid Build Coastguard Worker if i == subcount(tag.values) - 2 ?> or <?cs 96*feeed43cSAndroid Build Coastguard Worker elif:i < subcount(tag.values) - 2 ?>, <?cs 97*feeed43cSAndroid Build Coastguard Worker /if ?><?cs 98*feeed43cSAndroid Build Coastguard Worker /with ?><?cs 99*feeed43cSAndroid Build Coastguard Worker /loop ?>.<?cs 100*feeed43cSAndroid Build Coastguard Worker /def ?><?cs 101*feeed43cSAndroid Build Coastguard Worker 102*feeed43cSAndroid Build Coastguard Worker # Print output for @stringDef tags ?><?cs 103*feeed43cSAndroid Build Coastguard Worker def:dump_string_def(tag) ?>Value is <?cs 104*feeed43cSAndroid Build Coastguard Worker loop:i = #0, subcount(tag.values), #1 ?><?cs 105*feeed43cSAndroid Build Coastguard Worker with:val = tag.values[i] ?><?cs 106*feeed43cSAndroid Build Coastguard Worker call:tag_list(val.commentTags) ?><?cs 107*feeed43cSAndroid Build Coastguard Worker if i == subcount(tag.values) - 2 ?> or <?cs 108*feeed43cSAndroid Build Coastguard Worker elif:i < subcount(tag.values) - 2 ?>, <?cs 109*feeed43cSAndroid Build Coastguard Worker /if ?><?cs 110*feeed43cSAndroid Build Coastguard Worker /with ?><?cs 111*feeed43cSAndroid Build Coastguard Worker /loop ?>.<?cs 112*feeed43cSAndroid Build Coastguard Worker /def ?><?cs 113*feeed43cSAndroid Build Coastguard Worker 114*feeed43cSAndroid Build Coastguard Worker # Print output for @permission tags ?><?cs 115*feeed43cSAndroid Build Coastguard Worker def:dump_permission(tag) ?>Requires the <?cs 116*feeed43cSAndroid Build Coastguard Worker loop:i = #0, subcount(tag.values), #1 ?><?cs 117*feeed43cSAndroid Build Coastguard Worker with:val = tag.values[i] ?><?cs 118*feeed43cSAndroid Build Coastguard Worker call:tag_list(val.commentTags) ?><?cs 119*feeed43cSAndroid Build Coastguard Worker if i == subcount(tag.values) - 2 ?><?cs 120*feeed43cSAndroid Build Coastguard Worker if tag.any ?> or <?cs 121*feeed43cSAndroid Build Coastguard Worker else ?> and <?cs 122*feeed43cSAndroid Build Coastguard Worker /if ?><?cs 123*feeed43cSAndroid Build Coastguard Worker elif:i < subcount(tag.values) - 2 ?>, <?cs 124*feeed43cSAndroid Build Coastguard Worker /if ?><?cs 125*feeed43cSAndroid Build Coastguard Worker /with ?><?cs 126*feeed43cSAndroid Build Coastguard Worker /loop ?><?cs 127*feeed43cSAndroid Build Coastguard Worker if subcount(tag.values) > 1 ?> permissions.<?cs 128*feeed43cSAndroid Build Coastguard Worker else ?> permission.<?cs 129*feeed43cSAndroid Build Coastguard Worker /if ?><?cs 130*feeed43cSAndroid Build Coastguard Worker /def ?><?cs 131*feeed43cSAndroid Build Coastguard Worker 132*feeed43cSAndroid Build Coastguard Worker # Print output for @service tags ?><?cs 133*feeed43cSAndroid Build Coastguard Worker def:dump_service(tag) ?>Instances of this class must be obtained using <?cs 134*feeed43cSAndroid Build Coastguard Worker loop:i = #0, subcount(tag.values) - 1, #2 ?><?cs 135*feeed43cSAndroid Build Coastguard Worker call:tag_list(tag.values[i].commentTags) ?> with the argument <?cs 136*feeed43cSAndroid Build Coastguard Worker call:tag_list(tag.values[i+1].commentTags) ?><?cs 137*feeed43cSAndroid Build Coastguard Worker if i < subcount(tag.values) - 2 ?> or <?cs 138*feeed43cSAndroid Build Coastguard Worker /if ?><?cs 139*feeed43cSAndroid Build Coastguard Worker /loop ?>.<?cs 140*feeed43cSAndroid Build Coastguard Worker /def ?><?cs 141*feeed43cSAndroid Build Coastguard Worker 142*feeed43cSAndroid Build Coastguard Worker # Print output for @feature tags ?><?cs 143*feeed43cSAndroid Build Coastguard Worker def:dump_feature(tag) ?>Requires the <?cs 144*feeed43cSAndroid Build Coastguard Worker call:tag_list(tag.values[0].commentTags) ?> feature which can be detected using <?cs 145*feeed43cSAndroid Build Coastguard Worker call:tag_list(tag.values[1].commentTags) ?>.<?cs 146*feeed43cSAndroid Build Coastguard Worker /def ?> 147*feeed43cSAndroid Build Coastguard Worker 148*feeed43cSAndroid Build Coastguard Worker # Print output for @column tags ?><?cs 149*feeed43cSAndroid Build Coastguard Worker def:dump_column(tag) ?>This constant represents a column name that can be used with a <?cs 150*feeed43cSAndroid Build Coastguard Worker call:tag_list(tag.values[0].commentTags) ?> through a <?cs 151*feeed43cSAndroid Build Coastguard Worker call:tag_list(tag.values[1].commentTags) ?> or <?cs 152*feeed43cSAndroid Build Coastguard Worker call:tag_list(tag.values[2].commentTags) ?> object. The values stored in this column are <?cs 153*feeed43cSAndroid Build Coastguard Worker call:tag_list(tag.values[3].commentTags) ?><?cs 154*feeed43cSAndroid Build Coastguard Worker if tag.readOnly ?>, and are read-only and cannot be mutated<?cs 155*feeed43cSAndroid Build Coastguard Worker else ?><?cs 156*feeed43cSAndroid Build Coastguard Worker /if ?>.<?cs 157*feeed43cSAndroid Build Coastguard Worker /def ?> 158