aboutsummaryrefslogtreecommitdiffstats
path: root/trunk/infrastructure/framework-src/modules
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--infrastructure/framework-src/modules/atomfeed.js (renamed from trunk/infrastructure/framework-src/modules/atomfeed.js)0
-rw-r--r--infrastructure/framework-src/modules/blob.js (renamed from trunk/infrastructure/framework-src/modules/blob.js)0
-rw-r--r--infrastructure/framework-src/modules/cache_utils.js (renamed from trunk/infrastructure/framework-src/modules/cache_utils.js)0
-rw-r--r--infrastructure/framework-src/modules/comet.js (renamed from trunk/infrastructure/framework-src/modules/comet.js)0
-rw-r--r--infrastructure/framework-src/modules/dateutils.js (renamed from trunk/infrastructure/framework-src/modules/dateutils.js)0
-rw-r--r--infrastructure/framework-src/modules/dispatch.js (renamed from trunk/infrastructure/framework-src/modules/dispatch.js)0
-rw-r--r--infrastructure/framework-src/modules/email.js (renamed from trunk/infrastructure/framework-src/modules/email.js)0
-rw-r--r--infrastructure/framework-src/modules/exceptionutils.js (renamed from trunk/infrastructure/framework-src/modules/exceptionutils.js)0
-rw-r--r--infrastructure/framework-src/modules/fastJSON.js (renamed from trunk/infrastructure/framework-src/modules/fastJSON.js)0
-rw-r--r--infrastructure/framework-src/modules/fileutils.js (renamed from trunk/infrastructure/framework-src/modules/fileutils.js)0
-rw-r--r--infrastructure/framework-src/modules/funhtml.js (renamed from trunk/infrastructure/framework-src/modules/funhtml.js)0
-rw-r--r--infrastructure/framework-src/modules/global/appjet.js (renamed from trunk/infrastructure/framework-src/modules/global/appjet.js)0
-rw-r--r--infrastructure/framework-src/modules/global/request.js (renamed from trunk/infrastructure/framework-src/modules/global/request.js)0
-rw-r--r--infrastructure/framework-src/modules/global/response.js (renamed from trunk/infrastructure/framework-src/modules/global/response.js)0
-rw-r--r--infrastructure/framework-src/modules/image.js (renamed from trunk/infrastructure/framework-src/modules/image.js)0
-rw-r--r--infrastructure/framework-src/modules/jsutils.js (renamed from trunk/infrastructure/framework-src/modules/jsutils.js)0
-rw-r--r--infrastructure/framework-src/modules/netutils.js (renamed from trunk/infrastructure/framework-src/modules/netutils.js)0
-rw-r--r--infrastructure/framework-src/modules/profiler.js (renamed from trunk/infrastructure/framework-src/modules/profiler.js)0
-rw-r--r--infrastructure/framework-src/modules/sessions.js (renamed from trunk/infrastructure/framework-src/modules/sessions.js)0
-rw-r--r--infrastructure/framework-src/modules/sqlbase/persistent_vars.js (renamed from trunk/infrastructure/framework-src/modules/sqlbase/persistent_vars.js)0
-rw-r--r--infrastructure/framework-src/modules/sqlbase/sqlbase.js (renamed from trunk/infrastructure/framework-src/modules/sqlbase/sqlbase.js)0
-rw-r--r--infrastructure/framework-src/modules/sqlbase/sqlcommon.js (renamed from trunk/infrastructure/framework-src/modules/sqlbase/sqlcommon.js)0
-rw-r--r--infrastructure/framework-src/modules/stringutils.js (renamed from trunk/infrastructure/framework-src/modules/stringutils.js)0
-rw-r--r--infrastructure/framework-src/modules/sync.js (renamed from trunk/infrastructure/framework-src/modules/sync.js)0
-rw-r--r--infrastructure/framework-src/modules/timer.js (renamed from trunk/infrastructure/framework-src/modules/timer.js)0
-rw-r--r--infrastructure/framework-src/modules/varz.js (renamed from trunk/infrastructure/framework-src/modules/varz.js)0
-rw-r--r--infrastructure/framework-src/modules/yuicompressor.js (renamed from trunk/infrastructure/framework-src/modules/yuicompressor.js)0
-rw-r--r--trunk/infrastructure/framework-src/modules/ejs.js471
-rw-r--r--trunk/infrastructure/framework-src/modules/execution.js58
-rw-r--r--trunk/infrastructure/framework-src/modules/faststatic.js318
-rw-r--r--trunk/infrastructure/framework-src/modules/sqlbase/sqlobj.js505
31 files changed, 0 insertions, 1352 deletions
diff --git a/trunk/infrastructure/framework-src/modules/atomfeed.js b/infrastructure/framework-src/modules/atomfeed.js
index 4b86eeb..4b86eeb 100644
--- a/trunk/infrastructure/framework-src/modules/atomfeed.js
+++ b/infrastructure/framework-src/modules/atomfeed.js
diff --git a/trunk/infrastructure/framework-src/modules/blob.js b/infrastructure/framework-src/modules/blob.js
index af788a0..af788a0 100644
--- a/trunk/infrastructure/framework-src/modules/blob.js
+++ b/infrastructure/framework-src/modules/blob.js
diff --git a/trunk/infrastructure/framework-src/modules/cache_utils.js b/infrastructure/framework-src/modules/cache_utils.js
index f2a360c..f2a360c 100644
--- a/trunk/infrastructure/framework-src/modules/cache_utils.js
+++ b/infrastructure/framework-src/modules/cache_utils.js
diff --git a/trunk/infrastructure/framework-src/modules/comet.js b/infrastructure/framework-src/modules/comet.js
index 2331f8b..2331f8b 100644
--- a/trunk/infrastructure/framework-src/modules/comet.js
+++ b/infrastructure/framework-src/modules/comet.js
diff --git a/trunk/infrastructure/framework-src/modules/dateutils.js b/infrastructure/framework-src/modules/dateutils.js
index 72e87c8..72e87c8 100644
--- a/trunk/infrastructure/framework-src/modules/dateutils.js
+++ b/infrastructure/framework-src/modules/dateutils.js
diff --git a/trunk/infrastructure/framework-src/modules/dispatch.js b/infrastructure/framework-src/modules/dispatch.js
index e7e3ef0..e7e3ef0 100644
--- a/trunk/infrastructure/framework-src/modules/dispatch.js
+++ b/infrastructure/framework-src/modules/dispatch.js
diff --git a/trunk/infrastructure/framework-src/modules/email.js b/infrastructure/framework-src/modules/email.js
index 2d81dc3..2d81dc3 100644
--- a/trunk/infrastructure/framework-src/modules/email.js
+++ b/infrastructure/framework-src/modules/email.js
diff --git a/trunk/infrastructure/framework-src/modules/exceptionutils.js b/infrastructure/framework-src/modules/exceptionutils.js
index b572a3a..b572a3a 100644
--- a/trunk/infrastructure/framework-src/modules/exceptionutils.js
+++ b/infrastructure/framework-src/modules/exceptionutils.js
diff --git a/trunk/infrastructure/framework-src/modules/fastJSON.js b/infrastructure/framework-src/modules/fastJSON.js
index 3198b96..3198b96 100644
--- a/trunk/infrastructure/framework-src/modules/fastJSON.js
+++ b/infrastructure/framework-src/modules/fastJSON.js
diff --git a/trunk/infrastructure/framework-src/modules/fileutils.js b/infrastructure/framework-src/modules/fileutils.js
index aaf12e2..aaf12e2 100644
--- a/trunk/infrastructure/framework-src/modules/fileutils.js
+++ b/infrastructure/framework-src/modules/fileutils.js
diff --git a/trunk/infrastructure/framework-src/modules/funhtml.js b/infrastructure/framework-src/modules/funhtml.js
index c27b667..c27b667 100644
--- a/trunk/infrastructure/framework-src/modules/funhtml.js
+++ b/infrastructure/framework-src/modules/funhtml.js
diff --git a/trunk/infrastructure/framework-src/modules/global/appjet.js b/infrastructure/framework-src/modules/global/appjet.js
index 135ac44..135ac44 100644
--- a/trunk/infrastructure/framework-src/modules/global/appjet.js
+++ b/infrastructure/framework-src/modules/global/appjet.js
diff --git a/trunk/infrastructure/framework-src/modules/global/request.js b/infrastructure/framework-src/modules/global/request.js
index a4327f9..a4327f9 100644
--- a/trunk/infrastructure/framework-src/modules/global/request.js
+++ b/infrastructure/framework-src/modules/global/request.js
diff --git a/trunk/infrastructure/framework-src/modules/global/response.js b/infrastructure/framework-src/modules/global/response.js
index 7236920..7236920 100644
--- a/trunk/infrastructure/framework-src/modules/global/response.js
+++ b/infrastructure/framework-src/modules/global/response.js
diff --git a/trunk/infrastructure/framework-src/modules/image.js b/infrastructure/framework-src/modules/image.js
index 8aec74b..8aec74b 100644
--- a/trunk/infrastructure/framework-src/modules/image.js
+++ b/infrastructure/framework-src/modules/image.js
diff --git a/trunk/infrastructure/framework-src/modules/jsutils.js b/infrastructure/framework-src/modules/jsutils.js
index 02f81a2..02f81a2 100644
--- a/trunk/infrastructure/framework-src/modules/jsutils.js
+++ b/infrastructure/framework-src/modules/jsutils.js
diff --git a/trunk/infrastructure/framework-src/modules/netutils.js b/infrastructure/framework-src/modules/netutils.js
index 6616b76..6616b76 100644
--- a/trunk/infrastructure/framework-src/modules/netutils.js
+++ b/infrastructure/framework-src/modules/netutils.js
diff --git a/trunk/infrastructure/framework-src/modules/profiler.js b/infrastructure/framework-src/modules/profiler.js
index 223c197..223c197 100644
--- a/trunk/infrastructure/framework-src/modules/profiler.js
+++ b/infrastructure/framework-src/modules/profiler.js
diff --git a/trunk/infrastructure/framework-src/modules/sessions.js b/infrastructure/framework-src/modules/sessions.js
index 3d0041b..3d0041b 100644
--- a/trunk/infrastructure/framework-src/modules/sessions.js
+++ b/infrastructure/framework-src/modules/sessions.js
diff --git a/trunk/infrastructure/framework-src/modules/sqlbase/persistent_vars.js b/infrastructure/framework-src/modules/sqlbase/persistent_vars.js
index 1c4cc95..1c4cc95 100644
--- a/trunk/infrastructure/framework-src/modules/sqlbase/persistent_vars.js
+++ b/infrastructure/framework-src/modules/sqlbase/persistent_vars.js
diff --git a/trunk/infrastructure/framework-src/modules/sqlbase/sqlbase.js b/infrastructure/framework-src/modules/sqlbase/sqlbase.js
index 3df1a0f..3df1a0f 100644
--- a/trunk/infrastructure/framework-src/modules/sqlbase/sqlbase.js
+++ b/infrastructure/framework-src/modules/sqlbase/sqlbase.js
diff --git a/trunk/infrastructure/framework-src/modules/sqlbase/sqlcommon.js b/infrastructure/framework-src/modules/sqlbase/sqlcommon.js
index 360f5e2..360f5e2 100644
--- a/trunk/infrastructure/framework-src/modules/sqlbase/sqlcommon.js
+++ b/infrastructure/framework-src/modules/sqlbase/sqlcommon.js
diff --git a/trunk/infrastructure/framework-src/modules/stringutils.js b/infrastructure/framework-src/modules/stringutils.js
index 3fe5611..3fe5611 100644
--- a/trunk/infrastructure/framework-src/modules/stringutils.js
+++ b/infrastructure/framework-src/modules/stringutils.js
diff --git a/trunk/infrastructure/framework-src/modules/sync.js b/infrastructure/framework-src/modules/sync.js
index a222ea0..a222ea0 100644
--- a/trunk/infrastructure/framework-src/modules/sync.js
+++ b/infrastructure/framework-src/modules/sync.js
diff --git a/trunk/infrastructure/framework-src/modules/timer.js b/infrastructure/framework-src/modules/timer.js
index 01be175..01be175 100644
--- a/trunk/infrastructure/framework-src/modules/timer.js
+++ b/infrastructure/framework-src/modules/timer.js
diff --git a/trunk/infrastructure/framework-src/modules/varz.js b/infrastructure/framework-src/modules/varz.js
index 0e55d20..0e55d20 100644
--- a/trunk/infrastructure/framework-src/modules/varz.js
+++ b/infrastructure/framework-src/modules/varz.js
diff --git a/trunk/infrastructure/framework-src/modules/yuicompressor.js b/infrastructure/framework-src/modules/yuicompressor.js
index 572cc0d..572cc0d 100644
--- a/trunk/infrastructure/framework-src/modules/yuicompressor.js
+++ b/infrastructure/framework-src/modules/yuicompressor.js
diff --git a/trunk/infrastructure/framework-src/modules/ejs.js b/trunk/infrastructure/framework-src/modules/ejs.js
deleted file mode 100644
index bf14ed3..0000000
--- a/trunk/infrastructure/framework-src/modules/ejs.js
+++ /dev/null
@@ -1,471 +0,0 @@
-/*--------------------------------------------------------------------------
- * EJS - Embedded JavaScript, version 0.1.0
- * Copyright (c) 2007 Edward Benson
- * http://www.edwardbenson.com/projects/ejs
- * ------------------------------------------------------------------------
- *
- * EJS is freely distributable under the terms of an MIT-style license.
- *
- * EJS is a client-side preprocessing engine written in and for JavaScript.
- * If you have used PHP, ASP, JSP, or ERB then you get the idea: code embedded
- * in <% // Code here %> tags will be executed, and code embedded in <%= .. %>
- * tags will be evaluated and appended to the output.
- *
- * This is essentially a direct JavaScript port of Masatoshi Seki's erb.rb
- * from the Ruby Core, though it contains a subset of ERB's functionality.
- *
- * Requirements:
- * prototype.js
- *
- * Usage:
- * // source should be either a string or a DOM node whose innerHTML
- * // contains EJB source.
- * var source = "<% var ejb="EJB"; %><h1>Hello, <%= ejb %>!</h1>";
- * var compiler = new EjsCompiler(source);
- * compiler.compile();
- * var output = eval(compiler.out);
- * alert(output); // -> "<h1>Hello, EJB!</h1>"
- *
- * For a demo: see demo.html
- * For the license: see license.txt
- *
- *--------------------------------------------------------------------------*/
-
-import("jsutils.*");
-import("funhtml");
-
-jimport("java.lang.System.out.println");
-jimport("net.appjet.ajstdlib.execution.executeCodeInNewScope");
-
-/* Make a split function like Ruby's: "abc".split(/b/) -> ['a', 'b', 'c'] */
-function rsplit(x, regex) {
- var item = x;
- var result = regex.exec(item);
- var retArr = new Array();
- while (result != null)
- {
- var first_idx = result.index;
- var last_idx = regex.lastIndex;
- if ((first_idx) != 0)
- {
- var first_bit = item.substring(0,first_idx);
- retArr.push(item.substring(0,first_idx));
- item = item.slice(first_idx);
- }
- retArr.push(result[0]);
- item = item.slice(result[0].length);
- result = regex.exec(item);
- }
- if (! item == '')
- {
- retArr.push(item);
- }
- return retArr;
-};
-
-/* Chop is nice to have too */
-function chop(x) {
- return x.substr(0, x.length - 1);
-}
-
-/* Adaptation from the Scanner of erb.rb */
-var EjsScanner = function(source, left, right) {
- this.left_delimiter = left +'%'; //<%
- this.right_delimiter = '%'+right; //>
- this.double_left = left+'%%';
- this.double_right = '%%'+right;
- this.left_equal = left+'%=';
- this.left_comment = left+'%#';
- if(left=='[') {
- this.SplitRegexp = /(\[%%)|(%%\])|(\[%=)|(\[%#)|(\[%)|(%\]\n)|(%\])|(\n)/;
- }
- else {
- this.SplitRegexp = new RegExp('('+this.double_left+')|(%%'+this.double_right+')|('+this.left_equal+')|('+this.left_comment+')|('+this.left_delimiter+')|('+this.right_delimiter+'\n)|('+this.right_delimiter+')|(\n)')
- }
-
- this.source = source;
- this.stag = null;
- this.lines = 0;
-};
-EjsView = function(data) {
- this.data = data;
-};
-EjsView.prototype.partial = function(options, data){
- if(!data) data = this.data;
- return new EJS(options).render(data);
-};
-
-EjsScanner.to_text = function(input){
- if(input == null || input === undefined)
- return '';
- if(input instanceof Date)
- return input.toDateString();
- if(input.toString)
- return input.toString();
- return '';
-}
-
-EjsScanner.prototype = {
-
- /* For each line, scan! */
- scan: function(block) {
- scanline = this.scanline;
- regex = this.SplitRegexp;
- if (! this.source == '')
- {
- var source_split = rsplit(this.source, /\n/);
- for(var i=0; i<source_split.length; i++) {
- var item = source_split[i];
- this.scanline(item, regex, block);
- }
- }
- },
-
- /* For each token, block! */
- scanline: function(line, regex, block) {
- this.lines++;
- var line_split = rsplit(line, regex);
- for(var i=0; i<line_split.length; i++) {
- var token = line_split[i];
- if (token != null) {
- try{
- block(token, this);
- }catch(e){
- throw {type: 'EjsScanner', line: this.lines};
- }
- }
- }
- }
-};
-
-/* Adaptation from the Buffer of erb.rb */
-var EjsBuffer = function(pre_cmd, post_cmd) {
- this.line = new Array();
- this.script = "";
- this.pre_cmd = pre_cmd;
- this.post_cmd = post_cmd;
-
- for (var i=0; i<this.pre_cmd.length; i++)
- {
- this.push(pre_cmd[i]);
- }
-}
-EjsBuffer.prototype = {
-
- push: function(cmd) {
- this.line.push(cmd);
- },
-
- cr: function() {
- this.script = this.script + this.line.join('; ');
- this.line = new Array();
- this.script = this.script + "\n";
- },
-
- close: function() {
- if (this.line.length > 0)
- {
- for (var i=0; i<this.post_cmd.length; i++)
- {
- this.push(pre_cmd[i]);
- }
- this.script = this.script + this.line.join('; ');
- line = null;
- }
- }
-
-};
-
-/* Adaptation from the Compiler of erb.rb */
-EjsCompiler = function(source, left) {
- this.pre_cmd = ['var ___ejsO = "";'];
- this.post_cmd = new Array();
- this.source = ' ';
- if (source != null)
- {
- if (typeof source == 'string')
- {
- source = source.replace(/\r\n/g, "\n");
- source = source.replace(/\r/g, "\n");
- this.source = source;
- }
- else if (source.innerHTML)
- {
- this.source = source.innerHTML;
- }
- if (typeof this.source != 'string')
- {
- this.source = "";
- }
- }
- left = left || '<'
- var right = '>'
- switch(left) {
- case '[':
- right = ']'
- break;
- case '<':
- break;
- default:
- throw left+' is not a supported deliminator'
- break;
- }
- this.scanner = new EjsScanner(this.source, left, right);
- this.out = '';
-}
-EjsCompiler.prototype = {
- compile: function(options) {
- options = options || {};
- this.out = '';
- var put_cmd = "___ejsO += ";
- var insert_cmd = put_cmd;
- var buff = new EjsBuffer(this.pre_cmd, this.post_cmd);
- var content = '';
- var clean = function(content)
- {
- content = content.replace(/\\/g, '\\\\');
- content = content.replace(/\n/g, '\\n');
- content = content.replace(/\"/g, '\\"');
- return content;
- };
- this.scanner.scan(function(token, scanner) {
- if (scanner.stag == null)
- {
- //alert(token+'|'+(token == "\n"))
- switch(token) {
- case '\n':
- content = content + "\n";
- buff.push(put_cmd + '"' + clean(content) + '";');
- buff.cr();
- content = '';
- break;
- case scanner.left_delimiter:
- case scanner.left_equal:
- case scanner.left_comment:
- scanner.stag = token;
- if (content.length > 0)
- {
- // Chould be content.dump in Ruby
-
- buff.push(put_cmd + '"' + clean(content) + '"');
- }
- content = '';
- break;
- case scanner.double_left:
- content = content + scanner.left_delimiter;
- break;
- default:
- content = content + token;
- break;
- }
- }
- else {
- switch(token) {
- case scanner.right_delimiter:
- switch(scanner.stag) {
- case scanner.left_delimiter:
- if (content[content.length - 1] == '\n')
- {
- content = chop(content);
- buff.push(content);
- buff.cr();
- }
- else {
- buff.push(content);
- }
- break;
- case scanner.left_equal:
- buff.push(insert_cmd + "(EjsScanner.to_text(" + content + "))");
- break;
- }
- scanner.stag = null;
- content = '';
- break;
- case scanner.double_right:
- content = content + scanner.right_delimiter;
- break;
- default:
- content = content + token;
- break;
- }
- }
- });
- if (content.length > 0)
- {
- // Chould be content.dump in Ruby
- buff.push(put_cmd + '"' + clean(content) + '"');
- }
- buff.close();
- this.out = buff.script + ";";
- var to_be_evaled = [
- 'var process = function(_CONTEXT,_VIEW) {',
- ' with(_VIEW) {',
- ' with (_CONTEXT) {',
- this.out,
- ' return ___ejsO;',
- ' }',
- ' }',
- '};'
- ].join('');
- // make funhtml.* available in parent scope.
- var parentScope = {};
- parentScope.EjsScanner = EjsScanner;
- keys(funhtml).forEach(function(k) {
- parentScope[k] = funhtml[k];
- });
- var ret = executeCodeInNewScope(
- parentScope,
- to_be_evaled,
- (options.name || "template"),
- 1
- );
- this.process = ret.process;
- }
-}
-
-
-//type, cache, folder
-EJS = function( options ){
- this.set_options(options);
-
- if(options.url){
- var template = EJS.get(options.url, this.cache);
- if (template) return template;
- if (template == EJS.INVALID_PATH) return null;
- this.text = EJS.request(options.url);
- if(this.text == null){
- //EJS.update(options.url, this.INVALID_PATH);
- throw 'There is no template at '+options.url;
- }
- this.name = options.url;
- }else if(options.element)
- {
- if(typeof options.element == 'string'){
- var name = options.element;
- options.element = document.getElementById( options.element );
- if(options.element == null) throw name+'does not exist!';
- }
- if(options.element.value){
- this.text = options.element.value;
- }else{
- this.text = options.element.innerHTML;
- }
- this.name = options.element.id;
- this.type = '[';
- }
- var template = new EjsCompiler(this.text, this.type);
-
- template.compile(options);
-
-
- EJS.update(this.name, this);
- this.template = template;
-};
-EJS.config = function(options){
- EJS.cache = options.cache != null ? options.cache : EJS.cache;
- EJS.type = options.type != null ? options.type : EJS.type;
- var templates_directory = {}; //nice and private container
-
- EJS.get = function(path, cache){
- if(cache == false) return null;
- if(templates_directory[path]) return templates_directory[path];
- return null;
- };
-
- EJS.update = function(path, template) {
- if(path == null) return;
- templates_directory[path] = template;
- };
-
- EJS.INVALID_PATH = -1;
-
-
-};
-EJS.config( {cache: true, type: '<' } );
-
-EJS.prototype = {
- render : function(object){
- var v = new EjsView(object);
- return this.template.process.call(v, object, v);
- },
- out : function(){
- return this.template.out;
- },
- set_options : function(options){
- this.type = options.type != null ? options.type : EJS.type;
- this.cache = options.cache != null ? options.cache : EJS.cache;
- this.text = options.text != null ? options.text : null;
- this.name = options.name != null ? options.name : null;
- },
- // called without options, returns a function that takes the object
- // called with options being a string, uses that as a url
- // called with options as an object
- update : function(element, options){
- if(typeof element == 'string'){
- element = document.getElementById(element);
- }
- if(options == null){
- _template = this;
- return function(object){
- EJS.prototype.update.call(_template, element, object);
- };
- }
- if(typeof options == 'string'){
- params = {};
- params.url = options;
- _template = this;
- params.onComplete = function(request){
- var object = eval( request.responseText );
- EJS.prototype.update.call(_template, element, object);
- };
- EJS.ajax_request(params);
- }else
- {
- element.innerHTML = this.render(options);
- }
- }
-};
-
- EJS.newRequest = function(){
- var factories = [function() { return new ActiveXObject("Msxml2.XMLHTTP"); },function() { return new XMLHttpRequest(); },function() { return new ActiveXObject("Microsoft.XMLHTTP"); }];
- for(var i = 0; i < factories.length; i++) {
- try {
- var request = factories[i]();
- if (request != null) return request;
- }
- catch(e) { continue;}
- }
- };
-
- EJS.request = function(path){
- var request = new EJS.newRequest();
- request.open("GET", path, false);
-
- try{request.send(null);}
- catch(e){return null;}
-
- if ( request.status == 404 || request.status == 2 ||(request.status == 0 && request.responseText == '') ) return null;
-
- return request.responseText
- };
- EJS.ajax_request = function(params){
- params.method = ( params.method ? params.method : 'GET');
-
- var request = new EJS.newRequest();
- request.onreadystatechange = function(){
- if(request.readyState == 4){
- if(request.status == 200){
- params.onComplete(request);
- }else
- {
- params.onComplete(request);
- }
- }
- };
- request.open(params.method, params.url);
- request.send(null);
- };
-
-//}
-
-
diff --git a/trunk/infrastructure/framework-src/modules/execution.js b/trunk/infrastructure/framework-src/modules/execution.js
deleted file mode 100644
index 1cec418..0000000
--- a/trunk/infrastructure/framework-src/modules/execution.js
+++ /dev/null
@@ -1,58 +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.{scalaF0,scalaF1}");
-
-/**
- * Asynchronously call a function as soon as the current request completes.
- **/
-function async(f) {
- Packages.net.appjet.ajstdlib.execution.runAsync(appjet.context, f);
-}
-
-function initTaskThreadPool(name, poolSize) {
- Packages.net.appjet.ajstdlib.execution.createNamedTaskThreadPool(name, poolSize);
-}
-
-function scheduleTask(poolName, taskName, delayMillis, args) {
- return Packages.net.appjet.ajstdlib.execution.scheduleTaskInPool(poolName, taskName, delayMillis, args);
-}
-
-function shutdownAndWaitOnTaskThreadPool(poolName, timeoutMillis) {
- return Packages.net.appjet.ajstdlib.execution.shutdownAndWaitOnTaskThreadPool(poolName, timeoutMillis);
-}
-
-function fancyAssEval(initCode, mainCode) {
- function init(runner) {
- Packages.net.appjet.bodylock.BodyLock.evaluateString(
- runner.globalScope(),
- initCode,
- "eval'd code imports",
- 1);
- }
- var runner = Packages.net.appjet.oui.ScopeReuseManager.getEmpty(scalaF1(init));
- var ec = new Packages.net.appjet.oui.ExecutionContext(
- new Packages.net.appjet.oui.RequestWrapper(request.underlying),
- null, runner);
- return Packages.net.appjet.oui.ExecutionContextUtils.withContext(ec,
- scalaF0(function() {
- return Packages.net.appjet.bodylock.BodyLock.evaluateString(
- runner.globalScope(),
- mainCode,
- "eval'd code main",
- 1);
- }));
-} \ No newline at end of file
diff --git a/trunk/infrastructure/framework-src/modules/faststatic.js b/trunk/infrastructure/framework-src/modules/faststatic.js
deleted file mode 100644
index 5cca676..0000000
--- a/trunk/infrastructure/framework-src/modules/faststatic.js
+++ /dev/null
@@ -1,318 +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.
- */
-
-/**
- * @fileOverview serving static files, including js and css, and cacheing
- * and minifying.
- *
- * Terminology Note:
- * "path" is confusing because paths can be part of URLs and part
- * of filesystem paths, and static files have both types of paths
- * associated with them. Therefore, in this module:
- *
- * LOCALDIR or LOCALFILE refers to directories or files on the filesystem.
- *
- * HREF is used to describe things that go in a URL.
- */
-
-import("fileutils.{readFile,readFileBytes}");
-import("yuicompressor");
-import("stringutils");
-import("varz");
-import("ejs.EJS");
-
-jimport("java.lang.System.out.println");
-
-//----------------------------------------------------------------
-// Content Type Guessing
-//----------------------------------------------------------------
-
-var _contentTypes = {
- 'gif': 'image/gif',
- 'png': 'image/png',
- 'jpg': 'image/jpeg',
- 'jpeg': 'image/jpeg',
- 'css': 'text/css',
- 'js': 'application/x-javascript',
- 'txt': 'text/plain',
- 'html': 'text/html; charset=utf-8',
- 'ico': 'image/x-icon',
- 'swf': 'application/x-shockwave-flash',
- 'zip': 'application/zip',
- 'xml': 'application/xml'
-};
-
-var _gzipableTypes = {
- 'text/css': true,
- 'application/x-javascript': true,
- 'text/html; charset=utf-8': true
-};
-
-function _guessContentType(path) {
- var ext = path.split('.').pop().toLowerCase();
- return _contentTypes[ext] || 'text/plain';
-}
-
-//----------------------------------------------------------------
-
-function _getCache(name) {
- var m = 'faststatic';
- if (!appjet.cache[m]) {
- appjet.cache[m] = {};
- }
- var c = appjet.cache[m];
- if (!c[name]) {
- c[name] = {};
- }
- return c[name];
-}
-
-var _mtimeCheckInterval = 5000; // 5 seconds
-
-function _getMTime(f) {
- var mcache = _getCache('mtimes');
- var now = +(new Date);
- if (appjet.config.devMode ||
- !(mcache[f] && (now - mcache[f].lastCheck < _mtimeCheckInterval))) {
- var jfile = new net.appjet.oui.JarVirtualFile(f);
- if (jfile.exists() && !jfile.isDirectory()) {
- mcache[f] = {
- lastCheck: now,
- mtime: jfile.lastModified()
- };
- } else {
- mcache[f] = null;
- }
- }
- if (mcache[f]) {
- return +mcache[f].mtime;
- } else {
- return null;
- }
-}
-
-function _wrapFile(localFile) {
- return {
- getPath: function() { return localFile; },
- getMTime: function() { return _getMTime(localFile); },
- getContents: function() { return _readFileAndProcess(localFile, 'string'); }
- };
-}
-
-function _readFileAndProcess(fileName, type) {
- if (fileName.slice(-8) == "_ejs.css") {
- // run CSS through EJS
- var template = readFile(fileName);
- var ejs = new EJS({text:template, name:fileName});
- var resultString = ejs.render({});
- if (type == 'bytes') {
- return new java.lang.String(resultString).getBytes("UTF-8");
- }
- else {
- return resultString;
- }
- }
- else if (type == 'string') {
- return readFile(fileName);
- }
- else if (type == 'bytes') {
- return readFileBytes(fileName);
- }
-}
-
-function _cachedFileBytes(f) {
- var mtime = _getMTime(f);
- if (!mtime) { return null; }
- var fcache = _getCache('file-bytes-cache');
- if (!(fcache[f] && (fcache[f].mtime == mtime))) {
- varz.incrementInt("faststatic-file-bytes-cache-miss");
- var bytes = _readFileAndProcess(f, 'bytes');
- if (bytes) {
- fcache[f] = {mtime: mtime, bytes: bytes};
- };
- }
- if (fcache[f] && fcache[f].bytes) {
- return fcache[f].bytes;
- } else {
- return null;
- }
-}
-
-function _shouldGzip(contentType) {
- var userAgent = request.headers["User-Agent"];
- if (! userAgent) return false;
- if (! (/Firefox/.test(userAgent) || /webkit/i.test(userAgent))) return false;
- if (! _gzipableTypes[contentType]) return false;
-
- return request.acceptsGzip;
-}
-
-function _getCachedGzip(original, key) {
- var c = _getCache("gzipped");
- if (! c[key] || ! java.util.Arrays.equals(c[key].original, original)) {
- c[key] = {original: original,
- gzip: stringutils.gzip(original)};
- }
- return c[key].gzip;
-}
-
-function _setGzipHeader() {
- response.setHeader("Content-Encoding", "gzip");
-}
-
-//----------------------------------------------------------------
-
-/**
- * Function for serving a single static file.
- */
-function singleFileServer(localPath, opts) {
- var contentType = _guessContentType(localPath);
-
- return function() {
- (opts.cache ? response.alwaysCache() : response.neverCache());
- response.setContentType(contentType);
- var bytes = _cachedFileBytes(localPath);
- if (bytes) {
- if (_shouldGzip(contentType)) {
- bytes = _getCachedGzip(bytes, "file:"+localPath);
- _setGzipHeader();
- }
- response.writeBytes(bytes);
- return true;
- } else {
- return false;
- }
- };
-}
-
-/**
- * valid opts:
- * alwaysCache: default false
- */
-function directoryServer(localDir, opts) {
- if (stringutils.endsWith(localDir, "/")) {
- localDir = localDir.substr(0, localDir.length-1);
- }
- return function(relpath) {
- if (stringutils.startsWith(relpath, "/")) {
- relpath = relpath.substr(1);
- }
- if (relpath.indexOf('..') != -1) {
- response.forbid();
- }
- (opts.cache ? response.alwaysCache() : response.neverCache());
- var contentType = _guessContentType(relpath);
- response.setContentType(contentType);
- var fullPath = localDir + "/" + relpath;
- var bytes = _cachedFileBytes(fullPath);
-
- if (bytes) {
- if (_shouldGzip(contentType)) {
- bytes = _getCachedGzip(bytes, "file:"+fullPath);
- _setGzipHeader();
- }
- response.writeBytes(bytes);
- return true;
- } else {
- return false;
- }
- };
-}
-
-/**
- * Serves cat files, which are concatenated versions of many files.
- */
-function compressedFileServer(opts) {
- var cfcache = _getCache('compressed-files');
- return function() {
- var key = request.path.split('/').slice(-1)[0];
- var contentType = _guessContentType(request.path);
- response.setContentType(contentType);
- response.alwaysCache();
- var data = cfcache[key];
- if (data) {
- if (_shouldGzip(contentType)) {
- data = _getCachedGzip((new java.lang.String(data)).getBytes(response.getCharacterEncoding()), "comp:"+key);
- _setGzipHeader();
- response.writeBytes(data);
- } else {
- response.write(data);
- }
- return true;
- } else {
- return false;
- }
- };
-}
-
-function getCompressedFilesKey(type, baseLocalDir, localFileList) {
- if (stringutils.endsWith(baseLocalDir, '/')) {
- baseLocalDir = baseLocalDir.substr(0, baseLocalDir.length-1);
- }
-
- var fileList = [];
- // convert passed-in file list into list of our file objects
- localFileList.forEach(function(f) {
- if (typeof(f) == 'string') {
- fileList.push(_wrapFile(baseLocalDir+'/'+f));
- } else {
- fileList.push(f);
- }
- });
-
- // have we seen this exact fileset before?
- var fsId = fileList.map(function(f) { return f.getPath(); }).join('|');
- var fsMTime = Math.max.apply(this,
- fileList.map(function(f) { return f.getMTime(); }));
-
- var kdcache = _getCache('fileset-keydata-cache');
- if (!(kdcache[fsId] && (kdcache[fsId].mtime == fsMTime))) {
- //println("cache miss for fileset: "+fsId);
- //println("compressing fileset...");
- kdcache[fsId] = {
- mtime: fsMTime,
- keyString: _compressFilesAndMakeKey(type, fileList)
- };
- }
- return kdcache[fsId].keyString;
-}
-
-function _compressFilesAndMakeKey(type, fileList) {
- function _compress(s) {
- if (type == 'css') {
- varz.incrementInt("faststatic-yuicompressor-compressCSS");
- return yuicompressor.compressCSS(s);
- } else if (type == 'js') {
- varz.incrementInt("faststatic-yuicompressor-compressJS");
- return yuicompressor.compressJS(s);
- } else {
- throw Error('Dont know how to compress this filetype: '+type);
- }
- }
-
- var fullstr = "";
- fileList.forEach(function(f) {
- fullstr += _compress(f.getContents());
- });
-
- fullstr = _compress(fullstr);
-
- var key = stringutils.md5(fullstr) + '.' + type;
- var cfcache = _getCache('compressed-files');
- cfcache[key] = fullstr;
- return key;
-}
-
diff --git a/trunk/infrastructure/framework-src/modules/sqlbase/sqlobj.js b/trunk/infrastructure/framework-src/modules/sqlbase/sqlobj.js
deleted file mode 100644
index 4bc1263..0000000
--- a/trunk/infrastructure/framework-src/modules/sqlbase/sqlobj.js
+++ /dev/null
@@ -1,505 +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("cache_utils.syncedWithCache");
-import("sqlbase.sqlcommon.*");
-import("jsutils.*");
-
-jimport("java.lang.System.out.println");
-jimport("java.sql.Statement");
-
-function _withCache(name, fn) {
- return syncedWithCache('sqlobj.'+name, fn);
-}
-
-function getIdColspec() {
- return ('INT NOT NULL '+autoIncrementClause()+' PRIMARY KEY');
-}
-
-function getLongtextColspec(extra) {
- var spec = getSqlBase().longTextType();
- if (extra) {
- spec = (spec + " " + extra);
- }
- return spec;
-}
-
-function getBoolColspec(extra) {
- var spec;
- if (isMysql()) {
- spec = 'TINYINT(1)';
- } else {
- spec = 'SMALLINT';
- }
- if (extra) {
- spec = (spec + " " + extra);
- }
- return spec;
-}
-
-function getDateColspec(extra) {
- var spec;
- if (isMysql()) {
- spec = 'DATETIME';
- } else {
- spec = 'TIMESTAMP';
- }
- if (extra) {
- spec = (spec + " " + extra);
- }
- return spec;
-}
-
-function _bq(x) { return btquote(x); }
-
-/*
- * for debugging queries
- */
-function _qdebug(q) {
- if (appjet.config.debugSQL) {
- println(q);
- }
-}
-
-/** executeFn is either "execute" or "executeUpdate" "executeQuery" */
-function _execute(stmnt, executeFn) {
- if (!executeFn) {
- executeFn = 'execute';
- }
- return withConnection(function(conn) {
- var pstmnt = conn.prepareStatement(stmnt);
- return closing(pstmnt, function() {
- _qdebug(stmnt);
- return pstmnt[executeFn]();
- });
- });
-}
-
-function _executeUpdate(stmnt) {
- return _execute(stmnt, 'executeUpdate');
-}
-
-function _executeQuery(stmnt) {
- return _execute(stmnt, 'executeQuery');
-}
-
-/*
- * Not all SQL/JS types supported.
- */
-function _getJsValFromResultSet(rs, type, colName) {
- var r;
- if (type == java.sql.Types.VARCHAR ||
- type == java.sql.Types.LONGVARCHAR ||
- type == java.sql.Types.CHAR) {
- r = String(rs.getString(colName));
- } else if (type == java.sql.Types.TIMESTAMP) {
- var t = rs.getTimestamp(colName);
- if (t) {
- r = new Date(t.getTime());
- } else {
- r = null;
- }
- } else if (type == java.sql.Types.INTEGER ||
- type == java.sql.Types.SMALLINT ||
- type == java.sql.Types.TINYINT) {
- r = rs.getInt(colName);
- } else if (type == java.sql.Types.BIT) {
- r = rs.getBoolean(colName);
- } else {
- throw Error("Cannot fetch sql type ID "+type+" (columnName = "+colName+")");
- }
-
- if (rs.wasNull()) {
- r = null;
- }
- return r;
-}
-
-function _lookupColumnType(tableName, columnName) {
- return withConnection(function(conn) {
- var metadata = conn.getMetaData();
- var rs = metadata.getColumns(null, null, tableName, columnName);
- if (!rs) {
- throw Error("Table '"+tableName+"' does not appear to have colum '"+columnName+"'.");
- }
- var rsmd = rs.getMetaData();
- var colCount = rsmd.getColumnCount();
-// rs.first();
- rs.next();
- var type = rs.getInt("DATA_TYPE");
- return type;
- });
-}
-
-/* cached, on misses calls _lookuParameterType */
-function _getParameterType(tableName, columnName) {
- var key = [tableName, columnName].join(".");
- return _withCache('column-types', function(cache) {
- if (!cache[key]) {
- cache[key] = _lookupColumnType(tableName, columnName);
- }
- return cache[key];
- });
-}
-
-/*
- * Not all SQL/JS types supported.
- */
-function _setPreparedValues(tableName, pstmnt, keyList, obj, indexOffset) {
- if (!indexOffset) { indexOffset = 0; }
-
- for (var i = 1; i <= keyList.length; i++) {
- var k = keyList[i-1];
- var v = obj[k];
- var j = i + indexOffset;
-
- if (v === undefined) {
- throw Error("value is undefined for key "+k);
- }
-
- if (v === null) {
- var type = _getParameterType(tableName, k);
- pstmnt.setNull(j, type);
- } else if (typeof(v) == 'string') {
- pstmnt.setString(j, v);
- } else if (typeof(v) == 'number') {
- pstmnt.setInt(j, v);
- } else if (typeof(v) == 'boolean') {
- pstmnt.setBoolean(j, v);
- } else if (v.valueOf && v.getDate && v.getHours) {
- pstmnt.setTimestamp(j, new java.sql.Timestamp(+v));
- } else {
- throw Error("Cannot insert this type of javascript object: "+typeof(v)+" (key="+k+", value = "+v+")");
- }
- }
-}
-
-function _resultRowToJsObj(resultSet) {
- var resultObj = {};
-
- var metaData = resultSet.getMetaData();
- var colCount = metaData.getColumnCount();
- for (var i = 1; i <= colCount; i++) {
- var colName = metaData.getColumnName(i);
- var type = metaData.getColumnType(i);
- resultObj[colName] = _getJsValFromResultSet(resultSet, type, colName);
- }
-
- return resultObj;
-}
-
-/*
- * Inserts the object into the given table, and returns auto-incremented ID if any.
- */
-function insert(tableName, obj) {
- var keyList = keys(obj);
-
- var stmnt = "INSERT INTO "+_bq(tableName)+" (";
- stmnt += keyList.map(function(k) { return _bq(k); }).join(', ');
- stmnt += ") VALUES (";
- stmnt += keyList.map(function(k) { return '?'; }).join(', ');
- stmnt += ")";
-
- return withConnection(function(conn) {
- var pstmnt = conn.prepareStatement(stmnt, Statement.RETURN_GENERATED_KEYS);
- return closing(pstmnt, function() {
- _setPreparedValues(tableName, pstmnt, keyList, obj, 0);
- _qdebug(stmnt);
- pstmnt.executeUpdate();
- var rs = pstmnt.getGeneratedKeys();
- if (rs != null) {
- return closing(rs, function() {
- if (rs.next()) {
- return rs.getInt(1);
- }
- });
- }
- });
- });
-};
-
-/*
- * Selects a single object given the constraintMap. If there are more
- * than 1 objects that match, it will return a single one of them
- * (unspecified which one). If no objects match, returns null.
- *
- * constraints is a javascript object of column names to values.
- * Currently only supports string equality of constraints.
- */
-function selectSingle(tableName, constraints) {
- var keyList = keys(constraints);
-
- var stmnt = "SELECT * FROM "+_bq(tableName)+" WHERE (";
- stmnt += keyList.map(function(k) { return '('+_bq(k)+' = '+'?)'; }).join(' AND ');
- stmnt += ')';
- if (isMysql()) {
- stmnt += ' LIMIT 1';
- }
-
- return withConnection(function(conn) {
- var pstmnt = conn.prepareStatement(stmnt);
- return closing(pstmnt, function() {
- _setPreparedValues(tableName, pstmnt, keyList, constraints, 0);
- _qdebug(stmnt);
- var resultSet = pstmnt.executeQuery();
- return closing(resultSet, function() {
- if (!resultSet.next()) {
- return null;
- }
- return _resultRowToJsObj(resultSet);
- });
- });
- });
-}
-
-function _makeConstraintString(key, value) {
- if (typeof(value) != 'object' || ! (value instanceof Array)) {
- return '('+_bq(key)+' = ?)';
- } else {
- var comparator = value[0];
- return '('+_bq(key)+' '+comparator+' ?)';
- }
-}
-
-function _preparedValuesConstraints(constraints) {
- var c = {};
- eachProperty(constraints, function(k, v) {
- c[k] = (typeof(v) != 'object' || ! (v instanceof Array) ? v : v[1]);
- });
- return c;
-}
-
-function selectMulti(tableName, constraints, options) {
- if (!options) {
- options = {};
- }
-
- var constraintKeys = keys(constraints);
-
- var stmnt = "SELECT * FROM "+_bq(tableName)+" ";
-
- if (constraintKeys.length > 0) {
- stmnt += "WHERE (";
- stmnt += constraintKeys.map(function(key) {
- return _makeConstraintString(key, constraints[key]);
- }).join(' AND ');
- stmnt += ')';
- }
-
- if (options.orderBy) {
- var orderEntries = [];
- options.orderBy.split(",").forEach(function(orderBy) {
- var asc = "ASC";
- if (orderBy.charAt(0) == '-') {
- orderBy = orderBy.substr(1);
- asc = "DESC";
- }
- orderEntries.push(_bq(orderBy)+" "+asc);
- });
- stmnt += " ORDER BY "+orderEntries.join(", ");
- }
-
- if (options.limit) {
- stmnt += " LIMIT "+options.limit;
- }
-
- return withConnection(function(conn) {
- var pstmnt = conn.prepareStatement(stmnt);
- return closing(pstmnt, function() {
- _setPreparedValues(
- tableName, pstmnt, constraintKeys,
- _preparedValuesConstraints(constraints), 0);
-
- _qdebug(stmnt);
- var resultSet = pstmnt.executeQuery();
- var resultArray = [];
-
- return closing(resultSet, function() {
- while (resultSet.next()) {
- resultArray.push(_resultRowToJsObj(resultSet));
- }
-
- return resultArray;
- });
- });
- });
-}
-
-/* returns number of rows updated */
-function update(tableName, constraints, obj) {
- var objKeys = keys(obj);
- var constraintKeys = keys(constraints);
-
- var stmnt = "UPDATE "+_bq(tableName)+" SET ";
- stmnt += objKeys.map(function(k) { return ''+_bq(k)+' = ?'; }).join(', ');
- stmnt += " WHERE (";
- stmnt += constraintKeys.map(function(k) { return '('+_bq(k)+' = ?)'; }).join(' AND ');
- stmnt += ')';
-
- return withConnection(function(conn) {
- var pstmnt = conn.prepareStatement(stmnt);
- return closing(pstmnt, function() {
- _setPreparedValues(tableName, pstmnt, objKeys, obj, 0);
- _setPreparedValues(tableName, pstmnt, constraintKeys, constraints, objKeys.length);
- _qdebug(stmnt);
- return pstmnt.executeUpdate();
- });
- });
-}
-
-function updateSingle(tableName, constraints, obj) {
- var count = update(tableName, constraints, obj);
- if (count != 1) {
- throw Error("save count != 1. instead, count = "+count);
- }
-}
-
-function deleteRows(tableName, constraints) {
- var constraintKeys = keys(constraints);
- var stmnt = "DELETE FROM "+_bq(tableName)+" WHERE (";
- stmnt += constraintKeys.map(function(k) { return '('+_bq(k)+' = ?)'; }).join(' AND ');
- stmnt += ')';
- withConnection(function(conn) {
- var pstmnt = conn.prepareStatement(stmnt);
- closing(pstmnt, function() {
- _setPreparedValues(tableName, pstmnt, constraintKeys, constraints);
- _qdebug(stmnt);
- pstmnt.executeUpdate();
- });
- })
-}
-
-//----------------------------------------------------------------
-// table management
-//----------------------------------------------------------------
-
-/*
- * Create a SQL table, specifying column names and types with a
- * javascript object.
- */
-function createTable(tableName, colspec, indices) {
- if (doesTableExist(tableName)) {
- return;
- }
-
- var stmnt = "CREATE TABLE "+_bq(tableName)+ " (";
- stmnt += keys(colspec).map(function(k) { return (_bq(k) + ' ' + colspec[k]); }).join(', ');
- if (indices) {
- stmnt += ', ' + keys(indices).map(function(k) { return 'INDEX (' + _bq(k) + ')'; }).join(', ');
- }
- stmnt += ')'+createTableOptions();
- _execute(stmnt);
-}
-
-function dropTable(tableName) {
- _execute("DROP TABLE "+_bq(tableName));
-}
-
-function dropAndCreateTable(tableName, colspec, indices) {
- if (doesTableExist(tableName)) {
- dropTable(tableName);
- }
-
- return createTable(tableName, colspec, indices);
-}
-
-function renameTable(oldName, newName) {
- _executeUpdate("RENAME TABLE "+_bq(oldName)+" TO "+_bq(newName));
-}
-
-function modifyColumn(tableName, columnName, newSpec) {
- _executeUpdate("ALTER TABLE "+_bq(tableName)+" MODIFY "+_bq(columnName)+" "+newSpec);
-}
-
-function alterColumn(tableName, columnName, alteration) {
- var q = "ALTER TABLE "+_bq(tableName)+" ALTER COLUMN "+_bq(columnName)+" "+alteration;
- _executeUpdate(q);
-}
-
-function changeColumn(tableName, columnName, newSpec) {
- var q = ("ALTER TABLE "+_bq(tableName)+" CHANGE COLUMN "+_bq(columnName)
- +" "+newSpec);
- _executeUpdate(q);
-}
-
-function addColumns(tableName, colspec) {
- inTransaction(function(conn) {
- eachProperty(colspec, function(name, definition) {
- var stmnt = "ALTER TABLE "+_bq(tableName)+" ADD COLUMN "+_bq(name)+" "+definition;
- _executeUpdate(stmnt);
- });
- });
-}
-
-function dropColumn(tableName, columnName) {
- var stmnt = "ALTER TABLE "+_bq(tableName)+" DROP COLUMN "+_bq(columnName);
- _executeUpdate(stmnt);
-}
-
-function listTables() {
- return withConnection(function(conn) {
- var metadata = conn.getMetaData();
- var resultSet = metadata.getTables(null, null, null, null);
- var resultArray = [];
-
- return closing(resultSet, function() {
- while (resultSet.next()) {
- resultArray.push(resultSet.getString("TABLE_NAME"));
- }
- return resultArray;
- });
- });
-}
-
-function setTableEngine(tableName, engineName) {
- var stmnt = "ALTER TABLE "+_bq(tableName)+" ENGINE="+_bq(engineName);
- _executeUpdate(stmnt);
-}
-
-function getTableEngine(tableName) {
- if (!isMysql()) {
- throw Error("getTableEngine() only supported by MySQL database type.");
- }
-
- var tableEngines = {};
-
- withConnection(function(conn) {
- var stmnt = "show table status";
- var pstmnt = conn.prepareStatement(stmnt);
- closing(pstmnt, function() {
- _qdebug(stmnt);
- var resultSet = pstmnt.executeQuery();
- closing(resultSet, function() {
- while (resultSet.next()) {
- var n = resultSet.getString("Name");
- var eng = resultSet.getString("Engine");
- tableEngines[n] = eng;
- }
- });
- });
- });
-
- return tableEngines[tableName];
-}
-
-function createIndex(tableName, columns) {
- var indexName = "idx_"+(columns.join("_"));
- var stmnt = "CREATE INDEX "+_bq(indexName)+" on "+_bq(tableName)+" (";
- stmnt += columns.map(_bq).join(", ");
- stmnt += ")";
- _executeUpdate(stmnt);
-}
-