Best JavaScript code snippet using best
toc.js
Source:toc.js
1/*2 * Licensed to the Apache Software Foundation (ASF) under one3 * or more contributor license agreements. See the NOTICE file4 * distributed with this work for additional information5 * regarding copyright ownership. The ASF licenses this file6 * to you under the Apache License, Version 2.0 (the7 * "License"); you may not use this file except in compliance8 * with the License. You may obtain a copy of the License at9 * 10 * http://www.apache.org/licenses/LICENSE-2.011 * 12 * Unless required by applicable law or agreed to in writing,13 * software distributed under the License is distributed on an14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY15 * KIND, either express or implied. See the License for the16 * specific language governing permissions and limitations17 * under the License.18 */19var toc = {20"title": "Apache FreeMarker Manual",21"url": "toc.html",22"isFile": true,23"children": [24{25"title": "What is Apache FreeMarker?",26"url": "index.html",27"isFile": true,28"children": [29]30}31,32{33"title": "Template Author's Guide",34"url": "dgui.html",35"isFile": true,36"children": [37{38"title": "Getting Started",39"url": "dgui_quickstart.html",40"isFile": true,41"children": [42{43"title": "Template + data-model = output",44"url": "dgui_quickstart_basics.html",45"isFile": true,46"children": [47]48}49,50{51"title": "The data-model at a glance",52"url": "dgui_quickstart_datamodel.html",53"isFile": true,54"children": [55]56}57,58{59"title": "The template at a glance",60"url": "dgui_quickstart_template.html",61"isFile": true,62"children": [63{64"title": "Some basic directives",65"url": "dgui_quickstart_template.html#autoid_2",66"isFile": false,67"children": [68{69"title": "The if directive",70"url": "dgui_quickstart_template.html#autoid_3",71"isFile": false,72"children": [73]74}75,76{77"title": "The list directive",78"url": "dgui_quickstart_template.html#autoid_4",79"isFile": false,80"children": [81]82}83,84{85"title": "The include directive",86"url": "dgui_quickstart_template.html#autoid_5",87"isFile": false,88"children": [89]90}91]92}93,94{95"title": "Using directives together",96"url": "dgui_quickstart_template.html#autoid_6",97"isFile": false,98"children": [99]100}101,102{103"title": "Using built-ins",104"url": "dgui_quickstart_template.html#autoid_7",105"isFile": false,106"children": [107]108}109,110{111"title": "Dealing with missing variables",112"url": "dgui_quickstart_template.html#autoid_8",113"isFile": false,114"children": [115]116}117,118{119"title": "Escaping for HTML, XML and other markup",120"url": "dgui_quickstart_template.html#dgui_quickstart_template_autoescaping",121"isFile": false,122"children": [123]124}125]126}127]128}129,130{131"title": "Values, Types",132"url": "dgui_datamodel.html",133"isFile": true,134"children": [135{136"title": "Basics",137"url": "dgui_datamodel_basics.html",138"isFile": true,139"children": [140{141"title": "What is a value?",142"url": "dgui_datamodel_basics.html#topic.value",143"isFile": false,144"children": [145]146}147,148{149"title": "What is type?",150"url": "dgui_datamodel_basics.html#autoid_9",151"isFile": false,152"children": [153]154}155,156{157"title": "The data-model is a hash",158"url": "dgui_datamodel_basics.html#autoid_10",159"isFile": false,160"children": [161]162}163]164}165,166{167"title": "The types",168"url": "dgui_datamodel_types.html",169"isFile": true,170"children": [171{172"title": "Scalars",173"url": "dgui_datamodel_types.html#dgui_datamodel_scalar",174"isFile": false,175"children": [176]177}178,179{180"title": "Containers",181"url": "dgui_datamodel_types.html#dgui_datamodel_container",182"isFile": false,183"children": [184]185}186,187{188"title": "Subroutines",189"url": "dgui_datamodel_types.html#autoid_11",190"isFile": false,191"children": [192{193"title": "Methods and functions",194"url": "dgui_datamodel_types.html#dgui_datamodel_method",195"isFile": false,196"children": [197]198}199,200{201"title": "User-defined directives",202"url": "dgui_datamodel_types.html#dgui_datamodel_userdefdir",203"isFile": false,204"children": [205]206}207,208{209"title": "Function/method versus user-defined directive",210"url": "dgui_datamodel_types.html#autoid_12",211"isFile": false,212"children": [213]214}215]216}217,218{219"title": "Miscellaneous",220"url": "dgui_datamodel_types.html#autoid_13",221"isFile": false,222"children": [223{224"title": "Nodes",225"url": "dgui_datamodel_types.html#dgui_datamodel_node",226"isFile": false,227"children": [228]229}230,231{232"title": "Markup output",233"url": "dgui_datamodel_types.html#dgui_datamodel_markupoutput",234"isFile": false,235"children": [236]237}238]239}240]241}242]243}244,245{246"title": "The Template",247"url": "dgui_template.html",248"isFile": true,249"children": [250{251"title": "Overall structure",252"url": "dgui_template_overallstructure.html",253"isFile": true,254"children": [255]256}257,258{259"title": "Directives",260"url": "dgui_template_directives.html",261"isFile": true,262"children": [263]264}265,266{267"title": "Expressions",268"url": "dgui_template_exp.html",269"isFile": true,270"children": [271{272"title": "Quick overview (cheat sheet)",273"url": "dgui_template_exp.html#exp_cheatsheet",274"isFile": false,275"children": [276]277}278,279{280"title": "Specify values directly",281"url": "dgui_template_exp.html#dgui_template_exp_direct",282"isFile": false,283"children": [284{285"title": "Strings",286"url": "dgui_template_exp.html#dgui_template_exp_direct_string",287"isFile": false,288"children": [289]290}291,292{293"title": "Numbers",294"url": "dgui_template_exp.html#dgui_template_exp_direct_number",295"isFile": false,296"children": [297]298}299,300{301"title": "Booleans",302"url": "dgui_template_exp.html#dgui_template_exp_direct_boolean",303"isFile": false,304"children": [305]306}307,308{309"title": "Sequences",310"url": "dgui_template_exp.html#dgui_template_exp_direct_seuqence",311"isFile": false,312"children": [313]314}315,316{317"title": "Ranges",318"url": "dgui_template_exp.html#dgui_template_exp_direct_ranges",319"isFile": false,320"children": [321]322}323,324{325"title": "Hashes",326"url": "dgui_template_exp.html#dgui_template_exp_direct_hash",327"isFile": false,328"children": [329]330}331]332}333,334{335"title": "Retrieving variables",336"url": "dgui_template_exp.html#dgui_template_exp_var",337"isFile": false,338"children": [339{340"title": "Top-level variables",341"url": "dgui_template_exp.html#dgui_template_exp_var_toplevel",342"isFile": false,343"children": [344]345}346,347{348"title": "Retrieving data from a hash",349"url": "dgui_template_exp.html#dgui_template_exp_var_hash",350"isFile": false,351"children": [352]353}354,355{356"title": "Retrieving data from a sequence",357"url": "dgui_template_exp.html#dgui_template_exp_var_sequence",358"isFile": false,359"children": [360]361}362,363{364"title": "Special variables",365"url": "dgui_template_exp.html#dgui_template_exp_var_special",366"isFile": false,367"children": [368]369}370]371}372,373{374"title": "String operations",375"url": "dgui_template_exp.html#dgui_template_exp_stringop",376"isFile": false,377"children": [378{379"title": "Interpolation and concatenation",380"url": "dgui_template_exp.html#dgui_template_exp_stringop_interpolation",381"isFile": false,382"children": [383]384}385,386{387"title": "Getting a character",388"url": "dgui_template_exp.html#dgui_template_exp_get_character",389"isFile": false,390"children": [391]392}393,394{395"title": "String slicing (substrings)",396"url": "dgui_template_exp.html#dgui_template_exp_stringop_slice",397"isFile": false,398"children": [399]400}401]402}403,404{405"title": "Sequence operations",406"url": "dgui_template_exp.html#dgui_template_exp_sequenceop",407"isFile": false,408"children": [409{410"title": "Concatenation",411"url": "dgui_template_exp.html#dgui_template_exp_sequenceop_cat",412"isFile": false,413"children": [414]415}416,417{418"title": "Sequence slicing",419"url": "dgui_template_exp.html#dgui_template_exp_seqenceop_slice",420"isFile": false,421"children": [422]423}424]425}426,427{428"title": "Hash operations",429"url": "dgui_template_exp.html#dgui_template_exp_hashop",430"isFile": false,431"children": [432{433"title": "Concatenation",434"url": "dgui_template_exp.html#dgui_template_exp_hashop_cat",435"isFile": false,436"children": [437]438}439]440}441,442{443"title": "Arithmetical calculations",444"url": "dgui_template_exp.html#dgui_template_exp_arit",445"isFile": false,446"children": [447]448}449,450{451"title": "Comparison",452"url": "dgui_template_exp.html#dgui_template_exp_comparison",453"isFile": false,454"children": [455]456}457,458{459"title": "Logical operations",460"url": "dgui_template_exp.html#dgui_template_exp_logicalop",461"isFile": false,462"children": [463]464}465,466{467"title": "Built-ins",468"url": "dgui_template_exp.html#dgui_template_exp_builtin",469"isFile": false,470"children": [471]472}473,474{475"title": "Method call",476"url": "dgui_template_exp.html#dgui_template_exp_methodcall",477"isFile": false,478"children": [479]480}481,482{483"title": "Handling missing values",484"url": "dgui_template_exp.html#dgui_template_exp_missing",485"isFile": false,486"children": [487{488"title": "Default value operator",489"url": "dgui_template_exp.html#dgui_template_exp_missing_default",490"isFile": false,491"children": [492]493}494,495{496"title": "Missing value test operator",497"url": "dgui_template_exp.html#dgui_template_exp_missing_test",498"isFile": false,499"children": [500]501}502]503}504,505{506"title": "Assignment Operators",507"url": "dgui_template_exp.html#dgui_template_exp_assignment",508"isFile": false,509"children": [510]511}512,513{514"title": "Parentheses",515"url": "dgui_template_exp.html#dgui_template_exp_parentheses",516"isFile": false,517"children": [518]519}520,521{522"title": "White-space in expressions",523"url": "dgui_template_exp.html#dgui_template_exp_whitespace",524"isFile": false,525"children": [526]527}528,529{530"title": "Comments in expressions",531"url": "dgui_template_exp.html#dgui_template_exp_comment",532"isFile": false,533"children": [534]535}536,537{538"title": "Operator precedence",539"url": "dgui_template_exp.html#dgui_template_exp_precedence",540"isFile": false,541"children": [542]543}544]545}546,547{548"title": "Interpolations",549"url": "dgui_template_valueinsertion.html",550"isFile": true,551"children": [552{553"title": "Overview",554"url": "dgui_template_valueinsertion.html#autoid_14",555"isFile": false,556"children": [557]558}559,560{561"title": "Automatic escaping",562"url": "dgui_template_valueinsertion.html#autoid_15",563"isFile": false,564"children": [565]566}567,568{569"title": "Guide to inserting numerical values",570"url": "dgui_template_valueinsertion.html#autoid_16",571"isFile": false,572"children": [573]574}575,576{577"title": "Guide to inserting date/time/date-time values",578"url": "dgui_template_valueinsertion.html#dgui_template_valueinserion_universal_date",579"isFile": false,580"children": [581]582}583,584{585"title": "Guide to inserting boolean values",586"url": "dgui_template_valueinsertion.html#autoid_17",587"isFile": false,588"children": [589]590}591,592{593"title": "Exact conversion rules",594"url": "dgui_template_valueinsertion.html#autoid_18",595"isFile": false,596"children": [597]598}599]600}601]602}603,604{605"title": "Miscellaneous",606"url": "dgui_misc.html",607"isFile": true,608"children": [609{610"title": "Defining your own directives",611"url": "dgui_misc_userdefdir.html",612"isFile": true,613"children": [614{615"title": "Basics",616"url": "dgui_misc_userdefdir.html#autoid_19",617"isFile": false,618"children": [619]620}621,622{623"title": "Parameters",624"url": "dgui_misc_userdefdir.html#autoid_20",625"isFile": false,626"children": [627]628}629,630{631"title": "Nested content",632"url": "dgui_misc_userdefdir.html#autoid_21",633"isFile": false,634"children": [635]636}637,638{639"title": "Macros with loop variables",640"url": "dgui_misc_userdefdir.html#dgui_misc_userdefdir_loopvar",641"isFile": false,642"children": [643]644}645,646{647"title": "More about user-defined directives and macros",648"url": "dgui_misc_userdefdir.html#autoid_22",649"isFile": false,650"children": [651]652}653]654}655,656{657"title": "Defining variables in the template",658"url": "dgui_misc_var.html",659"isFile": true,660"children": [661]662}663,664{665"title": "Namespaces",666"url": "dgui_misc_namespace.html",667"isFile": true,668"children": [669{670"title": "Creating a library",671"url": "dgui_misc_namespace.html#autoid_23",672"isFile": false,673"children": [674]675}676,677{678"title": "Writing the variables of imported namespaces",679"url": "dgui_misc_namespace.html#autoid_24",680"isFile": false,681"children": [682]683}684,685{686"title": "Namespaces and data-model",687"url": "dgui_misc_namespace.html#autoid_25",688"isFile": false,689"children": [690]691}692,693{694"title": "The life-cycle of namespaces",695"url": "dgui_misc_namespace.html#autoid_26",696"isFile": false,697"children": [698]699}700,701{702"title": "Auto-importing",703"url": "dgui_misc_namespace.html#autoid_27",704"isFile": false,705"children": [706]707}708]709}710,711{712"title": "Auto-escaping and output formats",713"url": "dgui_misc_autoescaping.html",714"isFile": true,715"children": [716{717"title": "Output formats",718"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_outputformat",719"isFile": false,720"children": [721]722}723,724{725"title": "Overriding the output format in templates",726"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_overrideoformat",727"isFile": false,728"children": [729]730}731,732{733"title": "Disabling auto escaping",734"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_disableautoesc",735"isFile": false,736"children": [737]738}739,740{741"title": "âMarkup outputâ values",742"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues",743"isFile": false,744"children": [745]746}747,748{749"title": "Further details and tricky cases",750"url": "dgui_misc_autoescaping.html#autoid_28",751"isFile": false,752"children": [753{754"title": "Non-markup output formats",755"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_nonmarkupof",756"isFile": false,757"children": [758]759}760,761{762"title": "Inserting markup output values from other markups",763"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_mixingoutputformats",764"isFile": false,765"children": [766]767}768,769{770"title": "â+â\n operator",771"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_concatenation",772"isFile": false,773"children": [774]775}776,777{778"title": "${...} inside string literals",779"url": "dgui_misc_autoescaping.html#dgui_misc_autoescaping_stringliteral",780"isFile": false,781"children": [782]783}784,785{786"title": "Combined output formats",787"url": "dgui_misc_autoescaping.html#autoid_29",788"isFile": false,789"children": [790]791}792]793}794]795}796,797{798"title": "White-space handling",799"url": "dgui_misc_whitespace.html",800"isFile": true,801"children": [802{803"title": "White-space stripping",804"url": "dgui_misc_whitespace.html#dgui_misc_whitespace_stripping",805"isFile": false,806"children": [807]808}809,810{811"title": "Using compress directive",812"url": "dgui_misc_whitespace.html#autoid_30",813"isFile": false,814"children": [815]816}817]818}819,820{821"title": "Alternative (square bracket) syntax",822"url": "dgui_misc_alternativesyntax.html",823"isFile": true,824"children": [825{826"title": "Square bracket tag syntax",827"url": "dgui_misc_alternativesyntax.html#dgui_misc_alternativesyntax_tag",828"isFile": false,829"children": [830]831}832,833{834"title": "Square bracket interpolation syntax",835"url": "dgui_misc_alternativesyntax.html#dgui_misc_alternativesyntax_interpolation",836"isFile": false,837"children": [838]839}840]841}842]843}844]845}846,847{848"title": "Programmer's Guide",849"url": "pgui.html",850"isFile": true,851"children": [852{853"title": "Getting Started",854"url": "pgui_quickstart.html",855"isFile": true,856"children": [857{858"title": "Create a configuration instance",859"url": "pgui_quickstart_createconfiguration.html",860"isFile": true,861"children": [862]863}864,865{866"title": "Create a data-model",867"url": "pgui_quickstart_createdatamodel.html",868"isFile": true,869"children": [870]871}872,873{874"title": "Get the template",875"url": "pgui_quickstart_gettemplate.html",876"isFile": true,877"children": [878]879}880,881{882"title": "Merging the template with the data-model",883"url": "pgui_quickstart_merge.html",884"isFile": true,885"children": [886]887}888,889{890"title": "Putting all together",891"url": "pgui_quickstart_all.html",892"isFile": true,893"children": [894]895}896]897}898,899{900"title": "The Data Model",901"url": "pgui_datamodel.html",902"isFile": true,903"children": [904{905"title": "Basics",906"url": "pgui_datamodel_basics.html",907"isFile": true,908"children": [909]910}911,912{913"title": "Scalars",914"url": "pgui_datamodel_scalar.html",915"isFile": true,916"children": [917{918"title": "âdate-likeâ types",919"url": "pgui_datamodel_scalar.html#autoid_31",920"isFile": false,921"children": [922]923}924]925}926,927{928"title": "Containers",929"url": "pgui_datamodel_parent.html",930"isFile": true,931"children": [932{933"title": "Hashes",934"url": "pgui_datamodel_parent.html#autoid_32",935"isFile": false,936"children": [937]938}939,940{941"title": "Sequences",942"url": "pgui_datamodel_parent.html#autoid_33",943"isFile": false,944"children": [945]946}947,948{949"title": "Collections",950"url": "pgui_datamodel_parent.html#autoid_34",951"isFile": false,952"children": [953]954}955]956}957,958{959"title": "Methods",960"url": "pgui_datamodel_method.html",961"isFile": true,962"children": [963]964}965,966{967"title": "Directives",968"url": "pgui_datamodel_directive.html",969"isFile": true,970"children": [971{972"title": "Example 1",973"url": "pgui_datamodel_directive.html#autoid_35",974"isFile": false,975"children": [976]977}978,979{980"title": "Example 2",981"url": "pgui_datamodel_directive.html#autoid_36",982"isFile": false,983"children": [984]985}986,987{988"title": "Notices",989"url": "pgui_datamodel_directive.html#autoid_37",990"isFile": false,991"children": [992]993}994]995}996,997{998"title": "Node variables",999"url": "pgui_datamodel_node.html",1000"isFile": true,1001"children": [1002]1003}1004,1005{1006"title": "Object wrappers",1007"url": "pgui_datamodel_objectWrapper.html",1008"isFile": true,1009"children": [1010{1011"title": "The default object wrapper",1012"url": "pgui_datamodel_objectWrapper.html#pgui_datamodel_defaultObjectWrapper",1013"isFile": false,1014"children": [1015]1016}1017,1018{1019"title": "Custom object wrapping example",1020"url": "pgui_datamodel_objectWrapper.html#pgui_datamodel_customObjectWrappingExample",1021"isFile": false,1022"children": [1023]1024}1025]1026}1027]1028}1029,1030{1031"title": "The Configuration",1032"url": "pgui_config.html",1033"isFile": true,1034"children": [1035{1036"title": "Basics",1037"url": "pgui_config_basics.html",1038"isFile": true,1039"children": [1040]1041}1042,1043{1044"title": "Shared variables",1045"url": "pgui_config_sharedvariables.html",1046"isFile": true,1047"children": [1048]1049}1050,1051{1052"title": "Settings",1053"url": "pgui_config_settings.html",1054"isFile": true,1055"children": [1056]1057}1058,1059{1060"title": "Template loading",1061"url": "pgui_config_templateloading.html",1062"isFile": true,1063"children": [1064{1065"title": "Template loaders",1066"url": "pgui_config_templateloading.html#autoid_38",1067"isFile": false,1068"children": [1069{1070"title": "Built-in template loaders",1071"url": "pgui_config_templateloading.html#autoid_39",1072"isFile": false,1073"children": [1074]1075}1076,1077{1078"title": "Loading templates from multiple locations",1079"url": "pgui_config_templateloading.html#autoid_40",1080"isFile": false,1081"children": [1082]1083}1084,1085{1086"title": "Loading templates from other sources",1087"url": "pgui_config_templateloading.html#autoid_41",1088"isFile": false,1089"children": [1090]1091}1092,1093{1094"title": "The template name (template path)",1095"url": "pgui_config_templateloading.html#autoid_42",1096"isFile": false,1097"children": [1098]1099}1100]1101}1102,1103{1104"title": "Template caching",1105"url": "pgui_config_templateloading.html#pgui_config_templateloading_caching",1106"isFile": false,1107"children": [1108]1109}1110]1111}1112,1113{1114"title": "Error handling",1115"url": "pgui_config_errorhandling.html",1116"isFile": true,1117"children": [1118{1119"title": "The possible exceptions",1120"url": "pgui_config_errorhandling.html#autoid_43",1121"isFile": false,1122"children": [1123]1124}1125,1126{1127"title": "Customizing the behavior regarding TemplatException-s",1128"url": "pgui_config_errorhandling.html#autoid_44",1129"isFile": false,1130"children": [1131]1132}1133,1134{1135"title": "TemplateException logging",1136"url": "pgui_config_errorhandling.html#autoid_45",1137"isFile": false,1138"children": [1139]1140}1141,1142{1143"title": "Explicit error handling in templates",1144"url": "pgui_config_errorhandling.html#autoid_46",1145"isFile": false,1146"children": [1147]1148}1149]1150}1151,1152{1153"title": "Template configurations",1154"url": "pgui_config_templateconfigurations.html",1155"isFile": true,1156"children": [1157]1158}1159,1160{1161"title": "Associating output formats with templates",1162"url": "pgui_config_outputformatsautoesc.html",1163"isFile": true,1164"children": [1165]1166}1167,1168{1169"title": "Custom number and date/time formats",1170"url": "pgui_config_custom_formats.html",1171"isFile": true,1172"children": [1173{1174"title": "Overview",1175"url": "pgui_config_custom_formats.html#autoid_50",1176"isFile": false,1177"children": [1178]1179}1180,1181{1182"title": "Simple custom number format example",1183"url": "pgui_config_custom_formats.html#pgui_config_custom_formats_ex_cust_alg_simple",1184"isFile": false,1185"children": [1186]1187}1188,1189{1190"title": "Advanced custom number format example",1191"url": "pgui_config_custom_formats.html#pgui_config_custom_formats_ex_cust_algo_advanced",1192"isFile": false,1193"children": [1194]1195}1196,1197{1198"title": "Custom date/time format example",1199"url": "pgui_config_custom_formats.html#pgui_config_custom_formats_ex_cust_algo_date",1200"isFile": false,1201"children": [1202]1203}1204,1205{1206"title": "Alias format example",1207"url": "pgui_config_custom_formats.html#pgui_config_custom_formats_ex_alias",1208"isFile": false,1209"children": [1210]1211}1212,1213{1214"title": "Model-aware format example",1215"url": "pgui_config_custom_formats.html#pgui_config_custom_formats_ex_model_aware",1216"isFile": false,1217"children": [1218]1219}1220]1221}1222,1223{1224"title": "The \"incompatible improvements\" setting",1225"url": "pgui_config_incompatible_improvements.html",1226"isFile": true,1227"children": [1228{1229"title": "What does it do",1230"url": "pgui_config_incompatible_improvements.html#autoid_51",1231"isFile": false,1232"children": [1233]1234}1235,1236{1237"title": "How to set it",1238"url": "pgui_config_incompatible_improvements.html#pgui_config_incompatible_improvements_how_to_set",1239"isFile": false,1240"children": [1241]1242}1243]1244}1245]1246}1247,1248{1249"title": "Miscellaneous",1250"url": "pgui_misc.html",1251"isFile": true,1252"children": [1253{1254"title": "Variables, scopes",1255"url": "pgui_misc_var.html",1256"isFile": true,1257"children": [1258]1259}1260,1261{1262"title": "Charset issues",1263"url": "pgui_misc_charset.html",1264"isFile": true,1265"children": [1266{1267"title": "The charset of the input",1268"url": "pgui_misc_charset.html#autoid_52",1269"isFile": false,1270"children": [1271]1272}1273,1274{1275"title": "The charset of the output",1276"url": "pgui_misc_charset.html#autoid_53",1277"isFile": false,1278"children": [1279]1280}1281]1282}1283,1284{1285"title": "Multithreading",1286"url": "pgui_misc_multithreading.html",1287"isFile": true,1288"children": [1289]1290}1291,1292{1293"title": "Bean wrapper",1294"url": "pgui_misc_beanwrapper.html",1295"isFile": true,1296"children": [1297{1298"title": "TemplateHashModel functionality",1299"url": "pgui_misc_beanwrapper.html#beanswrapper_hash",1300"isFile": false,1301"children": [1302]1303}1304,1305{1306"title": "A word on security",1307"url": "pgui_misc_beanwrapper.html#autoid_54",1308"isFile": false,1309"children": [1310]1311}1312,1313{1314"title": "TemplateScalarModel functionality",1315"url": "pgui_misc_beanwrapper.html#autoid_55",1316"isFile": false,1317"children": [1318]1319}1320,1321{1322"title": "TemplateNumberModel functionality",1323"url": "pgui_misc_beanwrapper.html#autoid_56",1324"isFile": false,1325"children": [1326]1327}1328,1329{1330"title": "TemplateCollectionModel functionality",1331"url": "pgui_misc_beanwrapper.html#autoid_57",1332"isFile": false,1333"children": [1334]1335}1336,1337{1338"title": "TemplateSequenceModel functionality",1339"url": "pgui_misc_beanwrapper.html#autoid_58",1340"isFile": false,1341"children": [1342]1343}1344,1345{1346"title": "TemplateMethodModel functionality",1347"url": "pgui_misc_beanwrapper.html#beanswrapper_method",1348"isFile": false,1349"children": [1350]1351}1352,1353{1354"title": "Unwrapping rules",1355"url": "pgui_misc_beanwrapper.html#autoid_59",1356"isFile": false,1357"children": [1358]1359}1360,1361{1362"title": "Accessing static methods",1363"url": "pgui_misc_beanwrapper.html#autoid_60",1364"isFile": false,1365"children": [1366]1367}1368,1369{1370"title": "Accessing enums",1371"url": "pgui_misc_beanwrapper.html#jdk_15_enums",1372"isFile": false,1373"children": [1374]1375}1376]1377}1378,1379{1380"title": "Logging",1381"url": "pgui_misc_logging.html",1382"isFile": true,1383"children": [1384{1385"title": "Logging library selection",1386"url": "pgui_misc_logging.html#autoid_61",1387"isFile": false,1388"children": [1389]1390}1391,1392{1393"title": "Logging categories",1394"url": "pgui_misc_logging.html#autoid_62",1395"isFile": false,1396"children": [1397]1398}1399]1400}1401,1402{1403"title": "Using FreeMarker with servlets",1404"url": "pgui_misc_servlet.html",1405"isFile": true,1406"children": [1407{1408"title": "âModel 2â",1409"url": "pgui_misc_servlet.html#pgui_misc_servlet_model2",1410"isFile": false,1411"children": [1412]1413}1414,1415{1416"title": "Including content from other web application\n resources",1417"url": "pgui_misc_servlet.html#pgui_misc_servlet_include",1418"isFile": false,1419"children": [1420]1421}1422,1423{1424"title": "Using JSP custom tags in FTL",1425"url": "pgui_misc_servlet.html#autoid_63",1426"isFile": false,1427"children": [1428]1429}1430,1431{1432"title": "Embed FTL into JSP pages",1433"url": "pgui_misc_servlet.html#autoid_64",1434"isFile": false,1435"children": [1436]1437}1438]1439}1440,1441{1442"title": "Configuring security policy for FreeMarker",1443"url": "pgui_misc_secureenv.html",1444"isFile": true,1445"children": [1446]1447}1448,1449{1450"title": "Legacy XML wrapper implementation",1451"url": "pgui_misc_xml_legacy.html",1452"isFile": true,1453"children": [1454{1455"title": "TemplateScalarModel",1456"url": "pgui_misc_xml_legacy.html#autoid_65",1457"isFile": false,1458"children": [1459]1460}1461,1462{1463"title": "TemplateCollectionModel",1464"url": "pgui_misc_xml_legacy.html#autoid_66",1465"isFile": false,1466"children": [1467]1468}1469,1470{1471"title": "TemplateSequenceModel",1472"url": "pgui_misc_xml_legacy.html#autoid_67",1473"isFile": false,1474"children": [1475]1476}1477,1478{1479"title": "TemplateHashModel",1480"url": "pgui_misc_xml_legacy.html#autoid_68",1481"isFile": false,1482"children": [1483]1484}1485,1486{1487"title": "TemplateMethodModel",1488"url": "pgui_misc_xml_legacy.html#autoid_69",1489"isFile": false,1490"children": [1491]1492}1493,1494{1495"title": "Namespace handling",1496"url": "pgui_misc_xml_legacy.html#autoid_70",1497"isFile": false,1498"children": [1499]1500}1501]1502}1503,1504{1505"title": "Using FreeMarker with Ant",1506"url": "pgui_misc_ant.html",1507"isFile": true,1508"children": [1509]1510}1511,1512{1513"title": "Jython wrapper",1514"url": "pgui_misc_jythonwrapper.html",1515"isFile": true,1516"children": [1517{1518"title": "TemplateHashModel functionality",1519"url": "pgui_misc_jythonwrapper.html#autoid_71",1520"isFile": false,1521"children": [1522]1523}1524,1525{1526"title": "TemplateScalarModel functionality",1527"url": "pgui_misc_jythonwrapper.html#autoid_72",1528"isFile": false,1529"children": [1530]1531}1532,1533{1534"title": "TemplateBooleanModel functionality",1535"url": "pgui_misc_jythonwrapper.html#autoid_73",1536"isFile": false,1537"children": [1538]1539}1540,1541{1542"title": "TemplateNumberModel functionality",1543"url": "pgui_misc_jythonwrapper.html#autoid_74",1544"isFile": false,1545"children": [1546]1547}1548,1549{1550"title": "TemplateSequenceModel functionality",1551"url": "pgui_misc_jythonwrapper.html#autoid_75",1552"isFile": false,1553"children": [1554]1555}1556]1557}1558]1559}1560]1561}1562,1563{1564"title": "Template Language Reference",1565"url": "ref.html",1566"isFile": true,1567"children": [1568{1569"title": "Built-in Reference",1570"url": "ref_builtins.html",1571"isFile": true,1572"children": [1573{1574"title": "Alphabetical index",1575"url": "ref_builtins_alphaidx.html",1576"isFile": true,1577"children": [1578]1579}1580,1581{1582"title": "Built-ins for strings",1583"url": "ref_builtins_string.html",1584"isFile": true,1585"children": [1586{1587"title": "boolean",1588"url": "ref_builtins_string.html#ref_builtin_boolean",1589"isFile": false,1590"children": [1591]1592}1593,1594{1595"title": "cap_first",1596"url": "ref_builtins_string.html#ref_builtin_cap_first",1597"isFile": false,1598"children": [1599]1600}1601,1602{1603"title": "capitalize",1604"url": "ref_builtins_string.html#ref_builtin_capitalize",1605"isFile": false,1606"children": [1607]1608}1609,1610{1611"title": "chop_linebreak",1612"url": "ref_builtins_string.html#ref_builtin_chop_linebreak",1613"isFile": false,1614"children": [1615]1616}1617,1618{1619"title": "contains",1620"url": "ref_builtins_string.html#ref_builtin_contains",1621"isFile": false,1622"children": [1623]1624}1625,1626{1627"title": "date, time, datetime",1628"url": "ref_builtins_string.html#ref_builtin_string_date",1629"isFile": false,1630"children": [1631]1632}1633,1634{1635"title": "ends_with",1636"url": "ref_builtins_string.html#ref_builtin_ends_with",1637"isFile": false,1638"children": [1639]1640}1641,1642{1643"title": "ensure_ends_with",1644"url": "ref_builtins_string.html#ref_builtin_ensure_ends_with",1645"isFile": false,1646"children": [1647]1648}1649,1650{1651"title": "ensure_starts_with",1652"url": "ref_builtins_string.html#ref_builtin_ensure_starts_with",1653"isFile": false,1654"children": [1655]1656}1657,1658{1659"title": "esc",1660"url": "ref_builtins_string.html#ref_builtin_esc",1661"isFile": false,1662"children": [1663]1664}1665,1666{1667"title": "groups",1668"url": "ref_builtins_string.html#ref_builtin_groups",1669"isFile": false,1670"children": [1671]1672}1673,1674{1675"title": "html (deprecated)",1676"url": "ref_builtins_string.html#ref_builtin_html",1677"isFile": false,1678"children": [1679]1680}1681,1682{1683"title": "index_of",1684"url": "ref_builtins_string.html#ref_builtin_index_of",1685"isFile": false,1686"children": [1687]1688}1689,1690{1691"title": "j_string",1692"url": "ref_builtins_string.html#ref_builtin_j_string",1693"isFile": false,1694"children": [1695]1696}1697,1698{1699"title": "js_string",1700"url": "ref_builtins_string.html#ref_builtin_js_string",1701"isFile": false,1702"children": [1703]1704}1705,1706{1707"title": "json_string",1708"url": "ref_builtins_string.html#ref_builtin_json_string",1709"isFile": false,1710"children": [1711]1712}1713,1714{1715"title": "keep_after",1716"url": "ref_builtins_string.html#ref_builtin_keep_after",1717"isFile": false,1718"children": [1719]1720}1721,1722{1723"title": "keep_after_last",1724"url": "ref_builtins_string.html#ref_builtin_keep_after_last",1725"isFile": false,1726"children": [1727]1728}1729,1730{1731"title": "keep_before",1732"url": "ref_builtins_string.html#ref_builtin_keep_before",1733"isFile": false,1734"children": [1735]1736}1737,1738{1739"title": "keep_before_last",1740"url": "ref_builtins_string.html#ref_builtin_keep_before_last",1741"isFile": false,1742"children": [1743]1744}1745,1746{1747"title": "last_index_of",1748"url": "ref_builtins_string.html#ref_builtin_last_index_of",1749"isFile": false,1750"children": [1751]1752}1753,1754{1755"title": "left_pad",1756"url": "ref_builtins_string.html#ref_builtin_left_pad",1757"isFile": false,1758"children": [1759]1760}1761,1762{1763"title": "length",1764"url": "ref_builtins_string.html#ref_builtin_length",1765"isFile": false,1766"children": [1767]1768}1769,1770{1771"title": "lower_case",1772"url": "ref_builtins_string.html#ref_builtin_lower_case",1773"isFile": false,1774"children": [1775]1776}1777,1778{1779"title": "matches",1780"url": "ref_builtins_string.html#ref_builtin_matches",1781"isFile": false,1782"children": [1783]1784}1785,1786{1787"title": "no_esc",1788"url": "ref_builtins_string.html#ref_builtin_no_esc",1789"isFile": false,1790"children": [1791]1792}1793,1794{1795"title": "number",1796"url": "ref_builtins_string.html#ref_builtin_number",1797"isFile": false,1798"children": [1799]1800}1801,1802{1803"title": "replace",1804"url": "ref_builtins_string.html#ref_builtin_replace",1805"isFile": false,1806"children": [1807]1808}1809,1810{1811"title": "right_pad",1812"url": "ref_builtins_string.html#ref_builtin_right_pad",1813"isFile": false,1814"children": [1815]1816}1817,1818{1819"title": "remove_beginning",1820"url": "ref_builtins_string.html#ref_builtin_remove_beginning",1821"isFile": false,1822"children": [1823]1824}1825,1826{1827"title": "remove_ending",1828"url": "ref_builtins_string.html#ref_builtin_remove_ending",1829"isFile": false,1830"children": [1831]1832}1833,1834{1835"title": "rtf (deprecated)",1836"url": "ref_builtins_string.html#ref_builtin_rtf",1837"isFile": false,1838"children": [1839]1840}1841,1842{1843"title": "split",1844"url": "ref_builtins_string.html#ref_builtin_split",1845"isFile": false,1846"children": [1847]1848}1849,1850{1851"title": "starts_with",1852"url": "ref_builtins_string.html#ref_builtin_starts_with",1853"isFile": false,1854"children": [1855]1856}1857,1858{1859"title": "string (when used with a string value)",1860"url": "ref_builtins_string.html#ref_builtin_string_for_string",1861"isFile": false,1862"children": [1863]1864}1865,1866{1867"title": "substring (deprecated)",1868"url": "ref_builtins_string.html#ref_builtin_substring",1869"isFile": false,1870"children": [1871]1872}1873,1874{1875"title": "trim",1876"url": "ref_builtins_string.html#ref_builtin_trim",1877"isFile": false,1878"children": [1879]1880}1881,1882{1883"title": "uncap_first",1884"url": "ref_builtins_string.html#ref_builtin_uncap_first",1885"isFile": false,1886"children": [1887]1888}1889,1890{1891"title": "upper_case",1892"url": "ref_builtins_string.html#ref_builtin_upper_case",1893"isFile": false,1894"children": [1895]1896}1897,1898{1899"title": "url",1900"url": "ref_builtins_string.html#ref_builtin_url",1901"isFile": false,1902"children": [1903]1904}1905,1906{1907"title": "url_path",1908"url": "ref_builtins_string.html#ref_builtin_url_path",1909"isFile": false,1910"children": [1911]1912}1913,1914{1915"title": "word_list",1916"url": "ref_builtins_string.html#ref_builtin_word_list",1917"isFile": false,1918"children": [1919]1920}1921,1922{1923"title": "xhtml (deprecated)",1924"url": "ref_builtins_string.html#ref_builtin_xhtml",1925"isFile": false,1926"children": [1927]1928}1929,1930{1931"title": "xml (deprecated)",1932"url": "ref_builtins_string.html#ref_builtin_xml",1933"isFile": false,1934"children": [1935]1936}1937,1938{1939"title": "Common flags",1940"url": "ref_builtins_string.html#ref_builtin_string_flags",1941"isFile": false,1942"children": [1943]1944}1945]1946}1947,1948{1949"title": "Built-ins for numbers",1950"url": "ref_builtins_number.html",1951"isFile": true,1952"children": [1953{1954"title": "abs",1955"url": "ref_builtins_number.html#ref_builtin_abs",1956"isFile": false,1957"children": [1958]1959}1960,1961{1962"title": "c (when used with numerical value)",1963"url": "ref_builtins_number.html#ref_builtin_c",1964"isFile": false,1965"children": [1966]1967}1968,1969{1970"title": "is_infinite",1971"url": "ref_builtins_number.html#ref_builtin_is_infinite",1972"isFile": false,1973"children": [1974]1975}1976,1977{1978"title": "is_nan",1979"url": "ref_builtins_number.html#ref_builtin_is_nan",1980"isFile": false,1981"children": [1982]1983}1984,1985{1986"title": "lower_abc",1987"url": "ref_builtins_number.html#ref_builtin_lower_abc",1988"isFile": false,1989"children": [1990]1991}1992,1993{1994"title": "round, floor, ceiling",1995"url": "ref_builtins_number.html#ref_builtin_rounding",1996"isFile": false,1997"children": [1998]1999}2000,2001{2002"title": "string (when used with a numerical value)",2003"url": "ref_builtins_number.html#ref_builtin_string_for_number",2004"isFile": false,2005"children": [2006]2007}2008,2009{2010"title": "upper_abc",2011"url": "ref_builtins_number.html#ref_builtin_upper_abc",2012"isFile": false,2013"children": [2014]2015}2016]2017}2018,2019{2020"title": "Built-ins for date/time/date-time values",2021"url": "ref_builtins_date.html",2022"isFile": true,2023"children": [2024{2025"title": "date, time, datetime (when used with a date/time/date-time\n value)",2026"url": "ref_builtins_date.html#ref_builtin_date_datetype",2027"isFile": false,2028"children": [2029]2030}2031,2032{2033"title": "date_if_unknown, time_if_unknown, datetime_if_unknown",2034"url": "ref_builtins_date.html#ref_builtin_date_if_unknown",2035"isFile": false,2036"children": [2037]2038}2039,2040{2041"title": "iso_...",2042"url": "ref_builtins_date.html#ref_builtin_date_iso",2043"isFile": false,2044"children": [2045]2046}2047,2048{2049"title": "string (when used with a date/time/date-time value)",2050"url": "ref_builtins_date.html#ref_builtin_string_for_date",2051"isFile": false,2052"children": [2053]2054}2055]2056}2057,2058{2059"title": "Built-ins for booleans",2060"url": "ref_builtins_boolean.html",2061"isFile": true,2062"children": [2063{2064"title": "c (when used with boolean)",2065"url": "ref_builtins_boolean.html#ref_builtin_c_boolean",2066"isFile": false,2067"children": [2068]2069}2070,2071{2072"title": "string (when used with a boolean value)",2073"url": "ref_builtins_boolean.html#ref_builtin_string_for_boolean",2074"isFile": false,2075"children": [2076]2077}2078,2079{2080"title": "then",2081"url": "ref_builtins_boolean.html#ref_builtin_then",2082"isFile": false,2083"children": [2084]2085}2086]2087}2088,2089{2090"title": "Built-ins for sequences",2091"url": "ref_builtins_sequence.html",2092"isFile": true,2093"children": [2094{2095"title": "chunk",2096"url": "ref_builtins_sequence.html#ref_builtin_chunk",2097"isFile": false,2098"children": [2099]2100}2101,2102{2103"title": "first",2104"url": "ref_builtins_sequence.html#ref_builtin_first",2105"isFile": false,2106"children": [2107]2108}2109,2110{2111"title": "join",2112"url": "ref_builtins_sequence.html#ref_builtin_join",2113"isFile": false,2114"children": [2115]2116}2117,2118{2119"title": "last",2120"url": "ref_builtins_sequence.html#ref_builtin_last",2121"isFile": false,2122"children": [2123]2124}2125,2126{2127"title": "min, max",2128"url": "ref_builtins_sequence.html#ref_builtin_min_max",2129"isFile": false,2130"children": [2131]2132}2133,2134{2135"title": "reverse",2136"url": "ref_builtins_sequence.html#ref_builtin_reverse",2137"isFile": false,2138"children": [2139]2140}2141,2142{2143"title": "seq_contains",2144"url": "ref_builtins_sequence.html#ref_builtin_seq_contains",2145"isFile": false,2146"children": [2147]2148}2149,2150{2151"title": "seq_index_of",2152"url": "ref_builtins_sequence.html#ref_builtin_seq_index_of",2153"isFile": false,2154"children": [2155]2156}2157,2158{2159"title": "seq_last_index_of",2160"url": "ref_builtins_sequence.html#ref_builtin_seq_last_index_of",2161"isFile": false,2162"children": [2163]2164}2165,2166{2167"title": "size",2168"url": "ref_builtins_sequence.html#ref_builtin_size",2169"isFile": false,2170"children": [2171]2172}2173,2174{2175"title": "sort",2176"url": "ref_builtins_sequence.html#ref_builtin_sort",2177"isFile": false,2178"children": [2179]2180}2181,2182{2183"title": "sort_by",2184"url": "ref_builtins_sequence.html#ref_builtin_sort_by",2185"isFile": false,2186"children": [2187]2188}2189]2190}2191,2192{2193"title": "Built-ins for hashes",2194"url": "ref_builtins_hash.html",2195"isFile": true,2196"children": [2197{2198"title": "keys",2199"url": "ref_builtins_hash.html#ref_builtin_keys",2200"isFile": false,2201"children": [2202]2203}2204,2205{2206"title": "values",2207"url": "ref_builtins_hash.html#ref_builtin_values",2208"isFile": false,2209"children": [2210]2211}2212]2213}2214,2215{2216"title": "Built-ins for nodes (for XML)",2217"url": "ref_builtins_node.html",2218"isFile": true,2219"children": [2220{2221"title": "ancestors",2222"url": "ref_builtins_node.html#ref_builtin_ancestors",2223"isFile": false,2224"children": [2225]2226}2227,2228{2229"title": "children",2230"url": "ref_builtins_node.html#ref_builtin_children",2231"isFile": false,2232"children": [2233]2234}2235,2236{2237"title": "node_name",2238"url": "ref_builtins_node.html#ref_builtin_node_name",2239"isFile": false,2240"children": [2241]2242}2243,2244{2245"title": "next_sibling",2246"url": "ref_builtins_node.html#ref_builtin_next_sibling",2247"isFile": false,2248"children": [2249]2250}2251,2252{2253"title": "node_namespace",2254"url": "ref_builtins_node.html#ref_builtin_node_namespace",2255"isFile": false,2256"children": [2257]2258}2259,2260{2261"title": "node_type",2262"url": "ref_builtins_node.html#ref_builtin_node_type",2263"isFile": false,2264"children": [2265]2266}2267,2268{2269"title": "parent",2270"url": "ref_builtins_node.html#ref_builtin_parent",2271"isFile": false,2272"children": [2273]2274}2275,2276{2277"title": "previous_sibling",2278"url": "ref_builtins_node.html#ref_builtin_previous_sibling",2279"isFile": false,2280"children": [2281]2282}2283,2284{2285"title": "root",2286"url": "ref_builtins_node.html#ref_builtin_root",2287"isFile": false,2288"children": [2289]2290}2291]2292}2293,2294{2295"title": "Loop variable built-ins",2296"url": "ref_builtins_loop_var.html",2297"isFile": true,2298"children": [2299{2300"title": "counter",2301"url": "ref_builtins_loop_var.html#ref_builtin_counter",2302"isFile": false,2303"children": [2304]2305}2306,2307{2308"title": "has_next",2309"url": "ref_builtins_loop_var.html#ref_builtin_has_next",2310"isFile": false,2311"children": [2312]2313}2314,2315{2316"title": "index",2317"url": "ref_builtins_loop_var.html#ref_builtin_index",2318"isFile": false,2319"children": [2320]2321}2322,2323{2324"title": "is_even_item",2325"url": "ref_builtins_loop_var.html#ref_builtin_is_even_item",2326"isFile": false,2327"children": [2328]2329}2330,2331{2332"title": "is_first",2333"url": "ref_builtins_loop_var.html#ref_builtin_is_first",2334"isFile": false,2335"children": [2336]2337}2338,2339{2340"title": "is_last",2341"url": "ref_builtins_loop_var.html#ref_builtin_is_last",2342"isFile": false,2343"children": [2344]2345}2346,2347{2348"title": "is_odd_item",2349"url": "ref_builtins_loop_var.html#ref_builtin_is_odd_item",2350"isFile": false,2351"children": [2352]2353}2354,2355{2356"title": "item_cycle",2357"url": "ref_builtins_loop_var.html#ref_builtin_item_cycle",2358"isFile": false,2359"children": [2360]2361}2362,2363{2364"title": "item_parity",2365"url": "ref_builtins_loop_var.html#ref_builtin_item_parity",2366"isFile": false,2367"children": [2368]2369}2370,2371{2372"title": "item_parity_cap",2373"url": "ref_builtins_loop_var.html#ref_builtin_item_parity_cap",2374"isFile": false,2375"children": [2376]2377}2378]2379}2380,2381{2382"title": "Type independent built-ins",2383"url": "ref_builtins_type_independent.html",2384"isFile": true,2385"children": [2386{2387"title": "switch",2388"url": "ref_builtins_type_independent.html#ref_builtin_switch",2389"isFile": false,2390"children": [2391]2392}2393]2394}2395,2396{2397"title": "Seldom used and expert built-ins",2398"url": "ref_builtins_expert.html",2399"isFile": true,2400"children": [2401{2402"title": "absolute_template_name",2403"url": "ref_builtins_expert.html#ref_builtin_absolute_template_name",2404"isFile": false,2405"children": [2406]2407}2408,2409{2410"title": "api, has_api",2411"url": "ref_builtins_expert.html#ref_buitin_api_and_has_api",2412"isFile": false,2413"children": [2414]2415}2416,2417{2418"title": "byte, double, float, int, long, short",2419"url": "ref_builtins_expert.html#ref_builtin_numType",2420"isFile": false,2421"children": [2422]2423}2424,2425{2426"title": "eval",2427"url": "ref_builtins_expert.html#ref_builtin_eval",2428"isFile": false,2429"children": [2430]2431}2432,2433{2434"title": "has_content",2435"url": "ref_builtins_expert.html#ref_builtin_has_content",2436"isFile": false,2437"children": [2438]2439}2440,2441{2442"title": "interpret",2443"url": "ref_builtins_expert.html#ref_builtin_interpret",2444"isFile": false,2445"children": [2446]2447}2448,2449{2450"title": "is_...",2451"url": "ref_builtins_expert.html#ref_builtin_isType",2452"isFile": false,2453"children": [2454]2455}2456,2457{2458"title": "markup_string",2459"url": "ref_builtins_expert.html#ref_builtin_markup_string",2460"isFile": false,2461"children": [2462]2463}2464,2465{2466"title": "namespace",2467"url": "ref_builtins_expert.html#ref_builtin_namespace",2468"isFile": false,2469"children": [2470]2471}2472,2473{2474"title": "new",2475"url": "ref_builtins_expert.html#ref_builtin_new",2476"isFile": false,2477"children": [2478]2479}2480,2481{2482"title": "number_to_date, number_to_time, number_to_datetime",2483"url": "ref_builtins_expert.html#ref_builtin_numToDate",2484"isFile": false,2485"children": [2486]2487}2488,2489{2490"title": "sequence",2491"url": "ref_builtins_expert.html#ref_builtin_sequence",2492"isFile": false,2493"children": [2494]2495}2496]2497}2498]2499}2500,2501{2502"title": "Directive Reference",2503"url": "ref_directives.html",2504"isFile": true,2505"children": [2506{2507"title": "Alphabetical index",2508"url": "ref_directive_alphaidx.html",2509"isFile": true,2510"children": [2511]2512}2513,2514{2515"title": "assign",2516"url": "ref_directive_assign.html",2517"isFile": true,2518"children": [2519{2520"title": "Synopsis",2521"url": "ref_directive_assign.html#autoid_76",2522"isFile": false,2523"children": [2524]2525}2526,2527{2528"title": "Description",2529"url": "ref_directive_assign.html#autoid_77",2530"isFile": false,2531"children": [2532]2533}2534]2535}2536,2537{2538"title": "attempt, recover",2539"url": "ref_directive_attempt.html",2540"isFile": true,2541"children": [2542{2543"title": "Synopsis",2544"url": "ref_directive_attempt.html#autoid_78",2545"isFile": false,2546"children": [2547]2548}2549,2550{2551"title": "Description",2552"url": "ref_directive_attempt.html#autoid_79",2553"isFile": false,2554"children": [2555]2556}2557]2558}2559,2560{2561"title": "autoesc",2562"url": "ref_directive_autoesc.html",2563"isFile": true,2564"children": [2565{2566"title": "Synopsis",2567"url": "ref_directive_autoesc.html#autoid_80",2568"isFile": false,2569"children": [2570]2571}2572,2573{2574"title": "Description",2575"url": "ref_directive_autoesc.html#autoid_81",2576"isFile": false,2577"children": [2578]2579}2580]2581}2582,2583{2584"title": "compress",2585"url": "ref_directive_compress.html",2586"isFile": true,2587"children": [2588{2589"title": "Synopsis",2590"url": "ref_directive_compress.html#autoid_82",2591"isFile": false,2592"children": [2593]2594}2595,2596{2597"title": "Description",2598"url": "ref_directive_compress.html#autoid_83",2599"isFile": false,2600"children": [2601]2602}2603]2604}2605,2606{2607"title": "escape, noescape (deprecated)",2608"url": "ref_directive_escape.html",2609"isFile": true,2610"children": [2611{2612"title": "Synopsis",2613"url": "ref_directive_escape.html#autoid_84",2614"isFile": false,2615"children": [2616]2617}2618,2619{2620"title": "Description",2621"url": "ref_directive_escape.html#autoid_85",2622"isFile": false,2623"children": [2624]2625}2626]2627}2628,2629{2630"title": "flush",2631"url": "ref_directive_flush.html",2632"isFile": true,2633"children": [2634{2635"title": "Synopsis",2636"url": "ref_directive_flush.html#autoid_86",2637"isFile": false,2638"children": [2639]2640}2641,2642{2643"title": "Description",2644"url": "ref_directive_flush.html#autoid_87",2645"isFile": false,2646"children": [2647]2648}2649]2650}2651,2652{2653"title": "ftl",2654"url": "ref_directive_ftl.html",2655"isFile": true,2656"children": [2657{2658"title": "Synopsis",2659"url": "ref_directive_ftl.html#autoid_88",2660"isFile": false,2661"children": [2662]2663}2664,2665{2666"title": "Description",2667"url": "ref_directive_ftl.html#autoid_89",2668"isFile": false,2669"children": [2670]2671}2672]2673}2674,2675{2676"title": "function, return",2677"url": "ref_directive_function.html",2678"isFile": true,2679"children": [2680{2681"title": "Synopsis",2682"url": "ref_directive_function.html#autoid_90",2683"isFile": false,2684"children": [2685]2686}2687,2688{2689"title": "Description",2690"url": "ref_directive_function.html#autoid_91",2691"isFile": false,2692"children": [2693]2694}2695]2696}2697,2698{2699"title": "global",2700"url": "ref_directive_global.html",2701"isFile": true,2702"children": [2703{2704"title": "Synopsis",2705"url": "ref_directive_global.html#autoid_92",2706"isFile": false,2707"children": [2708]2709}2710,2711{2712"title": "Description",2713"url": "ref_directive_global.html#autoid_93",2714"isFile": false,2715"children": [2716]2717}2718]2719}2720,2721{2722"title": "if, else, elseif",2723"url": "ref_directive_if.html",2724"isFile": true,2725"children": [2726{2727"title": "Synopsis",2728"url": "ref_directive_if.html#autoid_94",2729"isFile": false,2730"children": [2731]2732}2733,2734{2735"title": "Description",2736"url": "ref_directive_if.html#autoid_95",2737"isFile": false,2738"children": [2739]2740}2741]2742}2743,2744{2745"title": "import",2746"url": "ref_directive_import.html",2747"isFile": true,2748"children": [2749{2750"title": "Synopsis",2751"url": "ref_directive_import.html#autoid_96",2752"isFile": false,2753"children": [2754]2755}2756,2757{2758"title": "Description",2759"url": "ref_directive_import.html#autoid_97",2760"isFile": false,2761"children": [2762]2763}2764]2765}2766,2767{2768"title": "include",2769"url": "ref_directive_include.html",2770"isFile": true,2771"children": [2772{2773"title": "Synopsis",2774"url": "ref_directive_include.html#autoid_98",2775"isFile": false,2776"children": [2777]2778}2779,2780{2781"title": "Description",2782"url": "ref_directive_include.html#autoid_99",2783"isFile": false,2784"children": [2785{2786"title": "Using acquisition",2787"url": "ref_directive_include.html#ref_directive_include_acquisition",2788"isFile": false,2789"children": [2790]2791}2792,2793{2794"title": "Localized lookup",2795"url": "ref_directive_include.html#ref_directive_include_localized",2796"isFile": false,2797"children": [2798]2799}2800]2801}2802]2803}2804,2805{2806"title": "list, else, items, sep, break, continue",2807"url": "ref_directive_list.html",2808"isFile": true,2809"children": [2810{2811"title": "Synopsis",2812"url": "ref_directive_list.html#autoid_100",2813"isFile": false,2814"children": [2815]2816}2817,2818{2819"title": "Description",2820"url": "ref_directive_list.html#autoid_101",2821"isFile": false,2822"children": [2823{2824"title": "Simplest form",2825"url": "ref_directive_list.html#ref_list_simple",2826"isFile": false,2827"children": [2828]2829}2830,2831{2832"title": "else directive",2833"url": "ref_directive_list.html#ref_list_else",2834"isFile": false,2835"children": [2836]2837}2838,2839{2840"title": "items directive",2841"url": "ref_directive_list.html#ref_list_items",2842"isFile": false,2843"children": [2844]2845}2846,2847{2848"title": "sep directive",2849"url": "ref_directive_list.html#ref_list_sep",2850"isFile": false,2851"children": [2852]2853}2854,2855{2856"title": "break directive",2857"url": "ref_directive_list.html#ref_list_break",2858"isFile": false,2859"children": [2860]2861}2862,2863{2864"title": "continue directive",2865"url": "ref_directive_list.html#ref_list_continue",2866"isFile": false,2867"children": [2868]2869}2870,2871{2872"title": "Accessing iteration state",2873"url": "ref_directive_list.html#ref_list_accessing_state",2874"isFile": false,2875"children": [2876]2877}2878,2879{2880"title": "Nesting loops into each other",2881"url": "ref_directive_list.html#ref_list_nesting",2882"isFile": false,2883"children": [2884]2885}2886,2887{2888"title": "Notes for Java programmers",2889"url": "ref_directive_list.html#ref_list_java_notes",2890"isFile": false,2891"children": [2892]2893}2894]2895}2896]2897}2898,2899{2900"title": "local",2901"url": "ref_directive_local.html",2902"isFile": true,2903"children": [2904{2905"title": "Synopsis",2906"url": "ref_directive_local.html#autoid_102",2907"isFile": false,2908"children": [2909]2910}2911,2912{2913"title": "Description",2914"url": "ref_directive_local.html#autoid_103",2915"isFile": false,2916"children": [2917]2918}2919]2920}2921,2922{2923"title": "macro, nested, return",2924"url": "ref_directive_macro.html",2925"isFile": true,2926"children": [2927{2928"title": "Synopsis",2929"url": "ref_directive_macro.html#autoid_104",2930"isFile": false,2931"children": [2932]2933}2934,2935{2936"title": "Description",2937"url": "ref_directive_macro.html#autoid_105",2938"isFile": false,2939"children": [2940{2941"title": "nested",2942"url": "ref_directive_macro.html#autoid_106",2943"isFile": false,2944"children": [2945]2946}2947,2948{2949"title": "return",2950"url": "ref_directive_macro.html#autoid_107",2951"isFile": false,2952"children": [2953]2954}2955]2956}2957]2958}2959,2960{2961"title": "noautoesc",2962"url": "ref_directive_noautoesc.html",2963"isFile": true,2964"children": [2965{2966"title": "Synopsis",2967"url": "ref_directive_noautoesc.html#autoid_108",2968"isFile": false,2969"children": [2970]2971}2972,2973{2974"title": "Description",2975"url": "ref_directive_noautoesc.html#autoid_109",2976"isFile": false,2977"children": [2978]2979}2980]2981}2982,2983{2984"title": "noparse",2985"url": "ref_directive_noparse.html",2986"isFile": true,2987"children": [2988{2989"title": "Synopsis",2990"url": "ref_directive_noparse.html#autoid_110",2991"isFile": false,2992"children": [2993]2994}2995,2996{2997"title": "Description",2998"url": "ref_directive_noparse.html#autoid_111",2999"isFile": false,3000"children": [3001]3002}3003]3004}3005,3006{3007"title": "nt",3008"url": "ref_directive_nt.html",3009"isFile": true,3010"children": [3011{3012"title": "Synopsis",3013"url": "ref_directive_nt.html#autoid_112",3014"isFile": false,3015"children": [3016]3017}3018,3019{3020"title": "Description",3021"url": "ref_directive_nt.html#autoid_113",3022"isFile": false,3023"children": [3024]3025}3026]3027}3028,3029{3030"title": "outputformat",3031"url": "ref_directive_outputformat.html",3032"isFile": true,3033"children": [3034{3035"title": "Synopsis",3036"url": "ref_directive_outputformat.html#autoid_114",3037"isFile": false,3038"children": [3039]3040}3041,3042{3043"title": "Description",3044"url": "ref_directive_outputformat.html#autoid_115",3045"isFile": false,3046"children": [3047]3048}3049]3050}3051,3052{3053"title": "setting",3054"url": "ref_directive_setting.html",3055"isFile": true,3056"children": [3057{3058"title": "Synopsis",3059"url": "ref_directive_setting.html#autoid_116",3060"isFile": false,3061"children": [3062]3063}3064,3065{3066"title": "Description",3067"url": "ref_directive_setting.html#autoid_117",3068"isFile": false,3069"children": [3070]3071}3072]3073}3074,3075{3076"title": "stop",3077"url": "ref_directive_stop.html",3078"isFile": true,3079"children": [3080{3081"title": "Synopsis",3082"url": "ref_directive_stop.html#autoid_118",3083"isFile": false,3084"children": [3085]3086}3087,3088{3089"title": "Description",3090"url": "ref_directive_stop.html#autoid_119",3091"isFile": false,3092"children": [3093]3094}3095]3096}3097,3098{3099"title": "switch, case, default, break",3100"url": "ref_directive_switch.html",3101"isFile": true,3102"children": [3103{3104"title": "Synopsis",3105"url": "ref_directive_switch.html#autoid_120",3106"isFile": false,3107"children": [3108]3109}3110,3111{3112"title": "Description",3113"url": "ref_directive_switch.html#autoid_121",3114"isFile": false,3115"children": [3116]3117}3118]3119}3120,3121{3122"title": "t, lt, rt",3123"url": "ref_directive_t.html",3124"isFile": true,3125"children": [3126{3127"title": "Synopsis",3128"url": "ref_directive_t.html#autoid_122",3129"isFile": false,3130"children": [3131]3132}3133,3134{3135"title": "Description",3136"url": "ref_directive_t.html#autoid_123",3137"isFile": false,3138"children": [3139]3140}3141]3142}3143,3144{3145"title": "User-defined directive (<@...>)",3146"url": "ref_directive_userDefined.html",3147"isFile": true,3148"children": [3149{3150"title": "Synopsis",3151"url": "ref_directive_userDefined.html#autoid_124",3152"isFile": false,3153"children": [3154]3155}3156,3157{3158"title": "Description",3159"url": "ref_directive_userDefined.html#autoid_125",3160"isFile": false,3161"children": [3162{3163"title": "End-tag",3164"url": "ref_directive_userDefined.html#ref_directive_userDefined_entTag",3165"isFile": false,3166"children": [3167]3168}3169,3170{3171"title": "Loop variables",3172"url": "ref_directive_userDefined.html#ref_directive_userDefined_loopVar",3173"isFile": false,3174"children": [3175]3176}3177,3178{3179"title": "Positional parameter passing",3180"url": "ref_directive_userDefined.html#ref_directive_userDefined_positionalParam",3181"isFile": false,3182"children": [3183]3184}3185]3186}3187]3188}3189,3190{3191"title": "visit, recurse, fallback",3192"url": "ref_directive_visit.html",3193"isFile": true,3194"children": [3195{3196"title": "Synopsis",3197"url": "ref_directive_visit.html#autoid_126",3198"isFile": false,3199"children": [3200]3201}3202,3203{3204"title": "Description",3205"url": "ref_directive_visit.html#autoid_127",3206"isFile": false,3207"children": [3208{3209"title": "Visit",3210"url": "ref_directive_visit.html#autoid_128",3211"isFile": false,3212"children": [3213]3214}3215,3216{3217"title": "Recurse",3218"url": "ref_directive_visit.html#autoid_129",3219"isFile": false,3220"children": [3221]3222}3223,3224{3225"title": "Fallback",3226"url": "ref_directive_visit.html#autoid_130",3227"isFile": false,3228"children": [3229]3230}3231]3232}3233]3234}3235]3236}3237,3238{3239"title": "Special Variable Reference",3240"url": "ref_specvar.html",3241"isFile": true,3242"children": [3243]3244}3245,3246{3247"title": "Reserved names in FTL",3248"url": "ref_reservednames.html",3249"isFile": true,3250"children": [3251]3252}3253,3254{3255"title": "Deprecated FTL constructs",3256"url": "ref_deprecated.html",3257"isFile": true,3258"children": [3259{3260"title": "List of deprecated directives",3261"url": "ref_depr_directive.html",3262"isFile": true,3263"children": [3264]3265}3266,3267{3268"title": "List of deprecated built-ins",3269"url": "ref_depr_builtin.html",3270"isFile": true,3271"children": [3272]3273}3274,3275{3276"title": "Old-style macro and call directives",3277"url": "ref_depr_oldmacro.html",3278"isFile": true,3279"children": [3280{3281"title": "Synopsis",3282"url": "ref_depr_oldmacro.html#autoid_131",3283"isFile": false,3284"children": [3285]3286}3287,3288{3289"title": "Description",3290"url": "ref_depr_oldmacro.html#autoid_132",3291"isFile": false,3292"children": [3293]3294}3295]3296}3297,3298{3299"title": "Transform directive",3300"url": "ref_depr_transform.html",3301"isFile": true,3302"children": [3303{3304"title": "Synopsis",3305"url": "ref_depr_transform.html#autoid_133",3306"isFile": false,3307"children": [3308]3309}3310,3311{3312"title": "Description",3313"url": "ref_depr_transform.html#autoid_134",3314"isFile": false,3315"children": [3316]3317}3318]3319}3320,3321{3322"title": "Old FTL syntax",3323"url": "ref_depr_oldsyntax.html",3324"isFile": true,3325"children": [3326]3327}3328,3329{3330"title": "#{...}: Numerical interpolation",3331"url": "ref_depr_numerical_interpolation.html",3332"isFile": true,3333"children": [3334{3335"title": "Synopsis",3336"url": "ref_depr_numerical_interpolation.html#autoid_135",3337"isFile": false,3338"children": [3339]3340}3341,3342{3343"title": "Description",3344"url": "ref_depr_numerical_interpolation.html#autoid_136",3345"isFile": false,3346"children": [3347]3348}3349]3350}3351]3352}3353]3354}3355,3356{3357"title": "XML Processing Guide",3358"url": "xgui.html",3359"isFile": true,3360"children": [3361{3362"title": "Preface",3363"url": "xgui_preface.html",3364"isFile": true,3365"children": [3366]3367}3368,3369{3370"title": "Exposing XML documents",3371"url": "xgui_expose.html",3372"isFile": true,3373"children": [3374{3375"title": "The DOM tree",3376"url": "xgui_expose_dom.html",3377"isFile": true,3378"children": [3379]3380}3381,3382{3383"title": "Putting the XML into the data-model",3384"url": "xgui_expose_put.html",3385"isFile": true,3386"children": [3387]3388}3389]3390}3391,3392{3393"title": "Imperative XML processing",3394"url": "xgui_imperative.html",3395"isFile": true,3396"children": [3397{3398"title": "Basics",3399"url": "xgui_imperative_learn.html",3400"isFile": true,3401"children": [3402{3403"title": "Accessing elements by name",3404"url": "xgui_imperative_learn.html#autoid_137",3405"isFile": false,3406"children": [3407]3408}3409,3410{3411"title": "Accessing attributes",3412"url": "xgui_imperative_learn.html#autoid_138",3413"isFile": false,3414"children": [3415]3416}3417,3418{3419"title": "Exploring the tree",3420"url": "xgui_imperative_learn.html#autoid_139",3421"isFile": false,3422"children": [3423]3424}3425,3426{3427"title": "Using XPath expressions",3428"url": "xgui_imperative_learn.html#xgui_imperative_learn_xpath",3429"isFile": false,3430"children": [3431]3432}3433,3434{3435"title": "XML namespaces",3436"url": "xgui_imperative_learn.html#autoid_140",3437"isFile": false,3438"children": [3439]3440}3441,3442{3443"title": "Don't forget escaping!",3444"url": "xgui_imperative_learn.html#autoid_141",3445"isFile": false,3446"children": [3447]3448}3449]3450}3451,3452{3453"title": "Details",3454"url": "xgui_imperative_formal.html",3455"isFile": true,3456"children": [3457{3458"title": "Node sequences",3459"url": "xgui_imperative_formal.html#autoid_142",3460"isFile": false,3461"children": [3462]3463}3464]3465}3466]3467}3468,3469{3470"title": "Declarative XML processing",3471"url": "xgui_declarative.html",3472"isFile": true,3473"children": [3474{3475"title": "Basics",3476"url": "xgui_declarative_basics.html",3477"isFile": true,3478"children": [3479]3480}3481,3482{3483"title": "Details",3484"url": "xgui_declarative_details.html",3485"isFile": true,3486"children": [3487{3488"title": "Default handlers",3489"url": "xgui_declarative_details.html#autoid_143",3490"isFile": false,3491"children": [3492]3493}3494,3495{3496"title": "Visiting a single node",3497"url": "xgui_declarative_details.html#autoid_144",3498"isFile": false,3499"children": [3500]3501}3502,3503{3504"title": "XML namespaces",3505"url": "xgui_declarative_details.html#autoid_145",3506"isFile": false,3507"children": [3508]3509}3510]3511}3512]3513}3514]3515}3516,3517{3518"title": "Appendixes",3519"url": "app.html",3520"isFile": true,3521"children": [3522{3523"title": "FAQ",3524"url": "app_faq.html",3525"isFile": true,3526"children": [3527]3528}3529,3530{3531"title": "Version history",3532"url": "app_versions.html",3533"isFile": true,3534"children": [3535{3536"title": "2.3.28",3537"url": "versions_2_3_28.html",3538"isFile": true,3539"children": [3540{3541"title": "Changes on the FTL side",3542"url": "versions_2_3_28.html#autoid_146",3543"isFile": false,3544"children": [3545]3546}3547,3548{3549"title": "Changes on the Java side",3550"url": "versions_2_3_28.html#autoid_147",3551"isFile": false,3552"children": [3553]3554}3555,3556{3557"title": "Other changes",3558"url": "versions_2_3_28.html#autoid_148",3559"isFile": false,3560"children": [3561]3562}3563]3564}3565,3566{3567"title": "2.3.27 (incubating at Apache)",3568"url": "versions_2_3_27.html",3569"isFile": true,3570"children": [3571{3572"title": "Changes on the FTL side",3573"url": "versions_2_3_27.html#autoid_149",3574"isFile": false,3575"children": [3576]3577}3578,3579{3580"title": "Changes on the Java side",3581"url": "versions_2_3_27.html#autoid_150",3582"isFile": false,3583"children": [3584]3585}3586]3587}3588,3589{3590"title": "2.3.26 (incubating at Apache)",3591"url": "versions_2_3_26.html",3592"isFile": true,3593"children": [3594{3595"title": "Changes on the FTL side",3596"url": "versions_2_3_26.html#autoid_151",3597"isFile": false,3598"children": [3599]3600}3601,3602{3603"title": "Changes on the Java side",3604"url": "versions_2_3_26.html#autoid_152",3605"isFile": false,3606"children": [3607]3608}3609,3610{3611"title": "Other changes",3612"url": "versions_2_3_26.html#autoid_153",3613"isFile": false,3614"children": [3615]3616}3617]3618}3619,3620{3621"title": "2.3.25 (incubating at Apache)",3622"url": "versions_2_3_25.html",3623"isFile": true,3624"children": [3625{3626"title": "Changes on the FTL side",3627"url": "versions_2_3_25.html#autoid_154",3628"isFile": false,3629"children": [3630]3631}3632,3633{3634"title": "Changes on the Java side",3635"url": "versions_2_3_25.html#autoid_155",3636"isFile": false,3637"children": [3638]3639}3640]3641}3642,3643{3644"title": "2.3.24 (incubating at Apache)",3645"url": "versions_2_3_24.html",3646"isFile": true,3647"children": [3648{3649"title": "Legal changes",3650"url": "versions_2_3_24.html#autoid_156",3651"isFile": false,3652"children": [3653]3654}3655,3656{3657"title": "Changes on the FTL side",3658"url": "versions_2_3_24.html#autoid_157",3659"isFile": false,3660"children": [3661]3662}3663,3664{3665"title": "Changes on the Java side",3666"url": "versions_2_3_24.html#autoid_158",3667"isFile": false,3668"children": [3669]3670}3671,3672{3673"title": "Changes compared to 2.3.24 Release Candidate 1",3674"url": "versions_2_3_24.html#autoid_159",3675"isFile": false,3676"children": [3677]3678}3679]3680}3681,3682{3683"title": "2.3.23",3684"url": "versions_2_3_23.html",3685"isFile": true,3686"children": [3687{3688"title": "Changes on the FTL side",3689"url": "versions_2_3_23.html#autoid_160",3690"isFile": false,3691"children": [3692]3693}3694,3695{3696"title": "Changes on the Java side",3697"url": "versions_2_3_23.html#autoid_161",3698"isFile": false,3699"children": [3700]3701}3702,3703{3704"title": "Other changes",3705"url": "versions_2_3_23.html#autoid_162",3706"isFile": false,3707"children": [3708]3709}3710,3711{3712"title": "Notes",3713"url": "versions_2_3_23.html#autoid_163",3714"isFile": false,3715"children": [3716]3717}3718]3719}3720,3721{3722"title": "2.3.22",3723"url": "versions_2_3_22.html",3724"isFile": true,3725"children": [3726{3727"title": "Changes on the FTL side",3728"url": "versions_2_3_22.html#autoid_164",3729"isFile": false,3730"children": [3731]3732}3733,3734{3735"title": "Changes on the Java side",3736"url": "versions_2_3_22.html#autoid_165",3737"isFile": false,3738"children": [3739]3740}3741,3742{3743"title": "Notes",3744"url": "versions_2_3_22.html#autoid_166",3745"isFile": false,3746"children": [3747]3748}3749]3750}3751,3752{3753"title": "2.3.21",3754"url": "versions_2_3_21.html",3755"isFile": true,3756"children": [3757{3758"title": "Changes on the FTL side",3759"url": "versions_2_3_21.html#autoid_167",3760"isFile": false,3761"children": [3762]3763}3764,3765{3766"title": "Changes on the Java side",3767"url": "versions_2_3_21.html#autoid_168",3768"isFile": false,3769"children": [3770]3771}3772,3773{3774"title": "Other changes",3775"url": "versions_2_3_21.html#autoid_169",3776"isFile": false,3777"children": [3778]3779}3780]3781}3782,3783{3784"title": "2.3.20",3785"url": "versions_2_3_20.html",3786"isFile": true,3787"children": [3788{3789"title": "Changes on the FTL side",3790"url": "versions_2_3_20.html#autoid_170",3791"isFile": false,3792"children": [3793]3794}3795,3796{3797"title": "Changes on the Java side",3798"url": "versions_2_3_20.html#autoid_171",3799"isFile": false,3800"children": [3801]3802}3803,3804{3805"title": "Other changes",3806"url": "versions_2_3_20.html#autoid_172",3807"isFile": false,3808"children": [3809]3810}3811]3812}3813,3814{3815"title": "2.3.19",3816"url": "versions_2_3_19.html",3817"isFile": true,3818"children": [3819{3820"title": "Changes on the FTL side",3821"url": "versions_2_3_19.html#autoid_173",3822"isFile": false,3823"children": [3824]3825}3826,3827{3828"title": "Changes on the Java side",3829"url": "versions_2_3_19.html#autoid_174",3830"isFile": false,3831"children": [3832]3833}3834]3835}3836,3837{3838"title": "2.3.18",3839"url": "versions_2_3_18.html",3840"isFile": true,3841"children": [3842{3843"title": "Changes on the Java side",3844"url": "versions_2_3_18.html#autoid_175",3845"isFile": false,3846"children": [3847]3848}3849,3850{3851"title": "Other changes",3852"url": "versions_2_3_18.html#autoid_176",3853"isFile": false,3854"children": [3855]3856}3857]3858}3859,3860{3861"title": "2.3.17",3862"url": "versions_2_3_17.html",3863"isFile": true,3864"children": [3865{3866"title": "Changes on the FTL side",3867"url": "versions_2_3_17.html#autoid_177",3868"isFile": false,3869"children": [3870]3871}3872,3873{3874"title": "Changes on the Java side",3875"url": "versions_2_3_17.html#autoid_178",3876"isFile": false,3877"children": [3878]3879}3880,3881{3882"title": "Other changes",3883"url": "versions_2_3_17.html#autoid_179",3884"isFile": false,3885"children": [3886]3887}3888]3889}3890,3891{3892"title": "2.3.16",3893"url": "versions_2_3_16.html",3894"isFile": true,3895"children": [3896{3897"title": "Changes on the Java side",3898"url": "versions_2_3_16.html#autoid_180",3899"isFile": false,3900"children": [3901]3902}3903,3904{3905"title": "Changes on the FTL side",3906"url": "versions_2_3_16.html#autoid_181",3907"isFile": false,3908"children": [3909]3910}3911]3912}3913,3914{3915"title": "2.3.15",3916"url": "versions_2_3_15.html",3917"isFile": true,3918"children": [3919{3920"title": "Changes on the FTL side",3921"url": "versions_2_3_15.html#autoid_182",3922"isFile": false,3923"children": [3924]3925}3926,3927{3928"title": "Changes on the Java side",3929"url": "versions_2_3_15.html#autoid_183",3930"isFile": false,3931"children": [3932]3933}3934]3935}3936,3937{3938"title": "2.3.14",3939"url": "versions_2_3_14.html",3940"isFile": true,3941"children": [3942{3943"title": "Changes on the FTL side",3944"url": "versions_2_3_14.html#autoid_184",3945"isFile": false,3946"children": [3947]3948}3949,3950{3951"title": "Changes on the Java side",3952"url": "versions_2_3_14.html#autoid_185",3953"isFile": false,3954"children": [3955]3956}3957]3958}3959,3960{3961"title": "2.3.13",3962"url": "versions_2_3_13.html",3963"isFile": true,3964"children": [3965{3966"title": "Changes on the FTL side",3967"url": "versions_2_3_13.html#autoid_186",3968"isFile": false,3969"children": [3970]3971}3972,3973{3974"title": "Changes on the Java side",3975"url": "versions_2_3_13.html#autoid_187",3976"isFile": false,3977"children": [3978]3979}3980]3981}3982,3983{3984"title": "2.3.12",3985"url": "versions_2_3_12.html",3986"isFile": true,3987"children": [3988{3989"title": "Changes on the Java side",3990"url": "versions_2_3_12.html#autoid_188",3991"isFile": false,3992"children": [3993]3994}3995]3996}3997,3998{3999"title": "2.3.11",4000"url": "versions_2_3_11.html",4001"isFile": true,4002"children": [4003{4004"title": "Changes on the FTL side",4005"url": "versions_2_3_11.html#autoid_189",4006"isFile": false,4007"children": [4008]4009}4010,4011{4012"title": "Changes on the Java side",4013"url": "versions_2_3_11.html#autoid_190",4014"isFile": false,4015"children": [4016]4017}4018,4019{4020"title": "Documentation changes",4021"url": "versions_2_3_11.html#autoid_191",4022"isFile": false,4023"children": [4024]4025}4026]4027}4028,4029{4030"title": "2.3.10",4031"url": "versions_2_3_10.html",4032"isFile": true,4033"children": [4034{4035"title": "Changes on the Java side",4036"url": "versions_2_3_10.html#autoid_192",4037"isFile": false,4038"children": [4039]4040}4041,4042{4043"title": "Changes on the FTL side",4044"url": "versions_2_3_10.html#autoid_193",4045"isFile": false,4046"children": [4047]4048}4049]4050}4051,4052{4053"title": "2.3.9",4054"url": "versions_2_3_9.html",4055"isFile": true,4056"children": [4057{4058"title": "Changes on the Java side",4059"url": "versions_2_3_9.html#autoid_194",4060"isFile": false,4061"children": [4062]4063}4064]4065}4066,4067{4068"title": "2.3.8",4069"url": "versions_2_3_8.html",4070"isFile": true,4071"children": [4072{4073"title": "Changes on the Java side",4074"url": "versions_2_3_8.html#autoid_195",4075"isFile": false,4076"children": [4077]4078}4079]4080}4081,4082{4083"title": "2.3.7",4084"url": "versions_2_3_7.html",4085"isFile": true,4086"children": [4087{4088"title": "Changes on the Java side",4089"url": "versions_2_3_7.html#autoid_196",4090"isFile": false,4091"children": [4092]4093}4094,4095{4096"title": "Changes on the FTL side",4097"url": "versions_2_3_7.html#autoid_197",4098"isFile": false,4099"children": [4100]4101}4102]4103}4104,4105{4106"title": "2.3.7 RC1",4107"url": "versions_2_3_7rc1.html",4108"isFile": true,4109"children": [4110{4111"title": "Changes on the Java side",4112"url": "versions_2_3_7rc1.html#autoid_198",4113"isFile": false,4114"children": [4115]4116}4117,4118{4119"title": "Changes on the FTL side",4120"url": "versions_2_3_7rc1.html#autoid_199",4121"isFile": false,4122"children": [4123]4124}4125]4126}4127,4128{4129"title": "2.3.6",4130"url": "versions_2_3_6.html",4131"isFile": true,4132"children": [4133{4134"title": "Changes on the Java side",4135"url": "versions_2_3_6.html#autoid_200",4136"isFile": false,4137"children": [4138]4139}4140]4141}4142,4143{4144"title": "2.3.5",4145"url": "versions_2_3_5.html",4146"isFile": true,4147"children": [4148{4149"title": "Changes on the FTL side",4150"url": "versions_2_3_5.html#autoid_201",4151"isFile": false,4152"children": [4153]4154}4155,4156{4157"title": "Changes on the Java side",4158"url": "versions_2_3_5.html#autoid_202",4159"isFile": false,4160"children": [4161]4162}4163]4164}4165,4166{4167"title": "2.3.4",4168"url": "versions_2_3_4.html",4169"isFile": true,4170"children": [4171{4172"title": "Changes on the FTL side",4173"url": "versions_2_3_4.html#autoid_203",4174"isFile": false,4175"children": [4176]4177}4178,4179{4180"title": "Changes on the Java side",4181"url": "versions_2_3_4.html#autoid_204",4182"isFile": false,4183"children": [4184]4185}4186,4187{4188"title": "Other changes",4189"url": "versions_2_3_4.html#autoid_205",4190"isFile": false,4191"children": [4192]4193}4194]4195}4196,4197{4198"title": "2.3.3",4199"url": "versions_2_3_3.html",4200"isFile": true,4201"children": [4202{4203"title": "Changes on the FTL side",4204"url": "versions_2_3_3.html#autoid_206",4205"isFile": false,4206"children": [4207]4208}4209,4210{4211"title": "Changes on the Java side",4212"url": "versions_2_3_3.html#autoid_207",4213"isFile": false,4214"children": [4215]4216}4217,4218{4219"title": "Other changes",4220"url": "versions_2_3_3.html#autoid_208",4221"isFile": false,4222"children": [4223]4224}4225]4226}4227,4228{4229"title": "2.3.2",4230"url": "versions_2_3_2.html",4231"isFile": true,4232"children": [4233{4234"title": "Changes on the Java side",4235"url": "versions_2_3_2.html#autoid_209",4236"isFile": false,4237"children": [4238]4239}4240]4241}4242,4243{4244"title": "2.3.1",4245"url": "versions_2_3_1.html",4246"isFile": true,4247"children": [4248{4249"title": "Possible backward compatibility issue",4250"url": "versions_2_3_1.html#autoid_210",4251"isFile": false,4252"children": [4253]4254}4255,4256{4257"title": "Changes on the FTL side",4258"url": "versions_2_3_1.html#autoid_211",4259"isFile": false,4260"children": [4261]4262}4263,4264{4265"title": "Changes on the Java side",4266"url": "versions_2_3_1.html#autoid_212",4267"isFile": false,4268"children": [4269]4270}4271,4272{4273"title": "Other changes",4274"url": "versions_2_3_1.html#autoid_213",4275"isFile": false,4276"children": [4277]4278}4279,4280{4281"title": "The history of the releases before the final version",4282"url": "versions_2_3_1.html#autoid_214",4283"isFile": false,4284"children": [4285{4286"title": "Differences between the preview release and final\n release",4287"url": "versions_2_3_1.html#autoid_215",4288"isFile": false,4289"children": [4290]4291}4292]4293}4294]4295}4296,4297{4298"title": "2.3",4299"url": "versions_2_3.html",4300"isFile": true,4301"children": [4302{4303"title": "Non backward-compatible changes!",4304"url": "versions_2_3.html#autoid_216",4305"isFile": false,4306"children": [4307]4308}4309,4310{4311"title": "Changes on the FTL side",4312"url": "versions_2_3.html#autoid_217",4313"isFile": false,4314"children": [4315]4316}4317,4318{4319"title": "Changes on the Java side",4320"url": "versions_2_3.html#autoid_218",4321"isFile": false,4322"children": [4323]4324}4325,4326{4327"title": "Other changes",4328"url": "versions_2_3.html#autoid_219",4329"isFile": false,4330"children": [4331]4332}4333,4334{4335"title": "The history of the releases before the final version",4336"url": "versions_2_3.html#autoid_220",4337"isFile": false,4338"children": [4339{4340"title": "Differences between the final release and Release Candidate\n 4",4341"url": "versions_2_3.html#autoid_221",4342"isFile": false,4343"children": [4344]4345}4346,4347{4348"title": "Differences between the Release Candidate 4 and Release\n Candidate 3",4349"url": "versions_2_3.html#autoid_222",4350"isFile": false,4351"children": [4352]4353}4354,4355{4356"title": "Differences between the Release Candidate 3 and Release\n Candidate 2",4357"url": "versions_2_3.html#autoid_223",4358"isFile": false,4359"children": [4360]4361}4362,4363{4364"title": "Differences between the Release Candidate 2 and Release\n Candidate 1",4365"url": "versions_2_3.html#autoid_224",4366"isFile": false,4367"children": [4368]4369}4370,4371{4372"title": "Differences between the Release Candidate 1 and Preview 16\n releases",4373"url": "versions_2_3.html#autoid_225",4374"isFile": false,4375"children": [4376]4377}4378,4379{4380"title": "Differences between the Preview 16 and Preview 15\n releases",4381"url": "versions_2_3.html#autoid_226",4382"isFile": false,4383"children": [4384]4385}4386,4387{4388"title": "Differences between the Preview 15 and Preview 14\n releases",4389"url": "versions_2_3.html#autoid_227",4390"isFile": false,4391"children": [4392]4393}4394,4395{4396"title": "Differences between the Preview 14 and Preview 13\n releases",4397"url": "versions_2_3.html#autoid_228",4398"isFile": false,4399"children": [4400]4401}4402,4403{4404"title": "Differences between the Preview 13 and Preview 12\n releases",4405"url": "versions_2_3.html#autoid_229",4406"isFile": false,4407"children": [4408]4409}4410,4411{4412"title": "Differences between the Preview 12 and Preview 11\n releases",4413"url": "versions_2_3.html#autoid_230",4414"isFile": false,4415"children": [4416]4417}4418,4419{4420"title": "Differences between the Preview 11 and Preview 10\n releases",4421"url": "versions_2_3.html#autoid_231",4422"isFile": false,4423"children": [4424]4425}4426,4427{4428"title": "Differences between the Preview 10 and Preview 9\n releases",4429"url": "versions_2_3.html#autoid_232",4430"isFile": false,4431"children": [4432]4433}4434,4435{4436"title": "Differences between the Preview 9 and Preview 8\n releases",4437"url": "versions_2_3.html#autoid_233",4438"isFile": false,4439"children": [4440]4441}4442,4443{4444"title": "Differences between the Preview 8 and Preview 7\n releases",4445"url": "versions_2_3.html#autoid_234",4446"isFile": false,4447"children": [4448]4449}4450,4451{4452"title": "Differences between the Preview 7 and Preview 6\n releases",4453"url": "versions_2_3.html#autoid_235",4454"isFile": false,4455"children": [4456]4457}4458,4459{4460"title": "Differences between the Preview 6 and Preview 5\n releases",4461"url": "versions_2_3.html#autoid_236",4462"isFile": false,4463"children": [4464]4465}4466,4467{4468"title": "Differences between the Preview 5 and Preview 4\n releases",4469"url": "versions_2_3.html#autoid_237",4470"isFile": false,4471"children": [4472]4473}4474,4475{4476"title": "Differences between the Preview 4 and Preview 3\n releases",4477"url": "versions_2_3.html#autoid_238",4478"isFile": false,4479"children": [4480]4481}4482,4483{4484"title": "Differences between the Preview 3 and Preview 2\n releases",4485"url": "versions_2_3.html#autoid_239",4486"isFile": false,4487"children": [4488]4489}4490,4491{4492"title": "Differences between the Preview 2 and Preview 1\n releases",4493"url": "versions_2_3.html#autoid_240",4494"isFile": false,4495"children": [4496]4497}4498]4499}4500]4501}4502,4503{4504"title": "2.2.8",4505"url": "versions_2_2_8.html",4506"isFile": true,4507"children": [4508{4509"title": "Changes on the FTL side",4510"url": "versions_2_2_8.html#autoid_241",4511"isFile": false,4512"children": [4513]4514}4515,4516{4517"title": "Changes on the Java side",4518"url": "versions_2_2_8.html#autoid_242",4519"isFile": false,4520"children": [4521]4522}4523,4524{4525"title": "Other changes",4526"url": "versions_2_2_8.html#autoid_243",4527"isFile": false,4528"children": [4529]4530}4531]4532}4533,4534{4535"title": "2.2.7",4536"url": "versions_2_2_7.html",4537"isFile": true,4538"children": [4539{4540"title": "Changes on the Java side",4541"url": "versions_2_2_7.html#autoid_244",4542"isFile": false,4543"children": [4544]4545}4546]4547}4548,4549{4550"title": "2.2.6",4551"url": "versions_2_2_6.html",4552"isFile": true,4553"children": [4554{4555"title": "Changes on the FTL side",4556"url": "versions_2_2_6.html#autoid_245",4557"isFile": false,4558"children": [4559]4560}4561,4562{4563"title": "Changes on the Java side",4564"url": "versions_2_2_6.html#autoid_246",4565"isFile": false,4566"children": [4567]4568}4569,4570{4571"title": "Other changes",4572"url": "versions_2_2_6.html#autoid_247",4573"isFile": false,4574"children": [4575]4576}4577]4578}4579,4580{4581"title": "2.2.5",4582"url": "versions_2_2_5.html",4583"isFile": true,4584"children": [4585{4586"title": "Changes on the Java side",4587"url": "versions_2_2_5.html#autoid_248",4588"isFile": false,4589"children": [4590]4591}4592]4593}4594,4595{4596"title": "2.2.4",4597"url": "versions_2_2_4.html",4598"isFile": true,4599"children": [4600{4601"title": "Changes on the Java side",4602"url": "versions_2_2_4.html#autoid_249",4603"isFile": false,4604"children": [4605]4606}4607,4608{4609"title": "Other changes",4610"url": "versions_2_2_4.html#autoid_250",4611"isFile": false,4612"children": [4613]4614}4615]4616}4617,4618{4619"title": "2.2.3",4620"url": "versions_2_2_3.html",4621"isFile": true,4622"children": [4623{4624"title": "Changes on the FTL side",4625"url": "versions_2_2_3.html#autoid_251",4626"isFile": false,4627"children": [4628]4629}4630,4631{4632"title": "Changes on the Java side",4633"url": "versions_2_2_3.html#autoid_252",4634"isFile": false,4635"children": [4636]4637}4638]4639}4640,4641{4642"title": "2.2.2",4643"url": "versions_2_2_2.html",4644"isFile": true,4645"children": [4646{4647"title": "Changes on the Java side",4648"url": "versions_2_2_2.html#autoid_253",4649"isFile": false,4650"children": [4651]4652}4653]4654}4655,4656{4657"title": "2.2.1",4658"url": "versions_2_2_1.html",4659"isFile": true,4660"children": [4661{4662"title": "Changes on the FTL side",4663"url": "versions_2_2_1.html#autoid_254",4664"isFile": false,4665"children": [4666]4667}4668,4669{4670"title": "Changes on the Java side",4671"url": "versions_2_2_1.html#autoid_255",4672"isFile": false,4673"children": [4674]4675}4676]4677}4678,4679{4680"title": "2.2",4681"url": "versions_2_2.html",4682"isFile": true,4683"children": [4684{4685"title": "Non backward-compatible changes!",4686"url": "versions_2_2.html#autoid_256",4687"isFile": false,4688"children": [4689]4690}4691,4692{4693"title": "Changes in FTL (FreeMarker Template Language)",4694"url": "versions_2_2.html#autoid_257",4695"isFile": false,4696"children": [4697]4698}4699,4700{4701"title": "Changes on the Java side",4702"url": "versions_2_2.html#autoid_258",4703"isFile": false,4704"children": [4705]4706}4707,4708{4709"title": "Other changes",4710"url": "versions_2_2.html#autoid_259",4711"isFile": false,4712"children": [4713]4714}4715,4716{4717"title": "The history of the releases before the final version",4718"url": "versions_2_2.html#autoid_260",4719"isFile": false,4720"children": [4721{4722"title": "Differences between the final and RC2 releases",4723"url": "versions_2_2.html#autoid_261",4724"isFile": false,4725"children": [4726]4727}4728,4729{4730"title": "Differences between the RC2 and RC1 releases",4731"url": "versions_2_2.html#autoid_262",4732"isFile": false,4733"children": [4734]4735}4736,4737{4738"title": "Differences between the Preview 2 and RC1 releases",4739"url": "versions_2_2.html#autoid_263",4740"isFile": false,4741"children": [4742]4743}4744,4745{4746"title": "Differences between the Preview 1 and Preview 2\n releases",4747"url": "versions_2_2.html#autoid_264",4748"isFile": false,4749"children": [4750]4751}4752]4753}4754]4755}4756,4757{4758"title": "2.1.5",4759"url": "versions_2_1_5.html",4760"isFile": true,4761"children": [4762{4763"title": "Changes on the Java side",4764"url": "versions_2_1_5.html#autoid_265",4765"isFile": false,4766"children": [4767]4768}4769]4770}4771,4772{4773"title": "2.1.4",4774"url": "versions_2_1_4.html",4775"isFile": true,4776"children": [4777{4778"title": "Changes on the Java side",4779"url": "versions_2_1_4.html#autoid_266",4780"isFile": false,4781"children": [4782]4783}4784]4785}4786,4787{4788"title": "2.1.3",4789"url": "versions_2_1_3.html",4790"isFile": true,4791"children": [4792{4793"title": "Changes on the FTL side",4794"url": "versions_2_1_3.html#autoid_267",4795"isFile": false,4796"children": [4797]4798}4799,4800{4801"title": "Other changes",4802"url": "versions_2_1_3.html#autoid_268",4803"isFile": false,4804"children": [4805]4806}4807]4808}4809,4810{4811"title": "2.1.2",4812"url": "versions_2_1_2.html",4813"isFile": true,4814"children": [4815{4816"title": "Changes in FTL (FreeMarker Template Language)",4817"url": "versions_2_1_2.html#autoid_269",4818"isFile": false,4819"children": [4820]4821}4822,4823{4824"title": "Other changes",4825"url": "versions_2_1_2.html#autoid_270",4826"isFile": false,4827"children": [4828]4829}4830]4831}4832,4833{4834"title": "2.1.1",4835"url": "versions_2_1_1.html",4836"isFile": true,4837"children": [4838{4839"title": "Changes in FTL (FreeMarker Template Language)",4840"url": "versions_2_1_1.html#autoid_271",4841"isFile": false,4842"children": [4843]4844}4845,4846{4847"title": "Changes on the Java side",4848"url": "versions_2_1_1.html#autoid_272",4849"isFile": false,4850"children": [4851]4852}4853]4854}4855,4856{4857"title": "2.1",4858"url": "versions_2_1.html",4859"isFile": true,4860"children": [4861{4862"title": "Changes in FTL (FreeMarker Template Language)",4863"url": "versions_2_1.html#autoid_273",4864"isFile": false,4865"children": [4866]4867}4868,4869{4870"title": "Changes on the Java side",4871"url": "versions_2_1.html#autoid_274",4872"isFile": false,4873"children": [4874]4875}4876,4877{4878"title": "Other changes",4879"url": "versions_2_1.html#autoid_275",4880"isFile": false,4881"children": [4882]4883}4884,4885{4886"title": "Differences between the RC1 and final release",4887"url": "versions_2_1.html#autoid_276",4888"isFile": false,4889"children": [4890]4891}4892]4893}4894,4895{4896"title": "2.01",4897"url": "versions_2_01.html",4898"isFile": true,4899"children": [4900]4901}4902,4903{4904"title": "2.0",4905"url": "versions_2_0.html",4906"isFile": true,4907"children": [4908{4909"title": "Bugfixes",4910"url": "versions_2_0.html#autoid_277",4911"isFile": false,4912"children": [4913]4914}4915,4916{4917"title": "Changes to the Template language",4918"url": "versions_2_0.html#autoid_278",4919"isFile": false,4920"children": [4921]4922}4923,4924{4925"title": "Changes to the API",4926"url": "versions_2_0.html#autoid_279",4927"isFile": false,4928"children": [4929]4930}4931,4932{4933"title": "Miscellany",4934"url": "versions_2_0.html#autoid_280",4935"isFile": false,4936"children": [4937]4938}4939]4940}4941,4942{4943"title": "2.0 RC3",4944"url": "versions_2_0RC3.html",4945"isFile": true,4946"children": [4947{4948"title": "Bug Fixes",4949"url": "versions_2_0RC3.html#autoid_281",4950"isFile": false,4951"children": [4952]4953}4954,4955{4956"title": "Changes to the Template Language",4957"url": "versions_2_0RC3.html#autoid_282",4958"isFile": false,4959"children": [4960]4961}4962,4963{4964"title": "API changes",4965"url": "versions_2_0RC3.html#autoid_283",4966"isFile": false,4967"children": [4968]4969}4970]4971}4972,4973{4974"title": "2.0 RC2",4975"url": "versions_2_0RC2.html",4976"isFile": true,4977"children": [4978{4979"title": "Changes to Template Language",4980"url": "versions_2_0RC2.html#autoid_284",4981"isFile": false,4982"children": [4983]4984}4985,4986{4987"title": "API Changes",4988"url": "versions_2_0RC2.html#autoid_285",4989"isFile": false,4990"children": [4991]4992}4993]4994}4995,4996{4997"title": "2.0 RC1",4998"url": "versions_2_0RC1.html",4999"isFile": true,5000"children": [5001{5002"title": "Support for Numerical operations, both arithmetic and\n boolean, as well as numerical ranges.",5003"url": "versions_2_0RC1.html#autoid_286",5004"isFile": false,5005"children": [5006]5007}5008,5009{5010"title": "API Changes",5011"url": "versions_2_0RC1.html#autoid_287",5012"isFile": false,5013"children": [5014]5015}5016,5017{5018"title": "Syntactical Miscellany",5019"url": "versions_2_0RC1.html#autoid_288",5020"isFile": false,5021"children": [5022]5023}5024]5025}5026]5027}5028,5029{5030"title": "Installing FreeMarker",5031"url": "app_install.html",5032"isFile": true,5033"children": [5034]5035}5036,5037{5038"title": "Legal",5039"url": "app_legal.html",5040"isFile": true,5041"children": [5042{5043"title": "License",5044"url": "app_license.html",5045"isFile": true,5046"children": [5047]5048}5049,5050{5051"title": "Export Control",5052"url": "app_eccn.html",5053"isFile": true,5054"children": [5055]5056}5057]5058}5059]5060}5061,5062{5063"title": "Glossary",5064"url": "gloss.html",5065"isFile": true,5066"children": [5067]5068}5069,5070{5071"title": "Alphabetical Index",5072"url": "alphaidx.html",5073"isFile": true,5074"children": [5075]5076}5077]5078}...
ContextJsunit.test.js
Source:ContextJsunit.test.js
...102 options.flush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH;103 await zlib.zipFile(src, zipDest, options,104 (err, data) => {105 var zipStat = fileio.statSync(zipDest);106 var isFile = zipStat.isFile();107 expect(isFile).assertTrue();108 var srcSize = fileio.statSync(src).size;109 var destSize = zipStat.size;110 expect(srcSize>destSize).assertTrue();111 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);112 113 zlib.unzipFile(zipDest, unzipDir, options,114 (err, data) => {115 var unzipStat = fileio.statSync(unzipDest);116 var isFile = unzipStat.isFile();117 expect(isFile).assertTrue(); 118 var destSize = unzipStat.size;119 var originSize = fileio.statSync(src).size;120 var result = (originSize == destSize);121 expect(result).assertTrue();122 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);123 done(); 124 })125 }); 126 } catch(err) {127 console.error('FWK_ZipFile_0500 err:' + err);128 done();129 }130 console.log("==================FWK_ZipFile_0500 end==================");131})132/*133* @tc.number: FWK_ZipFile_0600134* @tc.name: zipFile 135* @tc.desc: FlushType.FLUSH_TYPE_NO_FLUSH136*/137it('FWK_ZipFile_0600', 0, async function (done) {138 console.log("==================FWK_ZipFile_0600 start==================");139 var src = "/data/test/ceshi.txt";140 var zipDest = "/data/testA/ceshi.zip";141 var unzipDir = "/data/testA/";142 var unzipDest = "/data/testA/ceshi.txt";143 144 try {145 var options = {};146 options.flush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH,147 await zlib.zipFile(src, zipDest, options,148 (err, data) => {149 var zipStat = fileio.statSync(zipDest);150 var isFile = zipStat.isFile();151 expect(isFile).assertTrue();152 var srcSize = fileio.statSync(src).size;153 var destSize = zipStat.size;154 expect(srcSize>destSize).assertTrue();155 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);156 157 zlib.unzipFile(zipDest, unzipDir, options,158 (err, data) => {159 var unzipStat = fileio.statSync(unzipDest);160 var isFile = unzipStat.isFile();161 expect(isFile).assertTrue(); 162 var destSize = unzipStat.size;163 var originSize = fileio.statSync(src).size;164 var result = (originSize == destSize);165 expect(result).assertTrue();166 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);167 done(); 168 })169 }); 170 } catch(err) {171 console.error('FWK_ZipFile_0500 err:' + err);172 done();173 }174 console.log("==================FWK_ZipFile_0600 end==================");175})176/*177* @tc.number: FWK_ZipFile_0700178* @tc.name: zipFile 179* @tc.desc: zipFile180*/181it('FWK_ZipFile_0700', 0, async function (done) {182 console.log("==================FWK_ZipFile_0700 start==================");183 var src = "/data/test/ceshi.txt";184 var zipDest = "/data/testA/ceshi.zip";185 var unzipDir = "/data/testA/";186 var unzipDest = "/data/testA/ceshi.txt";187 188 try{189 var options = {};190 options.flush = zlib.FlushType.FLUSH_TYPE_SYNC_FLUSH,191 await zlib.zipFile(src, zipDest, options,192 (err, data) => {193 var zipStat = fileio.statSync(zipDest);194 var isFile = zipStat.isFile();195 expect(isFile).assertTrue();196 var srcSize = fileio.statSync(src).size;197 var destSize = zipStat.size;198 expect(srcSize>destSize).assertTrue();199 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);200 201 zlib.unzipFile(zipDest, unzipDir, options,202 (err, data) => {203 var unzipStat = fileio.statSync(unzipDest);204 var isFile = unzipStat.isFile();205 expect(isFile).assertTrue(); 206 var destSize = unzipStat.size;207 var originSize = fileio.statSync(src).size;208 var result = (originSize == destSize);209 expect(result).assertTrue();210 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);211 done(); 212 })213 }); 214 } catch(err) {215 console.error('FWK_ZipFile_0500 err:' + err);216 done();217 }218 console.log("==================FWK_ZipFile_0700 end=================="); 219})220/*221* @tc.number: FWK_ZipFile_0800222* @tc.name: zipFile 223* @tc.desc: FlushType.FLUSH_TYPE_FULL_FLUSH224*/225it('FWK_ZipFile_0800', 0, async function (done) {226 console.log("==================FWK_ZipFile_0800 start==================");227 var src = "/data/test/ceshi.txt";228 var zipDest = "/data/testA/ceshi.zip";229 var unzipDir = "/data/testA/";230 var unzipDest = "/data/testA/ceshi.txt";231 232 try{233 var options = {};234 options.flush = zlib.FlushType.FLUSH_TYPE_FULL_FLUSH,235 await zlib.zipFile(src, zipDest, options,236 (err, data) => {237 var zipStat = fileio.statSync(zipDest);238 var isFile = zipStat.isFile();239 expect(isFile).assertTrue();240 var srcSize = fileio.statSync(src).size;241 var destSize = zipStat.size;242 expect(srcSize>destSize).assertTrue();243 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);244 245 zlib.unzipFile(zipDest, unzipDir, options,246 (err, data) => {247 var unzipStat = fileio.statSync(unzipDest);248 var isFile = unzipStat.isFile();249 expect(isFile).assertTrue(); 250 var destSize = unzipStat.size;251 var originSize = fileio.statSync(src).size;252 var result = (originSize == destSize);253 expect(result).assertTrue();254 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);255 done(); 256 })257 }); 258 } catch(err) {259 console.error('FWK_ZipFile_0500 err:' + err);260 done();261 }262 console.log("==================FWK_ZipFile_0800 end==================");263})264/*265* @tc.number: FWK_ZipFile_0900266* @tc.name: zipFile 267* @tc.desc: zipFile268*/269it('FWK_ZipFile_0900', 0, async function (done) {270 console.log("==================FWK_ZipFile_0900 start==================");271 var src = "/data/test/ceshi.txt";272 var zipDest = "/data/testA/ceshi.zip";273 var unzipDir = "/data/testA/";274 var unzipDest = "/data/testA/ceshi.txt";275 276 try{277 var options = {};278 options.flush = zlib.FlushType.FLUSH_TYPE_FINISH,279 await zlib.zipFile(src, zipDest, options,280 (err, data) => {281 var zipStat = fileio.statSync(zipDest);282 var isFile = zipStat.isFile();283 expect(isFile).assertTrue();284 var srcSize = fileio.statSync(src).size;285 var destSize = zipStat.size;286 expect(srcSize>destSize).assertTrue();287 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);288 289 zlib.unzipFile(zipDest, unzipDir, options,290 (err, data) => {291 var unzipStat = fileio.statSync(unzipDest);292 var isFile = unzipStat.isFile();293 expect(isFile).assertTrue(); 294 var destSize = unzipStat.size;295 var originSize = fileio.statSync(src).size;296 var result = (originSize == destSize);297 expect(result).assertTrue();298 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);299 done(); 300 })301 }); 302 } catch(err) {303 console.error('FWK_ZipFile_0500 err:' + err);304 done();305 }306 console.log("==================FWK_ZipFile_0900 end==================");307})308/*309* @tc.number: FWK_ZipFile_1000310* @tc.name: zipFile 311* @tc.desc: FlushType.FLUSH_TYPE_BLOCK312*/313it('FWK_ZipFile_1000', 0, async function (done) {314 console.log("==================FWK_ZipFile_1000 start==================");315 var src = "/data/test/ceshi.txt";316 var zipDest = "/data/testA/ceshi.zip";317 var unzipDir = "/data/testA/";318 var unzipDest = "/data/testA/ceshi.txt";319 320 try{321 var options = {};322 options.flush = zlib.FlushType.FLUSH_TYPE_BLOCK,323 await zlib.zipFile(src, zipDest, options,324 (err, data) => {325 var zipStat = fileio.statSync(zipDest);326 var isFile = zipStat.isFile();327 expect(isFile).assertTrue();328 var srcSize = fileio.statSync(src).size;329 var destSize = zipStat.size;330 expect(srcSize>destSize).assertTrue();331 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);332 333 zlib.unzipFile(zipDest, unzipDir, options,334 (err, data) => {335 var unzipStat = fileio.statSync(unzipDest);336 var isFile = unzipStat.isFile();337 expect(isFile).assertTrue(); 338 var destSize = unzipStat.size;339 var originSize = fileio.statSync(src).size;340 var result = (originSize == destSize);341 expect(result).assertTrue();342 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);343 done(); 344 })345 }); 346 } catch(err) {347 console.error('FWK_ZipFile_0500 err:' + err);348 done();349 }350 console.log("==================FWK_ZipFile_1000 end=================="); 351})352/*353* @tc.number: FWK_ZipFile_1100354* @tc.name: zipFile 355* @tc.desc: FlushType.FLUSH_TYPE_TREES356*/357it('FWK_ZipFile_1100', 0, async function (done) {358 console.log("==================FWK_ZipFile_1100 start==================");359 var src = "/data/test/ceshi.txt";360 var zipDest = "/data/testA/ceshi.zip";361 var unzipDir = "/data/testA/";362 var unzipDest = "/data/testA/ceshi.txt";363 364 try{365 var options = {};366 options.flush = zlib.FlushType.FLUSH_TYPE_TREES,367 await zlib.zipFile(src, zipDest, options,368 (err, data) => {369 var zipStat = fileio.statSync(zipDest);370 var isFile = zipStat.isFile();371 expect(isFile).assertTrue();372 var srcSize = fileio.statSync(src).size;373 var destSize = zipStat.size;374 expect(srcSize>destSize).assertTrue();375 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);376 377 zlib.unzipFile(zipDest, unzipDir, options,378 (err, data) => {379 var unzipStat = fileio.statSync(unzipDest);380 var isFile = unzipStat.isFile();381 expect(isFile).assertTrue(); 382 var destSize = unzipStat.size;383 var originSize = fileio.statSync(src).size;384 var result = (originSize == destSize);385 expect(result).assertTrue();386 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);387 done(); 388 })389 }); 390 } catch(err) {391 console.error('FWK_ZipFile_0500 err:' + err);392 done();393 }394 console.log("==================FWK_ZipFile_1100 end=================="); 395 sleep(10); 396})397/*398* @tc.number: FWK_ZipFile_1200399* @tc.name: zipFile 400* @tc.desc: FlushType.FLUSH_TYPE_NO_FLUSH401*/402 it('FWK_ZipFile_1200', 0, async function (done) {403 console.log("==================FWK_ZipFile_1200 start==================");404 var src = "/data/test/ceshi.txt";405 var zipDest = "/data/testA/ceshi.zip";406 var unzipDir = "/data/testA/";407 var unzipDest = "/data/testA/ceshi.txt";408 409 try{410 var options = {};411 options.flush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH,412 await zlib.zipFile(src, zipDest, options,413 (err, data) => {414 var zipStat = fileio.statSync(zipDest);415 var isFile = zipStat.isFile();416 expect(isFile).assertTrue();417 var srcSize = fileio.statSync(src).size;418 var destSize = zipStat.size;419 expect(srcSize>destSize).assertTrue();420 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);421 422 zlib.unzipFile(zipDest, unzipDir, options,423 (err, data) => {424 var unzipStat = fileio.statSync(unzipDest);425 var isFile = unzipStat.isFile();426 expect(isFile).assertTrue(); 427 var destSize = unzipStat.size;428 var originSize = fileio.statSync(src).size;429 var result = (originSize == destSize);430 expect(result).assertTrue();431 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);432 done(); 433 })434 }); 435 } catch(err) {436 console.error('FWK_ZipFile_0500 err:' + err);437 done();438 }439 console.log("==================FWK_ZipFile_1200 end=================="); 440 sleep(10);441})442/*443* @tc.number: FWK_ZipFile_1300444* @tc.name: zipFile 445* @tc.desc: FlushType.FLUSH_TYPE_PARTIAL_FLUSH446*/447it('FWK_ZipFile_1300', 0, async function (done) {448 console.log("==================FWK_ZipFile_1300 start==================");449 var src = "/data/test/ceshi.txt";450 var zipDest = "/data/testA/ceshi.zip";451 var unzipDir = "/data/testA/";452 var unzipDest = "/data/testA/ceshi.txt";453 454 try{455 var options = {};456 options.flush = zlib.FlushType.FLUSH_TYPE_PARTIAL_FLUSH,457 await zlib.zipFile(src, zipDest, options,458 (err, data) => {459 var zipStat = fileio.statSync(zipDest);460 var isFile = zipStat.isFile();461 expect(isFile).assertTrue();462 var srcSize = fileio.statSync(src).size;463 var destSize = zipStat.size;464 expect(srcSize>destSize).assertTrue();465 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);466 467 zlib.unzipFile(zipDest, unzipDir, options,468 (err, data) => {469 var unzipStat = fileio.statSync(unzipDest);470 var isFile = unzipStat.isFile();471 expect(isFile).assertTrue(); 472 var destSize = unzipStat.size;473 var originSize = fileio.statSync(src).size;474 var result = (originSize == destSize);475 expect(result).assertTrue();476 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);477 done(); 478 })479 }); 480 } catch(err) {481 console.error('FWK_ZipFile_0500 err:' + err);482 done();483 }484 console.log("==================FWK_ZipFile_1300 end=================="); 485})486/*487* @tc.number: FWK_ZipFile_1400488* @tc.name: zipFile 489* @tc.desc: FlushType.FLUSH_TYPE_SYNC_FLUSH490*/491it('FWK_ZipFile_1400', 0, async function (done) {492 console.log("==================FWK_ZipFile_1400 start==================");493 var src = "/data/test/ceshi.txt";494 var zipDest = "/data/testA/ceshi.zip";495 var unzipDir = "/data/testA/";496 var unzipDest = "/data/testA/ceshi.txt";497 498 try{499 var options = {};500 options.flush = zlib.FlushType.FLUSH_TYPE_SYNC_FLUSH,501 await zlib.zipFile(src, zipDest, options,502 (err, data) => {503 var zipStat = fileio.statSync(zipDest);504 var isFile = zipStat.isFile();505 expect(isFile).assertTrue();506 var srcSize = fileio.statSync(src).size;507 var destSize = zipStat.size;508 expect(srcSize>destSize).assertTrue();509 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);510 511 zlib.unzipFile(zipDest, unzipDir, options,512 (err, data) => {513 var unzipStat = fileio.statSync(unzipDest);514 var isFile = unzipStat.isFile();515 expect(isFile).assertTrue(); 516 var destSize = unzipStat.size;517 var originSize = fileio.statSync(src).size;518 var result = (originSize == destSize);519 expect(result).assertTrue();520 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);521 done(); 522 })523 }); 524 } catch(err) {525 console.error('FWK_ZipFile_0500 err:' + err);526 done();527 }528 console.log("==================FWK_ZipFile_1400 end=================="); 529})530/*531* @tc.number: FWK_ZipFile_1500532* @tc.name: zipFile 533* @tc.desc: FlushType.FLUSH_TYPE_FULL_FLUSH534*/535it('FWK_ZipFile_1500', 0, async function (done) {536 console.log("==================FWK_ZipFile_1500 start==================");537 var src = "/data/test/ceshi.txt";538 var zipDest = "/data/testA/ceshi.zip";539 var unzipDir = "/data/testA/";540 var unzipDest = "/data/testA/ceshi.txt";541 542 try{543 var options = {};544 options.flush = zlib.FlushType.FLUSH_TYPE_FULL_FLUSH,545 await zlib.zipFile(src, zipDest, options,546 (err, data) => {547 var zipStat = fileio.statSync(zipDest);548 var isFile = zipStat.isFile();549 expect(isFile).assertTrue();550 var srcSize = fileio.statSync(src).size;551 var destSize = zipStat.size;552 expect(srcSize>destSize).assertTrue();553 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);554 555 zlib.unzipFile(zipDest, unzipDir, options,556 (err, data) => {557 var unzipStat = fileio.statSync(unzipDest);558 var isFile = unzipStat.isFile();559 expect(isFile).assertTrue(); 560 var destSize = unzipStat.size;561 var originSize = fileio.statSync(src).size;562 var result = (originSize == destSize);563 expect(result).assertTrue();564 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);565 done(); 566 })567 }); 568 } catch(err) {569 console.error('FWK_ZipFile_0500 err:' + err);570 done();571 }572 console.log("==================FWK_ZipFile_1500 end=================="); 573})574/*575* @tc.number: FWK_ZipFile_1600576* @tc.name: zipFile 577* @tc.desc: FlushType.FLUSH_TYPE_FINISH578*/579it('FWK_ZipFile_1600', 0, async function (done) {580 console.log("==================FWK_ZipFile_1600 start==================");581 var src = "/data/test/ceshi.txt";582 var zipDest = "/data/testA/ceshi.zip";583 var unzipDir = "/data/testA/";584 var unzipDest = "/data/testA/ceshi.txt";585 586 try{587 var options = {};588 options.flush = zlib.FlushType.FLUSH_TYPE_FINISH,589 await zlib.zipFile(src, zipDest, options,590 (err, data) => {591 var zipStat = fileio.statSync(zipDest);592 var isFile = zipStat.isFile();593 expect(isFile).assertTrue();594 var srcSize = fileio.statSync(src).size;595 var destSize = zipStat.size;596 expect(srcSize>destSize).assertTrue();597 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);598 599 zlib.unzipFile(zipDest, unzipDir, options,600 (err, data) => {601 var unzipStat = fileio.statSync(unzipDest);602 var isFile = unzipStat.isFile();603 expect(isFile).assertTrue(); 604 var destSize = unzipStat.size;605 var originSize = fileio.statSync(src).size;606 var result = (originSize == destSize);607 expect(result).assertTrue();608 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);609 done(); 610 })611 }); 612 } catch(err) {613 console.error('FWK_ZipFile_0500 err:' + err);614 done();615 }616 console.log("==================FWK_ZipFile_1600 end=================="); 617})618/*619* @tc.number: FWK_ZipFile_1700620* @tc.name: zipFile 621* @tc.desc: zipFile622*/623it('FWK_ZipFile_1700', 0, async function (done) {624 console.log("==================FWK_ZipFile_1700 start==================");625 var src = "/data/test/ceshi.txt";626 var zipDest = "/data/testA/ceshi.zip";627 var unzipDir = "/data/testA/";628 var unzipDest = "/data/testA/ceshi.txt";629 630 try{631 var options = {};632 options.flush = zlib.FlushType.FLUSH_TYPE_BLOCK,633 await zlib.zipFile(src, zipDest, options,634 (err, data) => {635 var zipStat = fileio.statSync(zipDest);636 var isFile = zipStat.isFile();637 expect(isFile).assertTrue();638 var srcSize = fileio.statSync(src).size;639 var destSize = zipStat.size;640 expect(srcSize>destSize).assertTrue();641 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);642 643 zlib.unzipFile(zipDest, unzipDir, options,644 (err, data) => {645 var unzipStat = fileio.statSync(unzipDest);646 var isFile = unzipStat.isFile();647 expect(isFile).assertTrue(); 648 var destSize = unzipStat.size;649 var originSize = fileio.statSync(src).size;650 var result = (originSize == destSize);651 expect(result).assertTrue();652 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);653 done(); 654 })655 }); 656 } catch(err) {657 console.error('FWK_ZipFile_0500 err:' + err);658 done();659 }660 console.log("==================FWK_ZipFile_1700 end==================");661})662/*663* @tc.number: FWK_ZipFile_1800664* @tc.name: zipFile 665* @tc.desc: FlushType.FLUSH_TYPE_TREES666*/667it('FWK_ZipFile_1800', 0, async function (done) {668 console.log("==================FWK_ZipFile_1800 start==================");669 var src = "/data/test/ceshi.txt";670 var zipDest = "/data/testA/ceshi.zip";671 var unzipDir = "/data/testA/";672 var unzipDest = "/data/testA/ceshi.txt";673 674 try{675 var options = {};676 options.flush = zlib.FlushType.FLUSH_TYPE_TREES,677 await zlib.zipFile(src, zipDest, options,678 (err, data) => {679 var zipStat = fileio.statSync(zipDest);680 var isFile = zipStat.isFile();681 expect(isFile).assertTrue();682 var srcSize = fileio.statSync(src).size;683 var destSize = zipStat.size;684 expect(srcSize>destSize).assertTrue();685 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);686 687 zlib.unzipFile(zipDest, unzipDir, options,688 (err, data) => {689 var unzipStat = fileio.statSync(unzipDest);690 var isFile = unzipStat.isFile();691 expect(isFile).assertTrue(); 692 var destSize = unzipStat.size;693 var originSize = fileio.statSync(src).size;694 var result = (originSize == destSize);695 expect(result).assertTrue();696 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);697 done(); 698 })699 }); 700 } catch(err) {701 console.error('FWK_ZipFile_0500 err:' + err);702 done();703 }704 console.log("==================FWK_ZipFile_1800 end=================="); 705})706/*707* @tc.number: FWK_ZipFile_1900708* @tc.name: zipFile 709* @tc.desc: chunkSize:64710*/711it('FWK_ZipFile_1900', 0, async function (done) {712 console.log("==================FWK_ZipFile_1900 start==================");713 var src = "/data/test/ceshi.txt";714 var zipDest = "/data/testA/ceshi.zip";715 var unzipDir = "/data/testA/";716 var unzipDest = "/data/testA/ceshi.txt";717 718 try{719 var options = {720 chunkSize:64,721 };722 await zlib.zipFile(src, zipDest, options,723 (err, data) => {724 var zipStat = fileio.statSync(zipDest);725 var isFile = zipStat.isFile();726 expect(isFile).assertTrue();727 var srcSize = fileio.statSync(src).size;728 var destSize = zipStat.size;729 expect(srcSize>destSize).assertTrue();730 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);731 732 zlib.unzipFile(zipDest, unzipDir, options,733 (err, data) => {734 var unzipStat = fileio.statSync(unzipDest);735 var isFile = unzipStat.isFile();736 expect(isFile).assertTrue(); 737 var destSize = unzipStat.size;738 var originSize = fileio.statSync(src).size;739 var result = (originSize == destSize);740 expect(result).assertTrue();741 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);742 done(); 743 })744 }); 745} catch(err) {746 console.error('FWK_ZipFile_0500 err:' + err);747 done();748 }749 console.log("==================FWK_ZipFile_1900 end=================="); 750})751/*752* @tc.number: FWK_ZipFile_2000753* @tc.name: zipFile 754* @tc.desc: chunkSize:1024755*/756it('FWK_ZipFile_2000', 0, async function (done) {757 console.log("==================FWK_ZipFile_2000 start==================");758 var src = "/data/test/ceshi.txt";759 var zipDest = "/data/testA/ceshi.zip";760 var unzipDir = "/data/testA/";761 var unzipDest = "/data/testA/ceshi.txt";762 763 try{764 var options = {765 chunkSize:1024,766 };767 await zlib.zipFile(src, zipDest, options,768 (err, data) => {769 var zipStat = fileio.statSync(zipDest);770 var isFile = zipStat.isFile();771 expect(isFile).assertTrue();772 var srcSize = fileio.statSync(src).size;773 var destSize = zipStat.size;774 expect(srcSize>destSize).assertTrue();775 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);776 777 zlib.unzipFile(zipDest, unzipDir, options,778 (err, data) => {779 var unzipStat = fileio.statSync(unzipDest);780 var isFile = unzipStat.isFile();781 expect(isFile).assertTrue(); 782 var destSize = unzipStat.size;783 var originSize = fileio.statSync(src).size;784 var result = (originSize == destSize);785 expect(result).assertTrue();786 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);787 done(); 788 })789 }); 790} catch(err) {791 console.error('FWK_ZipFile_0500 err:' + err);792 done();793 }794 console.log("==================FWK_ZipFile_2000 end==================");795})796/*797* @tc.number: FWK_ZipFile_2100798* @tc.name: zipFile 799* @tc.desc: chunkSize:999800*/801it('FWK_ZipFile_2100', 0, async function (done) {802 console.log("==================FWK_ZipFile_2100 start==================");803 var src = "/data/test/ceshi.txt";804 var zipDest = "/data/testA/ceshi.zip";805 var unzipDir = "/data/testA/";806 var unzipDest = "/data/testA/ceshi.txt";807 808 try{809 var options = {810 chunkSize:999,811 };812 await zlib.zipFile(src, zipDest, options,813 (err, data) => {814 var zipStat = fileio.statSync(zipDest);815 var isFile = zipStat.isFile();816 expect(isFile).assertTrue();817 var srcSize = fileio.statSync(src).size;818 var destSize = zipStat.size;819 expect(srcSize>destSize).assertTrue();820 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);821 822 zlib.unzipFile(zipDest, unzipDir, options,823 (err, data) => {824 var unzipStat = fileio.statSync(unzipDest);825 var isFile = unzipStat.isFile();826 expect(isFile).assertTrue(); 827 var destSize = unzipStat.size;828 var originSize = fileio.statSync(src).size;829 var result = (originSize == destSize);830 expect(result).assertTrue();831 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);832 done(); 833 })834 }); 835} catch(err) {836 console.error('FWK_ZipFile_0500 err:' + err);837 done();838 }839 console.log("==================FWK_ZipFile_2100 end=================="); 840})841/*842* @tc.number: FWK_ZipFile_2200843* @tc.name: zipFile 844* @tc.desc: level.COMPRESS_LEVEL_NO_COMPRESSION845*/846it('FWK_ZipFile_2200', 0, async function (done) {847 console.log("==================FWK_ZipFile_2200 start==================");848 var src = "/data/test/ceshi.txt";849 var zipDest = "/data/testA/ceshi.zip";850 var unzipDir = "/data/testA/";851 var unzipDest = "/data/testA/ceshi.txt";852 try{853 var options = {};854 options.level = zlib.CompressLevel.COMPRESS_LEVEL_NO_COMPRESSION ,855 await zlib.zipFile(src, zipDest, options,856 (err, data) => {857 var zipStat = fileio.statSync(zipDest);858 var isFile = zipStat.isFile();859 expect(isFile).assertTrue();860 var srcSize = fileio.statSync(src).size;861 var destSize = zipStat.size;862 expect(srcSize>destSize).assertTrue();863 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);864 865 zlib.unzipFile(zipDest, unzipDir, options,866 (err, data) => {867 var unzipStat = fileio.statSync(unzipDest);868 var isFile = unzipStat.isFile();869 expect(isFile).assertTrue(); 870 var destSize = unzipStat.size;871 var originSize = fileio.statSync(src).size;872 var result = (originSize == destSize);873 expect(result).assertTrue();874 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);875 done(); 876 })877 }); 878 } catch(err) {879 console.error('FWK_ZipFile_0500 err:' + err);880 done();881 }882 console.log("==================FWK_ZipFile_2200 end==================");883})884/*885* @tc.number: FWK_ZipFile_2300886* @tc.name: zipFile 887* @tc.desc: level.COMPRESS_LEVEL_BEST_SPEED888*/889it('FWK_ZipFile_2300', 0, async function (done) {890 console.log("==================FWK_ZipFile_2300 start==================");891 var src = "/data/test/ceshi.txt";892 var zipDest = "/data/testA/ceshi.zip";893 var unzipDir = "/data/testA/";894 var unzipDest = "/data/testA/ceshi.txt";895 896 try{897 var options = {};898 options.level = zlib.CompressLevel.COMPRESS_LEVEL_BEST_SPEED,899 await zlib.zipFile(src, zipDest, options,900 (err, data) => {901 var zipStat = fileio.statSync(zipDest);902 var isFile = zipStat.isFile();903 expect(isFile).assertTrue();904 var srcSize = fileio.statSync(src).size;905 var destSize = zipStat.size;906 expect(srcSize>destSize).assertTrue();907 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);908 909 zlib.unzipFile(zipDest, unzipDir, options,910 (err, data) => {911 var unzipStat = fileio.statSync(unzipDest);912 var isFile = unzipStat.isFile();913 expect(isFile).assertTrue(); 914 var destSize = unzipStat.size;915 var originSize = fileio.statSync(src).size;916 var result = (originSize == destSize);917 expect(result).assertTrue();918 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);919 done(); 920 })921 }); 922 } catch(err) {923 console.error('FWK_ZipFile_0500 err:' + err);924 done();925 }926 console.log("==================FWK_ZipFile_2300 end==================");927})928/*929* @tc.number: FWK_ZipFile_2400930* @tc.name: zipFile 931* @tc.desc: level.COMPRESS_LEVEL_BEST_COMPRESSION932*/933it('FWK_ZipFile_2400', 0, async function (done) {934 console.log("==================FWK_ZipFile_2400 start==================");935 var src = "/data/test/ceshi.txt";936 var zipDest = "/data/testA/ceshi.zip";937 var unzipDir = "/data/testA/";938 var unzipDest = "/data/testA/ceshi.txt";939 940 try{941 var options = {};942 options.level = zlib.CompressLevel.COMPRESS_LEVEL_BEST_COMPRESSION,943 await zlib.zipFile(src, zipDest, options,944 (err, data) => {945 var zipStat = fileio.statSync(zipDest);946 var isFile = zipStat.isFile();947 expect(isFile).assertTrue();948 var srcSize = fileio.statSync(src).size;949 var destSize = zipStat.size;950 expect(srcSize>destSize).assertTrue();951 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);952 953 zlib.unzipFile(zipDest, unzipDir, options,954 (err, data) => {955 var unzipStat = fileio.statSync(unzipDest);956 var isFile = unzipStat.isFile();957 expect(isFile).assertTrue(); 958 var destSize = unzipStat.size;959 var originSize = fileio.statSync(src).size;960 var result = (originSize == destSize);961 expect(result).assertTrue();962 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);963 done(); 964 })965 }); 966 } catch(err) {967 console.error('FWK_ZipFile_0500 err:' + err);968 done();969 }970 console.log("==================FWK_ZipFile_2400 end=================="); 971})972/*973* @tc.number: FWK_ZipFile_2500974* @tc.name: zipFile 975* @tc.desc: level.COMPRESS_LEVEL_DEFAULT_COMPRESSION976*/977it('FWK_ZipFile_2500', 0, async function (done) {978 console.log("==================FWK_ZipFile_2500 start==================");979 var src = "/data/test/ceshi.txt";980 var zipDest = "/data/testA/ceshi.zip";981 var unzipDir = "/data/testA/";982 var unzipDest = "/data/testA/ceshi.txt";983 984 try{985 var options = {};986 options.level = zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,987 await zlib.zipFile(src, zipDest, options,988 (err, data) => {989 var zipStat = fileio.statSync(zipDest);990 var isFile = zipStat.isFile();991 expect(isFile).assertTrue();992 var srcSize = fileio.statSync(src).size;993 var destSize = zipStat.size;994 expect(srcSize>destSize).assertTrue();995 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);996 997 zlib.unzipFile(zipDest, unzipDir, options,998 (err, data) => {999 var unzipStat = fileio.statSync(unzipDest);1000 var isFile = unzipStat.isFile();1001 expect(isFile).assertTrue(); 1002 var destSize = unzipStat.size;1003 var originSize = fileio.statSync(src).size;1004 var result = (originSize == destSize);1005 expect(result).assertTrue();1006 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1007 done(); 1008 })1009 }); 1010 } catch(err) {1011 console.error('FWK_ZipFile_0500 err:' + err);1012 done();1013 }1014 console.log("==================FWK_ZipFile_2500 end==================");1015})1016/*1017* @tc.number: FWK_ZipFile_26001018* @tc.name: zipFile 1019* @tc.desc: memlevel.MEM_LEVEL_MIN_MEMLEVEL1020*/1021it('FWK_ZipFile_2600', 0, async function (done) {1022 console.log("==================FWK_ZipFile_2600 start==================");1023 var src = "/data/test/ceshi.txt";1024 var zipDest = "/data/testA/ceshi.zip";1025 var unzipDir = "/data/testA/";1026 var unzipDest = "/data/testA/ceshi.txt";1027 try{1028 var options = {};1029 options.memlevel = zlib.MemLevel.MEM_LEVEL_MIN_MEMLEVEL,1030 await zlib.zipFile(src, zipDest, options,1031 (err, data) => {1032 var zipStat = fileio.statSync(zipDest);1033 var isFile = zipStat.isFile();1034 expect(isFile).assertTrue();1035 var srcSize = fileio.statSync(src).size;1036 var destSize = zipStat.size;1037 expect(srcSize>destSize).assertTrue();1038 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1039 1040 zlib.unzipFile(zipDest, unzipDir, options,1041 (err, data) => {1042 var unzipStat = fileio.statSync(unzipDest);1043 var isFile = unzipStat.isFile();1044 expect(isFile).assertTrue(); 1045 var destSize = unzipStat.size;1046 var originSize = fileio.statSync(src).size;1047 var result = (originSize == destSize);1048 expect(result).assertTrue();1049 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1050 done(); 1051 })1052 }); 1053 } catch(err) {1054 console.error('FWK_ZipFile_0500 err:' + err);1055 done();1056 }1057 console.log("==================FWK_ZipFile_2600 end=================="); 1058})1059/*1060* @tc.number: FWK_ZipFile_27001061* @tc.name: zipFile 1062* @tc.desc: memlevel.MEM_LEVEL_MAX_MEMLEVEL1063*/1064it('FWK_ZipFile_2700', 0, async function (done) {1065 console.log("==================FWK_ZipFile_2700 start==================");1066 var src = "/data/test/ceshi.txt";1067 var zipDest = "/data/testA/ceshi.zip";1068 var unzipDir = "/data/testA/";1069 var unzipDest = "/data/testA/ceshi.txt";1070 1071 try{1072 var options = {};1073 options.memlevel = zlib.MemLevel.MEM_LEVEL_MAX_MEMLEVEL,1074 await zlib.zipFile(src, zipDest, options,1075 (err, data) => {1076 var zipStat = fileio.statSync(zipDest);1077 var isFile = zipStat.isFile();1078 expect(isFile).assertTrue();1079 var srcSize = fileio.statSync(src).size;1080 var destSize = zipStat.size;1081 expect(srcSize>destSize).assertTrue();1082 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1083 1084 zlib.unzipFile(zipDest, unzipDir, options,1085 (err, data) => {1086 var unzipStat = fileio.statSync(unzipDest);1087 var isFile = unzipStat.isFile();1088 expect(isFile).assertTrue(); 1089 var destSize = unzipStat.size;1090 var originSize = fileio.statSync(src).size;1091 var result = (originSize == destSize);1092 expect(result).assertTrue();1093 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1094 done(); 1095 })1096 }); 1097 } catch(err) {1098 console.error('FWK_ZipFile_0500 err:' + err);1099 done();1100 }1101 console.log("==================FWK_ZipFile_2700 end=================="); 1102})1103/*1104* @tc.number: FWK_ZipFile_28001105* @tc.name: zipFile 1106* @tc.desc: memlevel.MEM_LEVEL_DEFAULT_MEMLEVEL1107*/1108it('FWK_ZipFile_2800', 0, async function (done) {1109 console.log("==================FWK_ZipFile_2800 start==================");1110 var src = "/data/test/ceshi.txt";1111 var zipDest = "/data/testA/ceshi.zip";1112 var unzipDir = "/data/testA/";1113 var unzipDest = "/data/testA/ceshi.txt";1114 1115 try{1116 var options = {};1117 options.memlevel = zlib.MemLevel.MEM_LEVEL_DEFAULT_MEMLEVEL,1118 await zlib.zipFile(src, zipDest, options,1119 (err, data) => {1120 var zipStat = fileio.statSync(zipDest);1121 var isFile = zipStat.isFile();1122 expect(isFile).assertTrue();1123 var srcSize = fileio.statSync(src).size;1124 var destSize = zipStat.size;1125 expect(srcSize>destSize).assertTrue();1126 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1127 1128 zlib.unzipFile(zipDest, unzipDir, options,1129 (err, data) => {1130 var unzipStat = fileio.statSync(unzipDest);1131 var isFile = unzipStat.isFile();1132 expect(isFile).assertTrue(); 1133 var destSize = unzipStat.size;1134 var originSize = fileio.statSync(src).size;1135 var result = (originSize == destSize);1136 expect(result).assertTrue();1137 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1138 done(); 1139 })1140 }); 1141 } catch(err) {1142 console.error('FWK_ZipFile_0500 err:' + err);1143 done();1144 }1145 console.log("==================FWK_ZipFile_2800 end==================");1146})1147/*1148* @tc.number: FWK_ZipFile_29001149* @tc.name: zipFile 1150* @tc.desc: strategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY1151*/1152it('FWK_ZipFile_2900', 0, async function (done) {1153 console.log("==================FWK_ZipFile_2900 start==================");1154 var src = "/data/test/ceshi.txt";1155 var zipDest = "/data/testA/ceshi.zip";1156 var unzipDir = "/data/testA/";1157 var unzipDest = "/data/testA/ceshi.txt";1158 1159 try{1160 var options = {};1161 options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY,1162 await zlib.zipFile(src, zipDest, options,1163 (err, data) => {1164 var zipStat = fileio.statSync(zipDest);1165 var isFile = zipStat.isFile();1166 expect(isFile).assertTrue();1167 var srcSize = fileio.statSync(src).size;1168 var destSize = zipStat.size;1169 expect(srcSize>destSize).assertTrue();1170 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1171 1172 zlib.unzipFile(zipDest, unzipDir, options,1173 (err, data) => {1174 var unzipStat = fileio.statSync(unzipDest);1175 var isFile = unzipStat.isFile();1176 expect(isFile).assertTrue(); 1177 var destSize = unzipStat.size;1178 var originSize = fileio.statSync(src).size;1179 var result = (originSize == destSize);1180 expect(result).assertTrue();1181 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1182 done(); 1183 })1184 }); 1185 } catch(err) {1186 console.error('FWK_ZipFile_0500 err:' + err);1187 done();1188 }1189 console.log("==================FWK_ZipFile_2900 end==================");1190})1191/*1192* @tc.number: FWK_ZipFile_30001193* @tc.name: zipFile 1194* @tc.desc: strategy.COMPRESS_STRATEGY_FILTERED1195*/1196it('FWK_ZipFile_3000', 0, async function (done) {1197 console.log("==================FWK_ZipFile_3000 start==================");1198 var src = "/data/test/ceshi.txt";1199 var zipDest = "/data/testA/ceshi.zip";1200 var unzipDir = "/data/testA/";1201 var unzipDest = "/data/testA/ceshi.txt";1202 try{1203 var options = {};1204 options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_FILTERED,1205 await zlib.zipFile(src, zipDest, options,1206 (err, data) => {1207 var zipStat = fileio.statSync(zipDest);1208 var isFile = zipStat.isFile();1209 expect(isFile).assertTrue();1210 var srcSize = fileio.statSync(src).size;1211 var destSize = zipStat.size;1212 expect(srcSize>destSize).assertTrue();1213 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1214 1215 zlib.unzipFile(zipDest, unzipDir, options,1216 (err, data) => {1217 var unzipStat = fileio.statSync(unzipDest);1218 var isFile = unzipStat.isFile();1219 expect(isFile).assertTrue(); 1220 var destSize = unzipStat.size;1221 var originSize = fileio.statSync(src).size;1222 var result = (originSize == destSize);1223 expect(result).assertTrue();1224 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1225 done(); 1226 })1227 }); 1228 } catch(err) {1229 console.error('FWK_ZipFile_0500 err:' + err);1230 done();1231 }1232 console.log("==================FWK_ZipFile_3000 end=================="); 1233})1234/*1235* @tc.number: FWK_ZipFile_31001236* @tc.name: zipFile 1237* @tc.desc: strategy.COMPRESS_STRATEGY_HUFFMAN_ONLY1238*/1239it('FWK_ZipFile_3100', 0, async function (done) {1240 console.log("==================FWK_ZipFile_3100 start==================");1241 var src = "/data/test/ceshi.txt";1242 var zipDest = "/data/testA/ceshi.zip";1243 var unzipDir = "/data/testA/";1244 var unzipDest = "/data/testA/ceshi.txt";1245 1246 try{1247 var options = {};1248 options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_HUFFMAN_ONLY,1249 await zlib.zipFile(src, zipDest, options,1250 (err, data) => {1251 var zipStat = fileio.statSync(zipDest);1252 var isFile = zipStat.isFile();1253 expect(isFile).assertTrue();1254 var srcSize = fileio.statSync(src).size;1255 var destSize = zipStat.size;1256 expect(srcSize>destSize).assertTrue();1257 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1258 1259 zlib.unzipFile(zipDest, unzipDir, options,1260 (err, data) => {1261 var unzipStat = fileio.statSync(unzipDest);1262 var isFile = unzipStat.isFile();1263 expect(isFile).assertTrue(); 1264 var destSize = unzipStat.size;1265 var originSize = fileio.statSync(src).size;1266 var result = (originSize == destSize);1267 expect(result).assertTrue();1268 expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK);1269 done(); 1270 })1271 });