%%%-------------------------------------------------------------------
%% @doc ${appName} public API
%% @end
%%%-------------------------------------------------------------------

-module(${appName}_app).

-behaviour(application).

%% Application callbacks
-export([start/2, stop/1]).

-include("${appName}.hrl").


%%====================================================================
%% API
%%====================================================================

start(_StartType, _StartArgs) ->
    register_type_list(),
    ${appName}_sup:start_link().

%%--------------------------------------------------------------------
stop(_State) ->
    ok.

%%====================================================================
%% Internal functions
%%====================================================================


register_type_list()->
    List = ${appName}_type_list:get_list(),
    lists:map(
        fun({NativeType,ForeignType,Fields}) ->
        dubbo_type_transfer:pre_process_typedef(NativeType,ForeignType,Fields)
    end,List),
    ok.