require 'dbgp/XmlElement'
require 'debugger/BreakpointContracts'

module XoredDebugger
    class BreakpointElement < XmlElement
        def initialize(bp)
            super('breakpoint')
            add_attribute('id', bp.breakpoint_id)
            add_attribute('state', bp.state)
            add_attribute('hit_value',bp.hit_value)
            add_attribute('hit_condition',bp.hit_condition)
            add_attribute('hit_count',bp.hit_count)
            set_data(bp.expression, true)

            # Type specific information
            # TODO: Add other brealpoin types handling
            if bp.is_a? LineBreakpointContract
                add_attribute('type', 'line')
                add_attribute('filename', bp.filename)
                add_attribute('lineno', bp.lineno)
            elsif bp.is_a? ExceptionBreakpointContract
                add_attribute('type', 'exception')
                add_attribute('exception', bp.exception)
            end
        end
    end
end
