diff options
author | Egil Moeller <egil.moller@freecode.no> | 2010-03-22 00:16:53 +0100 |
---|---|---|
committer | Egil Moeller <egil.moller@freecode.no> | 2010-03-22 00:16:53 +0100 |
commit | fc00cfedd6c25d1634a1e0d28a7b7bc5f42e1cd7 (patch) | |
tree | 928419d6bfe794865e4b8f0634bd792f795c4b8a /trunk/infrastructure/framework-src/modules/sqlbase/sqlbase.js | |
parent | 0fdab3db005c4fa31fb8306b573c0b35073d3e56 (diff) | |
parent | d56b9b3b82cdebcaeb00eec0fcb4326ad21adaa8 (diff) | |
download | etherpad-fc00cfedd6c25d1634a1e0d28a7b7bc5f42e1cd7.tar.gz etherpad-fc00cfedd6c25d1634a1e0d28a7b7bc5f42e1cd7.tar.xz etherpad-fc00cfedd6c25d1634a1e0d28a7b7bc5f42e1cd7.zip |
Merge branch 'master' into plugin-framework
Diffstat (limited to 'trunk/infrastructure/framework-src/modules/sqlbase/sqlbase.js')
-rw-r--r-- | trunk/infrastructure/framework-src/modules/sqlbase/sqlbase.js | 205 |
1 files changed, 0 insertions, 205 deletions
diff --git a/trunk/infrastructure/framework-src/modules/sqlbase/sqlbase.js b/trunk/infrastructure/framework-src/modules/sqlbase/sqlbase.js deleted file mode 100644 index 3df1a0f..0000000 --- a/trunk/infrastructure/framework-src/modules/sqlbase/sqlbase.js +++ /dev/null @@ -1,205 +0,0 @@ -/** - * Copyright 2009 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS-IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import("jsutils.*"); -import("sqlbase.sqlcommon"); -import("fastJSON"); -import("timer"); - -jimport("java.lang.System.out.println"); - -function _sqlbase() { - return sqlcommon.getSqlBase(); -} - -/** - * Creates a SQL table suitable for storing a mapping from String to JSON value. - * Maximum key length is 128 characters. Has no effect if the table already exists. - */ -function createJSONTable(tableName) { - _sqlbase().createJSONTable(String(tableName)); -} - -/** - * Retrieves a JavaScript object or value from a table. Returns undefined - * if there is no mapping for the given string key. Requires that the table - * exist. - */ -function getJSON(tableName, stringKey) { - var result = _sqlbase().getJSON(String(tableName), String(stringKey)); - if (result) { - - return fastJSON.parse(String(result))['x']; - - /* performance-testing JSON - var obj1 = timer.time("JSON.parse (json2)", function() { - return JSON.parse(String(result))['x']; - }); - var obj2 = timer.time("JSON.parse (fastJSON)", function() { - return fastJSON.parse(String(result))['x']; - }); - return obj2; - */ - } - return undefined; -} - -function getAllJSON(tableName, start, count) { - var result = _sqlbase().getAllJSON(String(tableName), Number(start), Number(count)); - return Array.prototype.map.call(result, function(x) { - return {id: x.id(), value: fastJSON.parse(String(x.value()))['x']}; - }) -} - -function getAllJSONKeys(tableName) { - var result = _sqlbase().getAllJSONKeys(String(tableName)); - return Array.prototype.map.call(result, function(x) { return String(x); }); -} - -/** - * Assigns a JavaScript object or primitive value to a string key in a table. - * Maximum key length is 128 characters. Requires that the table exist. - */ -function putJSON(tableName, stringKey, objectOrValue) { - var obj = ({x:objectOrValue}); - - var json = fastJSON.stringify(obj); - - /* performance-testing JSON - - var json1 = timer.time("JSON.stringify (json2)", function() { - return JSON.stringify(obj); - }); - var json2 = timer.time("JSON.stringify (fastJSON)", function() { - return fastJSON.stringify(obj); - }); - - if (json1 != json2) { - println("json strings do not match!"); - println("\n\n"); - println(json1); - println("\n"); - println(json2); - println("\n\n"); - }*/ - - _sqlbase().putJSON(String(tableName), String(stringKey), json); -} - -/** - * Removes the mapping for a string key from a table. Requires that the table - * exist. - */ -function deleteJSON(tableName, stringKey) { - _sqlbase().deleteJSON(String(tableName), String(stringKey)); -} - -/** - * Creates a SQL table suitable for storing a mapping from (key,n) to string. - * The mapping may be sparse, but storage is most efficient when n are consecutive. - * The "length" of the array is not stored and must be externally maintained. - * Maximum key length is 128 characters. This call has no effect if the table - * already exists. - */ -function createStringArrayTable(tableName) { - _sqlbase().createStringArrayTable(String(tableName)); -} - -/** - * Assigns a string value to a (key,n) pair in a StringArray table. Maximum key length - * is 128 characters. Requires that the table exist. - */ -function putStringArrayElement(tableName, stringKey, n, value) { - _sqlbase().putStringArrayElement(String(tableName), String(stringKey), - Number(n), String(value)); -} - -/** - * Equivalent to a series of consecutive puts of the elements of valueArray, with the first - * one going to n=startN, the second to n=startN+1, and so on, but much more efficient. - */ -function putConsecutiveStringArrayElements(tableName, stringKey, startN, valueArray) { - var putter = _sqlbase().putMultipleStringArrayElements(String(tableName), String(stringKey)); - for(var i=0;i<valueArray.length;i++) { - putter.put(Number(startN)+i, String(valueArray[i])); - } - putter.finish(); -} - -/** - * Equivalent to a series of puts of the (key,value) entries of the JavaScript object - * nToValue, using as few database operations as possible. - */ -function putDictStringArrayElements(tableName, stringKey, nToValue) { - var nArray = []; - for(var n in nToValue) { - nArray.push(n); - } - nArray.sort(function(a,b) { return Number(a) - Number(b); }); - - var putter = _sqlbase().putMultipleStringArrayElements(String(tableName), String(stringKey)); - nArray.forEach(function(n) { - putter.put(Number(n), String(nToValue[n])); - }); - putter.finish(); -} - -/** - * Retrieves a string value from a StringArray table. Returns undefined - * if there is no mapping for the given (key,n) pair. Requires that the table - * exist. - */ -function getStringArrayElement(tableName, stringKey, n) { - var result = _sqlbase().getStringArrayElement(String(tableName), - String(stringKey), Number(n)); - if (result) { - return String(result); - } - return undefined; -} - -/** - * Retrieves all values from the database page that contains the mapping for n. - * Properties are added to destMap for n, if present in the database, and any other - * numeric entries in the same page. No return value. - */ -function getPageStringArrayElements(tableName, stringKey, n, destMap) { - var array = _sqlbase().getPageStringArrayElements(String(tableName), String(stringKey), n); - for(var i=0;i<array.length;i++) { - var entry = array[i]; - destMap[entry.index()] = String(entry.value()); - } -} - -/** - * Removes the mapping for a (key,n) pair from a StringArray table. Requires that the table - * exist. - */ -function deleteStringArrayElement(tableName, stringKey, n) { - _sqlbase().putStringArrayElement(String(tableName), String(stringKey), Number(n), null); -} - -/** - * Removes all mappings and metadata associated with a given key in a table. - */ -function clearStringArray(tableName, stringKey) { - _sqlbase().clearStringArray(String(tableName), stringKey); -} - -function getStringArrayAllKeys(tableName) { - var result = _sqlbase().getStringArrayAllKeys(String(tableName)); - return Array.prototype.map.call(result, function(x) { return String(x); }); -} |