package com.adobe.arise.database { import flash.data.SQLConnection; import flash.data.SQLStatement; import flash.events.SQLEvent; public class InitializeDatabase extends DBOperation { public function InitializeDatabase(responder:DatabaseResponder, sql:XML, connection:SQLConnection) { super(responder, sql, connection); } public function execute():void { createFeedTable(); } private function createFeedTable():void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, createPostTable); stmt.text = sql.feeds.create; stmt.execute(); } private function createPostTable(e:SQLEvent):void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, createAuthorTable); stmt.text = sql.posts.create; stmt.execute(); } private function createAuthorTable(e:SQLEvent):void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, createTopicTable); stmt.text = sql.authors.create; stmt.execute(); } private function createTopicTable(e:SQLEvent):void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, dispatchEmptyResultEvent); stmt.text = sql.topics.create; stmt.execute(); } } }