defmodule CWMP.Protocol.Parser.Messages.AutonomousTransferComplete do
use CWMP.Protocol.ParserHelpers
alias CWMP.Protocol.Messages.AutonomousTransferComplete
def initial_acc do
%AutonomousTransferComplete{}
end
def start_element(state, ['FaultStruct'], _attribs, _uri) do
push_handler(state, FaultStruct)
end
def end_element(state, ['FaultStruct']) do
update_acc(state, fn acc -> %AutonomousTransferComplete{acc | fault_struct: state.last_acc} end)
end
def end_element(state, ['StartTime']) do
update_acc(state, fn cur -> %AutonomousTransferComplete{cur | start_time: datetimeStructure(state.last_text)} end)
end
def end_element(state, ['CompleteTime']) do
update_acc(state, fn cur -> %AutonomousTransferComplete{cur | complete_time: datetimeStructure(state.last_text)} end)
end
def end_element(state, ['AnnounceURL']) do
update_acc(state, fn cur -> %AutonomousTransferComplete{cur | announce_url: state.last_text} end)
end
def end_element(state, ['TransferURL']) do
update_acc(state, fn cur -> %AutonomousTransferComplete{cur | transfer_url: state.last_text} end)
end
def end_element(state, ['FileType']) do
update_acc(state, fn cur -> %AutonomousTransferComplete{cur | filetype: state.last_text} end)
end
def end_element(state, ['FileSize']) do
update_acc(state, fn cur -> %AutonomousTransferComplete{cur | filesize: integerValue(state.last_text, fn(x) -> x >= 0 end)} end)
end
def end_element(state, ['TargetFileName']) do
update_acc(state, fn cur -> %AutonomousTransferComplete{cur | target_filename: state.last_text} end)
end
def end_element(state, ['IsDownload']) do
update_acc(state, fn cur -> %AutonomousTransferComplete{cur | is_download: boolValue(state.last_text)} end)
end
end