package com.adobe.arise.database
{
    import flash.data.SQLConnection;
    import flash.data.SQLStatement;
    import flash.events.SQLEvent;
    
    public class Topics
        extends DBOperation
    {
        public function Topics(responder:DatabaseResponder, sql:XML, connection:SQLConnection)
        {
            super(responder, sql, connection);
        }
        
        public function getUnique():void
        {
            var stmt:SQLStatement = this.getSQLStatement();
            stmt.addEventListener(SQLEvent.RESULT,
                function(e:SQLEvent):void
                {
                    var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT);
                    dbe.data = stmt.getResult().data;
                    responder.dispatchEvent(dbe);
                });
            stmt.text = sql.topics.selectDistinct;
            stmt.execute();            
        }

        public function getUnread():void
        {
            var stmt:SQLStatement = this.getSQLStatement();
            stmt.addEventListener(SQLEvent.RESULT,
                function(e:SQLEvent):void
                {
                    var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT);
                    var result:Array = stmt.getResult().data as Array;
                    var o:Object = new Object();
                    for each (var row:Object in result)
                    {
                        o[row.topic] = row.unread;
                    }
                    dbe.data = o;
                    responder.dispatchEvent(dbe);
                });
            stmt.text = sql.topics.selectUnread;
            stmt.execute();            
        }
    }
}