package com.adobe.arise.database { import flash.data.SQLConnection; import flash.data.SQLStatement; import flash.events.SQLEvent; public class DeleteFeed extends DBOperation { private var feedId:Number; public function DeleteFeed(responder:DatabaseResponder, sql:XML, connection:SQLConnection, feedId:Number) { this.feedId = feedId; super(responder, sql, connection); } public function execute():void { deleteTopics(); } private function deleteTopics():void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, deleteAuthors); stmt.text = sql.topics.deleteByFeedId; stmt.parameters[":feed_id"] = feedId; stmt.execute(); } private function deleteAuthors(e:SQLEvent):void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, deletePosts); stmt.text = sql.authors.deleteByFeedId; stmt.parameters[":feed_id"] = feedId; stmt.execute(); } private function deletePosts(e:SQLEvent):void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, deleteFeed); stmt.text = sql.posts.deleteByFeedId; stmt.parameters[":feed_id"] = feedId; stmt.execute(); } private function deleteFeed(e:SQLEvent):void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, dispatchEmptyResultEvent); stmt.text = sql.feeds.deleteByFeedId; stmt.parameters[":feed_id"] = feedId; stmt.execute(); } } }