tizen beta release
[framework/web/webkit-efl.git] / debian / tmp / usr / share / ewebkit-0 / webinspector / Database.js
1 /*
2  * Copyright (C) 2007, 2008 Apple Inc.  All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1.  Redistributions of source code must retain the above copyright
9  *     notice, this list of conditions and the following disclaimer.
10  * 2.  Redistributions in binary form must reproduce the above copyright
11  *     notice, this list of conditions and the following disclaimer in the
12  *     documentation and/or other materials provided with the distribution.
13  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
14  *     its contributors may be used to endorse or promote products derived
15  *     from this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28
29 /**
30  * @constructor
31  */
32 WebInspector.Database = function(id, domain, name, version)
33 {
34     this._id = id;
35     this._domain = domain;
36     this._name = name;
37     this._version = version;
38 }
39
40 WebInspector.Database.prototype = {
41     get id()
42     {
43         return this._id;
44     },
45
46     get name()
47     {
48         return this._name;
49     },
50
51     set name(x)
52     {
53         this._name = x;
54     },
55
56     get version()
57     {
58         return this._version;
59     },
60
61     set version(x)
62     {
63         this._version = x;
64     },
65
66     get domain()
67     {
68         return this._domain;
69     },
70
71     set domain(x)
72     {
73         this._domain = x;
74     },
75
76     get displayDomain()
77     {
78         return WebInspector.Resource.prototype.__lookupGetter__("displayDomain").call(this);
79     },
80
81     getTableNames: function(callback)
82     {
83         function sortingCallback(error, names)
84         {
85             if (!error)
86                 callback(names.sort());
87         }
88         DatabaseAgent.getDatabaseTableNames(this._id, sortingCallback);
89     },
90
91     executeSql: function(query, onSuccess, onError)
92     {
93         function callback(error, success, transactionId)
94         {
95             if (error) {
96                 onError(error);
97                 return;
98             }
99             if (!success) {
100                 onError(WebInspector.UIString("Database not found."));
101                 return;
102             }
103             WebInspector.DatabaseDispatcher._callbacks[transactionId] = {"onSuccess": onSuccess, "onError": onError};
104         }
105         DatabaseAgent.executeSQL(this._id, query, callback);
106     }
107 }
108
109 /**
110  * @constructor
111  * @implements {DatabaseAgent.Dispatcher}
112  */
113 WebInspector.DatabaseDispatcher = function()
114 {
115 }
116
117 WebInspector.DatabaseDispatcher._callbacks = {};
118
119 WebInspector.DatabaseDispatcher.prototype = {
120     addDatabase: function(payload)
121     {
122         var database = new WebInspector.Database(
123             payload.id,
124             payload.domain,
125             payload.name,
126             payload.version);
127         WebInspector.panels.resources.addDatabase(database);
128     },
129
130     sqlTransactionSucceeded: function(transactionId, columnNames, values)
131     {
132         if (!WebInspector.DatabaseDispatcher._callbacks[transactionId])
133             return;
134
135         var callback = WebInspector.DatabaseDispatcher._callbacks[transactionId].onSuccess;
136         delete WebInspector.DatabaseDispatcher._callbacks[transactionId];
137         if (callback)
138             callback(columnNames, values);
139     },
140
141     sqlTransactionFailed: function(transactionId, errorObj)
142     {
143         if (!WebInspector.DatabaseDispatcher._callbacks[transactionId])
144             return;
145
146         var callback = WebInspector.DatabaseDispatcher._callbacks[transactionId].onError;
147         delete WebInspector.DatabaseDispatcher._callbacks[transactionId];
148         if (callback)
149              callback(errorObj);
150     }
151 }
152
153 InspectorBackend.registerDatabaseDispatcher(new WebInspector.DatabaseDispatcher());