{{- $proxy := .}}{{$sheet := $proxy.Sheet}}{{$excel := $proxy.Excel}}{{$ctx := $proxy.TitleCtx -}}
{{- $clsName := $proxy.ClassName}}{{$fields := $proxy.GetFields -}}
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was auto-generated by ExcelExporter
//     version 2.0
//     from https://github.com/xuzhuoxi/ExcelExporter 
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

package {{$proxy.Namespace}} {
    import xu.BinaryReaderProxy;
    /**
     * @author {AUTHOR}
     * Created on {NowTimeStr} .
     * {{$ctx.RangeName}} {{$ctx.RangeType}} {{$ctx.Language}}
     */
    public class {{$proxy.ClassName}} {
        // 以下为属性声明 ----------
        {{- range $index, $value := $fields}}
        // {{$value.TitleName}}
        private var _{{ToLowerCamelCase $value.FieldLangName}}: {{$value.LangType}};
        {{- end}}

        // 以下为Get方法 ----------
        {{- range $index, $value := $fields}}
        /**
         * {{$value.TitleName}}
         * @remark
         *   {{$value.TitleRemark}}
         * @return {{$value.LangType}}
         */
        public function get {{ToLowerCamelCase $value.FieldLangName}}(): {{$value.LangType}} {
            return this._{{ToLowerCamelCase $value.FieldLangName}};
        }
        {{- end}}

        // Json数据解释
        public function fromJsonOverride(data: Object): void {
            // 以下为从 Json数据代理 中解释出字段数据
            {{- range $index, $value := $fields}}
            this._{{ToLowerCamelCase $value.FieldLangName}} = {{$value.LangType}}(data.{{$value.GetFileKey "json"}});
            {{- end}}
        }

        // 二进制数据解释
        public function fromBinaryOverride(proxy: BinaryReaderProxy): void {
            // 以下为从 二进制数据代理 中解释出字段数据
            {{- range $index, $value := $fields}}{{$define := $value.LangTypeDefine}}
            this._{{ToLowerCamelCase $value.FieldLangName}} = {{$value.LangType}}(proxy.{{$define.GetGetOperate "bin"}}());
            {{- end}}
        }
    }
}