Packages

Erlang/Elixir XMPP parsing and serialization library

Current section

Files

Jump to
contus_xmpp src xep0424.erl
Raw

src/xep0424.erl

%% Created automatically by XML generator (fxml_gen.erl)
%% Source: xmpp_codec.spec
-module(xep0424).
-compile(export_all).
do_decode(<<"retracted">>,
<<"urn:xmpp:message-retract:0">>, El, Opts) ->
decode_message_retracted_30(<<"urn:xmpp:message-retract:0">>,
Opts,
El);
do_decode(<<"retract">>,
<<"urn:xmpp:message-retract:0">>, El, Opts) ->
decode_message_retract_30(<<"urn:xmpp:message-retract:0">>,
Opts,
El);
do_decode(<<"retracted">>,
<<"urn:xmpp:message-retract:1">>, El, Opts) ->
decode_message_retracted(<<"urn:xmpp:message-retract:1">>,
Opts,
El);
do_decode(<<"retract">>,
<<"urn:xmpp:message-retract:1">>, El, Opts) ->
decode_message_retract(<<"urn:xmpp:message-retract:1">>,
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() ->
[{<<"retracted">>, <<"urn:xmpp:message-retract:0">>},
{<<"retract">>, <<"urn:xmpp:message-retract:0">>},
{<<"retracted">>, <<"urn:xmpp:message-retract:1">>},
{<<"retract">>, <<"urn:xmpp:message-retract:1">>}].
do_encode({message_retract, _, _, _} = Retract,
TopXMLNS) ->
encode_message_retract(Retract, TopXMLNS);
do_encode({message_retracted, _, _, _, _, _} =
Retracted,
TopXMLNS) ->
encode_message_retracted(Retracted, TopXMLNS);
do_encode({message_retract_30} = Retract, TopXMLNS) ->
encode_message_retract_30(Retract, TopXMLNS);
do_encode({message_retracted_30, _, _, _, _} =
Retracted,
TopXMLNS) ->
encode_message_retracted_30(Retracted, TopXMLNS).
do_get_name({message_retract, _, _, _}) ->
<<"retract">>;
do_get_name({message_retract_30}) -> <<"retract">>;
do_get_name({message_retracted, _, _, _, _, _}) ->
<<"retracted">>;
do_get_name({message_retracted_30, _, _, _, _}) ->
<<"retracted">>.
do_get_ns({message_retract, _, _, _}) ->
<<"urn:xmpp:message-retract:1">>;
do_get_ns({message_retract_30}) ->
<<"urn:xmpp:message-retract:0">>;
do_get_ns({message_retracted, _, _, _, _, _}) ->
<<"urn:xmpp:message-retract:1">>;
do_get_ns({message_retracted_30, _, _, _, _}) ->
<<"urn:xmpp:message-retract:0">>.
get_els({message_retracted,
_id,
_by,
_from,
_stamp,
_sub_els}) ->
_sub_els;
get_els({message_retracted_30,
_by,
_from,
_stamp,
_sub_els}) ->
_sub_els.
set_els({message_retracted, _id, _by, _from, _stamp, _},
_sub_els) ->
{message_retracted, _id, _by, _from, _stamp, _sub_els};
set_els({message_retracted_30, _by, _from, _stamp, _},
_sub_els) ->
{message_retracted_30, _by, _from, _stamp, _sub_els}.
pp(message_retract, 3) -> [id, reason, moderated];
pp(message_retracted, 5) ->
[id, by, from, stamp, sub_els];
pp(message_retract_30, 0) -> [];
pp(message_retracted_30, 4) ->
[by, from, stamp, sub_els];
pp(_, _) -> no.
records() ->
[{message_retract, 3},
{message_retracted, 5},
{message_retract_30, 0},
{message_retracted_30, 4}].
dec_utc(Val) -> xmpp_util:decode_timestamp(Val).
enc_utc(Val) -> xmpp_util:encode_timestamp(Val).
decode_message_retracted_30(__TopXMLNS, __Opts,
{xmlel, <<"retracted">>, _attrs, _els}) ->
__Els = decode_message_retracted_30_els(__TopXMLNS,
__Opts,
_els,
[]),
{By, From, Stamp} =
decode_message_retracted_30_attrs(__TopXMLNS,
_attrs,
undefined,
undefined,
undefined),
{message_retracted_30, By, From, Stamp, __Els}.
decode_message_retracted_30_els(__TopXMLNS, __Opts, [],
__Els) ->
lists:reverse(__Els);
decode_message_retracted_30_els(__TopXMLNS, __Opts,
[{xmlel, _name, _attrs, _} = _el | _els],
__Els) ->
case proplists:get_bool(ignore_els, __Opts) of
true ->
decode_message_retracted_30_els(__TopXMLNS,
__Opts,
_els,
[_el | __Els]);
false ->
__XMLNS = xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS),
case xmpp_codec:get_mod(_name, __XMLNS) of
undefined ->
decode_message_retracted_30_els(__TopXMLNS,
__Opts,
_els,
[_el | __Els]);
Mod ->
decode_message_retracted_30_els(__TopXMLNS,
__Opts,
_els,
[Mod:do_decode(_name,
__XMLNS,
_el,
__Opts)
| __Els])
end
end;
decode_message_retracted_30_els(__TopXMLNS, __Opts,
[_ | _els], __Els) ->
decode_message_retracted_30_els(__TopXMLNS,
__Opts,
_els,
__Els).
decode_message_retracted_30_attrs(__TopXMLNS,
[{<<"by">>, _val} | _attrs], _By, From,
Stamp) ->
decode_message_retracted_30_attrs(__TopXMLNS,
_attrs,
_val,
From,
Stamp);
decode_message_retracted_30_attrs(__TopXMLNS,
[{<<"from">>, _val} | _attrs], By, _From,
Stamp) ->
decode_message_retracted_30_attrs(__TopXMLNS,
_attrs,
By,
_val,
Stamp);
decode_message_retracted_30_attrs(__TopXMLNS,
[{<<"stamp">>, _val} | _attrs], By, From,
_Stamp) ->
decode_message_retracted_30_attrs(__TopXMLNS,
_attrs,
By,
From,
_val);
decode_message_retracted_30_attrs(__TopXMLNS,
[_ | _attrs], By, From, Stamp) ->
decode_message_retracted_30_attrs(__TopXMLNS,
_attrs,
By,
From,
Stamp);
decode_message_retracted_30_attrs(__TopXMLNS, [], By,
From, Stamp) ->
{decode_message_retracted_30_attr_by(__TopXMLNS, By),
decode_message_retracted_30_attr_from(__TopXMLNS, From),
decode_message_retracted_30_attr_stamp(__TopXMLNS,
Stamp)}.
encode_message_retracted_30({message_retracted_30,
By,
From,
Stamp,
__Els},
__TopXMLNS) ->
__NewTopXMLNS =
xmpp_codec:choose_top_xmlns(<<"urn:xmpp:message-retract:0">>,
[],
__TopXMLNS),
_els = [xmpp_codec:encode(_el, __NewTopXMLNS)
|| _el <- __Els],
_attrs = encode_message_retracted_30_attr_stamp(Stamp,
encode_message_retracted_30_attr_from(From,
encode_message_retracted_30_attr_by(By,
xmpp_codec:enc_xmlns_attrs(__NewTopXMLNS,
__TopXMLNS)))),
{xmlel, <<"retracted">>, _attrs, _els}.
decode_message_retracted_30_attr_by(__TopXMLNS,
undefined) ->
undefined;
decode_message_retracted_30_attr_by(__TopXMLNS, _val) ->
case catch jid:decode(_val) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_attr_value,
<<"by">>,
<<"retracted">>,
__TopXMLNS}});
_res -> _res
end.
encode_message_retracted_30_attr_by(undefined, _acc) ->
_acc;
encode_message_retracted_30_attr_by(_val, _acc) ->
[{<<"by">>, jid:encode(_val)} | _acc].
decode_message_retracted_30_attr_from(__TopXMLNS,
undefined) ->
<<>>;
decode_message_retracted_30_attr_from(__TopXMLNS,
_val) ->
_val.
encode_message_retracted_30_attr_from(<<>>, _acc) ->
_acc;
encode_message_retracted_30_attr_from(_val, _acc) ->
[{<<"from">>, _val} | _acc].
decode_message_retracted_30_attr_stamp(__TopXMLNS,
undefined) ->
undefined;
decode_message_retracted_30_attr_stamp(__TopXMLNS,
_val) ->
case catch dec_utc(_val) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_attr_value,
<<"stamp">>,
<<"retracted">>,
__TopXMLNS}});
_res -> _res
end.
encode_message_retracted_30_attr_stamp(undefined,
_acc) ->
_acc;
encode_message_retracted_30_attr_stamp(_val, _acc) ->
[{<<"stamp">>, enc_utc(_val)} | _acc].
decode_message_retract_30(__TopXMLNS, __Opts,
{xmlel, <<"retract">>, _attrs, _els}) ->
{message_retract_30}.
encode_message_retract_30({message_retract_30},
__TopXMLNS) ->
__NewTopXMLNS =
xmpp_codec:choose_top_xmlns(<<"urn:xmpp:message-retract:0">>,
[],
__TopXMLNS),
_els = [],
_attrs = xmpp_codec:enc_xmlns_attrs(__NewTopXMLNS,
__TopXMLNS),
{xmlel, <<"retract">>, _attrs, _els}.
decode_message_retracted(__TopXMLNS, __Opts,
{xmlel, <<"retracted">>, _attrs, _els}) ->
__Els = decode_message_retracted_els(__TopXMLNS,
__Opts,
_els,
[]),
{Id, By, From, Stamp} =
decode_message_retracted_attrs(__TopXMLNS,
_attrs,
undefined,
undefined,
undefined,
undefined),
{message_retracted, Id, By, From, Stamp, __Els}.
decode_message_retracted_els(__TopXMLNS, __Opts, [],
__Els) ->
lists:reverse(__Els);
decode_message_retracted_els(__TopXMLNS, __Opts,
[{xmlel, _name, _attrs, _} = _el | _els], __Els) ->
case proplists:get_bool(ignore_els, __Opts) of
true ->
decode_message_retracted_els(__TopXMLNS,
__Opts,
_els,
[_el | __Els]);
false ->
__XMLNS = xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS),
case xmpp_codec:get_mod(_name, __XMLNS) of
undefined ->
decode_message_retracted_els(__TopXMLNS,
__Opts,
_els,
[_el | __Els]);
Mod ->
decode_message_retracted_els(__TopXMLNS,
__Opts,
_els,
[Mod:do_decode(_name,
__XMLNS,
_el,
__Opts)
| __Els])
end
end;
decode_message_retracted_els(__TopXMLNS, __Opts,
[_ | _els], __Els) ->
decode_message_retracted_els(__TopXMLNS,
__Opts,
_els,
__Els).
decode_message_retracted_attrs(__TopXMLNS,
[{<<"id">>, _val} | _attrs], _Id, By, From,
Stamp) ->
decode_message_retracted_attrs(__TopXMLNS,
_attrs,
_val,
By,
From,
Stamp);
decode_message_retracted_attrs(__TopXMLNS,
[{<<"by">>, _val} | _attrs], Id, _By, From,
Stamp) ->
decode_message_retracted_attrs(__TopXMLNS,
_attrs,
Id,
_val,
From,
Stamp);
decode_message_retracted_attrs(__TopXMLNS,
[{<<"from">>, _val} | _attrs], Id, By, _From,
Stamp) ->
decode_message_retracted_attrs(__TopXMLNS,
_attrs,
Id,
By,
_val,
Stamp);
decode_message_retracted_attrs(__TopXMLNS,
[{<<"stamp">>, _val} | _attrs], Id, By, From,
_Stamp) ->
decode_message_retracted_attrs(__TopXMLNS,
_attrs,
Id,
By,
From,
_val);
decode_message_retracted_attrs(__TopXMLNS, [_ | _attrs],
Id, By, From, Stamp) ->
decode_message_retracted_attrs(__TopXMLNS,
_attrs,
Id,
By,
From,
Stamp);
decode_message_retracted_attrs(__TopXMLNS, [], Id, By,
From, Stamp) ->
{decode_message_retracted_attr_id(__TopXMLNS, Id),
decode_message_retracted_attr_by(__TopXMLNS, By),
decode_message_retracted_attr_from(__TopXMLNS, From),
decode_message_retracted_attr_stamp(__TopXMLNS, Stamp)}.
encode_message_retracted({message_retracted,
Id,
By,
From,
Stamp,
__Els},
__TopXMLNS) ->
__NewTopXMLNS =
xmpp_codec:choose_top_xmlns(<<"urn:xmpp:message-retract:1">>,
[],
__TopXMLNS),
_els = [xmpp_codec:encode(_el, __NewTopXMLNS)
|| _el <- __Els],
_attrs = encode_message_retracted_attr_stamp(Stamp,
encode_message_retracted_attr_from(From,
encode_message_retracted_attr_by(By,
encode_message_retracted_attr_id(Id,
xmpp_codec:enc_xmlns_attrs(__NewTopXMLNS,
__TopXMLNS))))),
{xmlel, <<"retracted">>, _attrs, _els}.
decode_message_retracted_attr_id(__TopXMLNS,
undefined) ->
erlang:error({xmpp_codec,
{missing_attr, <<"id">>, <<"retracted">>, __TopXMLNS}});
decode_message_retracted_attr_id(__TopXMLNS, _val) ->
_val.
encode_message_retracted_attr_id(_val, _acc) ->
[{<<"id">>, _val} | _acc].
decode_message_retracted_attr_by(__TopXMLNS,
undefined) ->
undefined;
decode_message_retracted_attr_by(__TopXMLNS, _val) ->
case catch jid:decode(_val) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_attr_value,
<<"by">>,
<<"retracted">>,
__TopXMLNS}});
_res -> _res
end.
encode_message_retracted_attr_by(undefined, _acc) ->
_acc;
encode_message_retracted_attr_by(_val, _acc) ->
[{<<"by">>, jid:encode(_val)} | _acc].
decode_message_retracted_attr_from(__TopXMLNS,
undefined) ->
<<>>;
decode_message_retracted_attr_from(__TopXMLNS, _val) ->
_val.
encode_message_retracted_attr_from(<<>>, _acc) -> _acc;
encode_message_retracted_attr_from(_val, _acc) ->
[{<<"from">>, _val} | _acc].
decode_message_retracted_attr_stamp(__TopXMLNS,
undefined) ->
undefined;
decode_message_retracted_attr_stamp(__TopXMLNS, _val) ->
case catch dec_utc(_val) of
{'EXIT', _} ->
erlang:error({xmpp_codec,
{bad_attr_value,
<<"stamp">>,
<<"retracted">>,
__TopXMLNS}});
_res -> _res
end.
encode_message_retracted_attr_stamp(undefined, _acc) ->
_acc;
encode_message_retracted_attr_stamp(_val, _acc) ->
[{<<"stamp">>, enc_utc(_val)} | _acc].
decode_message_retract(__TopXMLNS, __Opts,
{xmlel, <<"retract">>, _attrs, _els}) ->
{Moderated, Reason} =
decode_message_retract_els(__TopXMLNS,
__Opts,
_els,
undefined,
undefined),
Id = decode_message_retract_attrs(__TopXMLNS,
_attrs,
undefined),
{message_retract, Id, Reason, Moderated}.
decode_message_retract_els(__TopXMLNS, __Opts, [],
Moderated, Reason) ->
{Moderated, Reason};
decode_message_retract_els(__TopXMLNS, __Opts,
[{xmlel, <<"reason">>, _attrs, _} = _el | _els],
Moderated, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:xmpp:message-moderate:1">> ->
decode_message_retract_els(__TopXMLNS,
__Opts,
_els,
Moderated,
xep0425:decode_message_moderate_reason(<<"urn:xmpp:message-moderate:1">>,
__Opts,
_el));
_ ->
decode_message_retract_els(__TopXMLNS,
__Opts,
_els,
Moderated,
Reason)
end;
decode_message_retract_els(__TopXMLNS, __Opts,
[{xmlel, <<"moderated">>, _attrs, _} = _el | _els],
Moderated, Reason) ->
case xmpp_codec:get_attr(<<"xmlns">>,
_attrs,
__TopXMLNS)
of
<<"urn:xmpp:message-moderate:1">> ->
decode_message_retract_els(__TopXMLNS,
__Opts,
_els,
xep0425:decode_message_moderated(<<"urn:xmpp:message-moderate:1">>,
__Opts,
_el),
Reason);
_ ->
decode_message_retract_els(__TopXMLNS,
__Opts,
_els,
Moderated,
Reason)
end;
decode_message_retract_els(__TopXMLNS, __Opts,
[_ | _els], Moderated, Reason) ->
decode_message_retract_els(__TopXMLNS,
__Opts,
_els,
Moderated,
Reason).
decode_message_retract_attrs(__TopXMLNS,
[{<<"id">>, _val} | _attrs], _Id) ->
decode_message_retract_attrs(__TopXMLNS, _attrs, _val);
decode_message_retract_attrs(__TopXMLNS, [_ | _attrs],
Id) ->
decode_message_retract_attrs(__TopXMLNS, _attrs, Id);
decode_message_retract_attrs(__TopXMLNS, [], Id) ->
decode_message_retract_attr_id(__TopXMLNS, Id).
encode_message_retract({message_retract,
Id,
Reason,
Moderated},
__TopXMLNS) ->
__NewTopXMLNS =
xmpp_codec:choose_top_xmlns(<<"urn:xmpp:message-retract:1">>,
[],
__TopXMLNS),
_els =
lists:reverse('encode_message_retract_$moderated'(Moderated,
__NewTopXMLNS,
'encode_message_retract_$reason'(Reason,
__NewTopXMLNS,
[]))),
_attrs = encode_message_retract_attr_id(Id,
xmpp_codec:enc_xmlns_attrs(__NewTopXMLNS,
__TopXMLNS)),
{xmlel, <<"retract">>, _attrs, _els}.
'encode_message_retract_$moderated'(undefined,
__TopXMLNS, _acc) ->
_acc;
'encode_message_retract_$moderated'(Moderated,
__TopXMLNS, _acc) ->
[xep0425:encode_message_moderated(Moderated, __TopXMLNS)
| _acc].
'encode_message_retract_$reason'(undefined, __TopXMLNS,
_acc) ->
_acc;
'encode_message_retract_$reason'(Reason, __TopXMLNS,
_acc) ->
[xep0425:encode_message_moderate_reason(Reason,
__TopXMLNS)
| _acc].
decode_message_retract_attr_id(__TopXMLNS, undefined) ->
<<>>;
decode_message_retract_attr_id(__TopXMLNS, _val) ->
_val.
encode_message_retract_attr_id(<<>>, _acc) -> _acc;
encode_message_retract_attr_id(_val, _acc) ->
[{<<"id">>, _val} | _acc].