Packages

Erlang/Elixir XMPP parsing and serialization library

Current section

Files

Jump to
contus_xmpp src xep0317.erl
Raw

src/xep0317.erl

%% Created automatically by XML generator (fxml_gen.erl)
%% Source: xmpp_codec.spec
-module(xep0317).
-compile(export_all).
do_decode(<<"hat">>, <<"urn:xmpp:hats:0">>, El, Opts) ->
decode_muc_hat(<<"urn:xmpp:hats:0">>, Opts, El);
do_decode(<<"hats">>, <<"urn:xmpp:hats:0">>, El,
Opts) ->
decode_muc_hats(<<"urn:xmpp:hats:0">>, Opts, El);
do_decode(Name, <<>>, _, _) ->
erlang:error({xmpp_codec, {missing_tag_xmlns, Name}});
do_decode(Name, XMLNS, _, _) ->
erlang:error({xmpp_codec, {unknown_tag, Name, XMLNS}}).
tags() ->
[{<<"hat">>, <<"urn:xmpp:hats:0">>},
{<<"hats">>, <<"urn:xmpp:hats:0">>}].
do_encode({muc_hats, _} = Hats, TopXMLNS) ->
encode_muc_hats(Hats, TopXMLNS);
do_encode({muc_hat, _, _, _} = Hat, TopXMLNS) ->
encode_muc_hat(Hat, TopXMLNS).
do_get_name({muc_hat, _, _, _}) -> <<"hat">>;
do_get_name({muc_hats, _}) -> <<"hats">>.
do_get_ns({muc_hat, _, _, _}) -> <<"urn:xmpp:hats:0">>;
do_get_ns({muc_hats, _}) -> <<"urn:xmpp:hats:0">>.
pp(muc_hats, 1) -> [hats];
pp(muc_hat, 3) -> [title, uri, hue];
pp(_, _) -> no.
records() -> [{muc_hats, 1}, {muc_hat, 3}].
decode_muc_hat(__TopXMLNS, __Opts,
{xmlel, <<"hat">>, _attrs, _els}) ->
{Title, Uri, Hue} = decode_muc_hat_attrs(__TopXMLNS,
_attrs,
undefined,
undefined,
undefined),
{muc_hat, Title, Uri, Hue}.
decode_muc_hat_attrs(__TopXMLNS,
[{<<"title">>, _val} | _attrs], _Title, Uri, Hue) ->
decode_muc_hat_attrs(__TopXMLNS,
_attrs,
_val,
Uri,
Hue);
decode_muc_hat_attrs(__TopXMLNS,
[{<<"uri">>, _val} | _attrs], Title, _Uri, Hue) ->
decode_muc_hat_attrs(__TopXMLNS,
_attrs,
Title,
_val,
Hue);
decode_muc_hat_attrs(__TopXMLNS,
[{<<"hue">>, _val} | _attrs], Title, Uri, _Hue) ->
decode_muc_hat_attrs(__TopXMLNS,
_attrs,
Title,
Uri,
_val);
decode_muc_hat_attrs(__TopXMLNS, [_ | _attrs], Title,
Uri, Hue) ->
decode_muc_hat_attrs(__TopXMLNS,
_attrs,
Title,
Uri,
Hue);
decode_muc_hat_attrs(__TopXMLNS, [], Title, Uri, Hue) ->
{decode_muc_hat_attr_title(__TopXMLNS, Title),
decode_muc_hat_attr_uri(__TopXMLNS, Uri),
decode_muc_hat_attr_hue(__TopXMLNS, Hue)}.
encode_muc_hat({muc_hat, Title, Uri, Hue},
__TopXMLNS) ->
__NewTopXMLNS =
xmpp_codec:choose_top_xmlns(<<"urn:xmpp:hats:0">>,
[],
__TopXMLNS),
_els = [],
_attrs = encode_muc_hat_attr_hue(Hue,
encode_muc_hat_attr_uri(Uri,
encode_muc_hat_attr_title(Title,
xmpp_codec:enc_xmlns_attrs(__NewTopXMLNS,
__TopXMLNS)))),
{xmlel, <<"hat">>, _attrs, _els}.
decode_muc_hat_attr_title(__TopXMLNS, undefined) ->
erlang:error({xmpp_codec,
{missing_attr, <<"title">>, <<"hat">>, __TopXMLNS}});
decode_muc_hat_attr_title(__TopXMLNS, _val) -> _val.
encode_muc_hat_attr_title(_val, _acc) ->
[{<<"title">>, _val} | _acc].
decode_muc_hat_attr_uri(__TopXMLNS, undefined) ->
erlang:error({xmpp_codec,
{missing_attr, <<"uri">>, <<"hat">>, __TopXMLNS}});
decode_muc_hat_attr_uri(__TopXMLNS, _val) -> _val.
encode_muc_hat_attr_uri(_val, _acc) ->
[{<<"uri">>, _val} | _acc].
decode_muc_hat_attr_hue(__TopXMLNS, undefined) -> <<>>;
decode_muc_hat_attr_hue(__TopXMLNS, _val) -> _val.
encode_muc_hat_attr_hue(<<>>, _acc) -> _acc;
encode_muc_hat_attr_hue(_val, _acc) ->
[{<<"hue">>, _val} | _acc].
decode_muc_hats(__TopXMLNS, __Opts,
{xmlel, <<"hats">>, _attrs, _els}) ->
Hats = decode_muc_hats_els(__TopXMLNS,
__Opts,
_els,
[]),
{muc_hats, Hats}.
decode_muc_hats_els(__TopXMLNS, __Opts, [], Hats) ->
lists:reverse(Hats);
decode_muc_hats_els(__TopXMLNS, __Opts,
[{xmlel, <<"hat">>, _attrs, _} = _el | _els], Hats) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:xmpp:hats:0">> ->
decode_muc_hats_els(__TopXMLNS,
__Opts,
_els,
[decode_muc_hat(<<"urn:xmpp:hats:0">>,
__Opts,
_el)
| Hats]);
_ -> decode_muc_hats_els(__TopXMLNS, __Opts, _els, Hats)
end;
decode_muc_hats_els(__TopXMLNS, __Opts, [_ | _els],
Hats) ->
decode_muc_hats_els(__TopXMLNS, __Opts, _els, Hats).
encode_muc_hats({muc_hats, Hats}, __TopXMLNS) ->
__NewTopXMLNS =
xmpp_codec:choose_top_xmlns(<<"urn:xmpp:hats:0">>,
[],
__TopXMLNS),
_els = lists:reverse('encode_muc_hats_$hats'(Hats,
__NewTopXMLNS,
[])),
_attrs = xmpp_codec:enc_xmlns_attrs(__NewTopXMLNS,
__TopXMLNS),
{xmlel, <<"hats">>, _attrs, _els}.
'encode_muc_hats_$hats'([], __TopXMLNS, _acc) -> _acc;
'encode_muc_hats_$hats'([Hats | _els], __TopXMLNS,
_acc) ->
'encode_muc_hats_$hats'(_els,
__TopXMLNS,
[encode_muc_hat(Hats, __TopXMLNS) | _acc]).