[Laszlo-checkins] r10676 - openlaszlo/trunk/WEB-INF/lps/lfc/data
bargull@openlaszlo.org
bargull at openlaszlo.org
Wed Aug 13 10:41:57 PDT 2008
Author: bargull
Date: 2008-08-13 10:41:53 -0700 (Wed, 13 Aug 2008)
New Revision: 10676
Modified:
openlaszlo/trunk/WEB-INF/lps/lfc/data/LzDataProvider.lzs
openlaszlo/trunk/WEB-INF/lps/lfc/data/LzDataset.lzs
openlaszlo/trunk/WEB-INF/lps/lfc/data/LzHTTPDataProvider.lzs
openlaszlo/trunk/WEB-INF/lps/lfc/data/LzParam.lzs
Log:
Change 20080813-bargull-VxK by bargull at dell--p4--2-53 on 2008-08-13 18:05:22
in /home/Admin/src/svn/openlaszlo/trunk
for http://svn.openlaszlo.org/openlaszlo/trunk
Summary: change LzDataProvider&LzParam inheritance, update LzParam
New Features:
Bugs Fixed: LPP-6772, LPP-6831
Technical Reviewer: hminsky
QA Reviewer: (pending)
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details:
Per discussion, LzDataProvider and LzParam are now only subclasses of LzEventable instead of LzNode.
Also removed a lot of code in LzParam which handled the case-insensitivity in earlier Flash versions:
- removed construct(), createChildren(), both are part of the LzNode structure and now no longer needed
- removed internal method findKey(), not needed anymore
- marked getValueNoCase() as deprecated, actually it didn't work properly anymore since OL3.x
- renamed private attributes "sep" and "dlm" to "separator" and "delimiter" to support our setter-mechanism
Added typing, as usual.
Tests:
Modified: openlaszlo/trunk/WEB-INF/lps/lfc/data/LzDataProvider.lzs
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/data/LzDataProvider.lzs 2008-08-13 17:25:01 UTC (rev 10675)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/data/LzDataProvider.lzs 2008-08-13 17:41:53 UTC (rev 10676)
@@ -31,19 +31,12 @@
* @lzxname dataprovider
*/
-class LzDataProvider extends LzNode {
+class LzDataProvider extends LzEventable {
- function LzDataProvider ( parent:* = null, attrs:* = null, children:* = null, instcall:* = null) {
- super(parent,attrs,children,instcall);
- }
+ function LzDataProvider () {
+ super();
+ }
- /** @access private
- * @modifiers override
- */
- static var tagname = 'dataprovider';
-/** @access private */
- static var attributes = new LzInheritedHash(LzNode.attributes);
-
/**
* Executes the given DataRequest
* @access public
@@ -54,4 +47,4 @@
}
}
-lz[LzDataProvider.tagname] = LzDataProvider; // publish
+lz.DataProvider = LzDataProvider; // publish
Modified: openlaszlo/trunk/WEB-INF/lps/lfc/data/LzDataset.lzs
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/data/LzDataset.lzs 2008-08-13 17:25:01 UTC (rev 10675)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/data/LzDataset.lzs 2008-08-13 17:41:53 UTC (rev 10676)
@@ -178,7 +178,7 @@
/** An LzParams object which holds query key-value pairs.
@type LzParam
*/
-var params = null;
+var params :LzParam = null;
/** When true, the server will preserve namespace prefixes
* on data node names and attribute names
@@ -420,9 +420,9 @@
* dataset.
* @return LzParam: The request parameters for the dataset.
*/
-function getParams (){
+function getParams () :LzParam {
if (this.params == null) {
- new LzParam ( this , { name : "params" } );
+ this.params = new LzParam();
}
return this.params;
@@ -526,7 +526,7 @@
if (s instanceof LzParam){
this.querystring = s.toString();
} else {
- var p = new LzParam ( this );
+ var p = new LzParam ();
for ( var n in s ) {
p.setValue( n, s[n], true );
}
@@ -615,7 +615,7 @@
function setQueryParam( key , val ) {
this.querystring = null;
if ( ! this.params ){
- new LzParam ( this , { name : "params" } );
+ this.params = new LzParam();
}
this.params.setValue( key, val );
@@ -636,10 +636,7 @@
function setQueryParams( o ) {
this.querystring = null;
if ( ! this.params ){
- //new LzParam ( this , { name : "params" } );
- // [todo 2006-06 hqm] this.params does not seem to be getting set
- // in IE -- temporary patch here to work around
- this.params = new LzParam ( this , { name : "params" } );
+ this.params = new LzParam();
}
if ( o ) {
@@ -724,7 +721,7 @@
// values. Note, this is independent of the query portion of the
// this.src URL.
if (this.querystring) {
- dreq.queryparams = new LzParam(this);
+ dreq.queryparams = new LzParam();
dreq.queryparams.addObject(LzParam.parseQueryString(this.querystring));
} else {
// otherwise, use the this.params value
@@ -905,7 +902,7 @@
*/
function setHeader ( k , val ){
if ( !this.headers ) {
- this.headers = new LzParam( this );
+ this.headers = new LzParam();
}
this.headers.setValue( k , val );
Modified: openlaszlo/trunk/WEB-INF/lps/lfc/data/LzHTTPDataProvider.lzs
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/data/LzHTTPDataProvider.lzs 2008-08-13 17:25:01 UTC (rev 10675)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/data/LzHTTPDataProvider.lzs 2008-08-13 17:41:53 UTC (rev 10676)
@@ -27,8 +27,8 @@
*/
class LzHTTPDataProvider extends LzDataProvider {
- function LzHTTPDataProvider ( parent:* = null, attrs:* = null, children:* = null, instcall:* = null) {
- super(parent,attrs,children,instcall);
+ function LzHTTPDataProvider () {
+ super();
}
/** @access private
@@ -332,7 +332,6 @@
dreq.responseheaders = headers;
dreq.rawdata = dreq.loader.getResponse();
dreq.onstatus.sendEvent( dreq );
-
}
}
lz.HTTPDataProvider = LzHTTPDataProvider; // publish
Modified: openlaszlo/trunk/WEB-INF/lps/lfc/data/LzParam.lzs
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/data/LzParam.lzs 2008-08-13 17:25:01 UTC (rev 10675)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/data/LzParam.lzs 2008-08-13 17:41:53 UTC (rev 10676)
@@ -35,32 +35,22 @@
*
* @lzxname params
*/
-class LzParam extends LzNode {
+class LzParam extends LzEventable {
-/** @access private
- * @modifiers override
- */
-static var tagname = 'params';
/** @access private */
- static var attributes = new LzInheritedHash(LzNode.attributes);
+var d :Object = null;
- // FIXME: [2008-03-12 ptw] WTF is this supposed to be doing?
-//undefine all setters but name and id
-//setters.$hasdefaultattrs = -1;
-
+// default separator and delimiter
/** @access private */
-var d:Object = null;
+var delimiter :String = "&";
+/** @access private */
+var separator :String = "=";
-
/**
* @access private
*/
- function LzParam ( parent:* = null, attrs:* = null, children:* = null, instcall:* = null) {
- super(parent,attrs,children,instcall);
- }
-
-override function construct ( parent , args ){
- super.construct.apply(this, arguments);
+function LzParam () {
+ super();
this.d = {};
}
@@ -68,7 +58,7 @@
* Parse a URL query string, returns an object with key-value pairs
* @return Object
*/
-static function parseQueryString ( query:String ) :Object {
+static function parseQueryString (query:String) :Object {
var parameters:Array = query.split('&');
var queries:Object = {};
for (var i:int = 0; i < parameters.length; ++i) {
@@ -76,7 +66,7 @@
var value:String = '';
var n:int = key.indexOf('=');
if (n > 0) {
- value = unescape(key.substring(n+1));
+ value = unescape(key.substring(n + 1));
key = key.substring(0, n);
}
queries[key] = value;
@@ -89,33 +79,19 @@
* @return Object
* @deprecated: Use LzParam.parseQueryString() instead
*/
-function parseQueryString ( query ) {
+function parseQueryString (query:String) :Object {
if ($debug) {
- Debug.info (this, ".parseQueryString is deprecated. Use LzParam.parseQueryString instead");
+ Debug.info(this, ".parseQueryString is deprecated. Use LzParam.parseQueryString instead");
}
- return LzParam.parseQueryString (query);
+ return LzParam.parseQueryString(query);
}
-
/**
- * @access private
- */
-override function createChildren ( children ){
- //Debug.write( "got children: " + children );
-}
-
-// default separator and delimiter
-/** @access private */
-var dlm = "&";
-/** @access private */
-var sep = "=";
-
-/**
* Adds a series of name/value pairs from an object
* @param Object o: An object containing name/value pairs to add
*/
-function addObject(o) {
- for ( var n in o ) {
+function addObject (o:Object) :void {
+ for (var n:String in o) {
this.setValue( n, o[n] );
}
}
@@ -125,12 +101,12 @@
* @keywords deprecated: Argument is deprecated
* @return LzParam
*/
-function clone(arg=null) {
- if (arg && $debug) {
- Debug.info("%w.%s is deprecated. Do not pass as argument to clone()", this, arguments.callee);
+function clone (arg=null) :LzParam {
+ if ($debug) {
+ if (arg) Debug.info("%w.%s is deprecated. Do not pass as argument to clone()", this, arguments.callee);
}
- var o = new LzParam();
- for ( var n in this.d ) {
+ var o:LzParam = new LzParam();
+ for (var n:String in this.d) {
o.d[ n ] = this.d[ n ].concat();
}
return o;
@@ -142,13 +118,19 @@
* @param String name: The name of the value to remove. If null, removes
* all values
*/
-function remove( name = null) {
- if ( null == name ) {
+function remove (name:String? = null) :void {
+ if (name == null) {
this.d = {};
- } else if ( null != this.d[ name ] ) {
- var i = this.findKey( name );
- if ( i != null ) {
- this.d[ name ].splice ( i , 2 );
+ } else {
+ var a:Array = this.d[ name ];
+ if (a != null) {
+ // bwcomp: remove only first entry
+ // TODO: [20080813 anba] is this what we expect?
+ a.shift();
+ if (! a.length) {
+ // remove empty arrays
+ delete this.d[ name ];
+ }
}
}
}
@@ -160,22 +142,10 @@
* @param String val: The value to set
* @param Boolean enc: If true, URI-encodes the value
*/
-function setValue(name, val, enc = null) {
+function setValue (name:String, val:String, enc:Boolean = false) :void {
if (enc) val = encodeURIComponent(val);
- var a = this.d[ name ];
- if ( a == null ) {
- // add first pair
- this.d[ name ] = [name, val];
- } else {
- var i = this.findKey( name );
- if (null != i) {
- // replace existing value
- a[i + 1] = val;
- } else {
- // add new value
- a.push(name, val);
- }
- }
+ // replace existing value
+ this.d[ name ] = [ val ];
}
@@ -185,15 +155,15 @@
* @param String val: The value to set
* @param Boolean enc: If true, URI-encodes the value
*/
-function addValue(name, val, enc=false) {
- if ( enc ) val = encodeURIComponent( val );
- var a = this.d[ name ];
- if ( a == null ) {
- // add first pair
- this.d[ name ] = [ name, val ];
+function addValue (name:String, val:String, enc:Boolean = false) :void {
+ if (enc) val = encodeURIComponent( val );
+ var a:Array = this.d[ name ];
+ if (a == null) {
+ // add first
+ this.d[ name ] = [ val ];
} else {
// add new value
- a.push( name, val );
+ a.push( val );
}
}
@@ -203,10 +173,10 @@
* @param String name: The name to look up - must evaluate to a string
* @return String: The value for the specified name
*/
-function getValue(name) {
- var i = this.findKey(name);
- if (null != i) {
- return this.d[name][i + 1];
+function getValue (name:String) :String? {
+ var a:Array = this.d[name];
+ if (a != null) {
+ return a[ 0 ];
}
}
@@ -215,18 +185,18 @@
* Get a value by name irrespective of case.
* @param String name: The name to look up - must evaluate to a string
* @return [String]: An array of values that case-insensitively match name
+ * @keywords deprecated
*/
-function getValueNoCase(name) {
- var a = this.d[name];
- if ( a.length ){
- if ( a.length == 2 ) {
- return a[ 1 ];
- }else {
- var r =[];
- for ( var i = 1; i < a.length; i +=2 ){
- r.push( a[ i ] );
- }
- return r;
+function getValueNoCase (name:String) :* {
+ if ($debug) {
+ Debug.info("%w.%s is deprecated.", this, arguments.callee);
+ }
+ var a:Array = this.d[ name ];
+ if (a != null) {
+ if (a.length == 1) {
+ return a[ 0 ];
+ } else {
+ return a.concat();
}
}
}
@@ -236,47 +206,31 @@
* Get a list of all names, not necessarily in order
* @return [String]: A list of keys
*/
-function getNames() {
- var o = [];
- for (var n in this.d) {
- var a = this.d[n];
- for (var i = 0; i < a.length; i += 2) {
- if (null != a[i]) {
- o.push(a[i]);
- }
- }
+function getNames () :Array {
+ var o:Array = [];
+ for (var n:String in this.d) {
+ o.push(n);
}
return o;
}
-//----------------------------------------------------------------------------- // Get offset for specified name in the hash value.
-//
/** @access private */
-// @param name: The name to set - must evaluate to a string
-// @return i: The offset found
-//-----------------------------------------------------------------------------
-function findKey( name ) {
- var a = this.d[name];
- if (a != null) {
- for (var i = 0; i < a.length; i += 2) {
- if (name == a[ i ]) {
- return i;
- }
- }
- }
-}
+function $lzc$set_delimiter(d:String) :void { this.setDelimiter(d); }
+/** @access private */
+function $lzc$set_separator(s:String) :void { this.setSeparator(s); }
+
/**
* Set delimiter string used between records in serialize();
* @param String d: String to use as delimiter
* @return String: Old delimiter
*/
-function setDelimiter(d) {
- var o = this.dlm;
- this.dlm = d;
+function setDelimiter (d:String) :String {
+ var o:String = this.delimiter;
+ this.delimiter = d;
return o;
}
@@ -288,9 +242,9 @@
* @param String s: String to use as separator
* @return String : Old separator
*/
-function setSeparator(s) {
- var o = this.sep;
- this.sep = s;
+function setSeparator (s:String) :String {
+ var o:String = this.separator;
+ this.separator = s;
return o;
}
@@ -299,7 +253,7 @@
* Returns a string representation using the current separator and delimiter
* @return String: All names and values for this object
*/
-override function toString() {
+function toString () :String {
return this.serialize();
}
@@ -310,20 +264,19 @@
* @param Boolean uriencode: If true, uri-encode values
* @return: String representation of parameters
*/
-function serialize( sep = null, delim = null, uriencode = null ){
- var sep = sep == null ? this.sep : sep;
- var dlm = delim == null ? this.dlm : delim;
+function serialize (sep:String? = null, delim:String? = null, uriencode:Boolean = false) :String {
+ var sep:String = sep == null ? this.separator : sep;
+ var dlm:String = delim == null ? this.delimiter : delim;
- var o = "";
+ var o:String = "";
- var c = false;
- for ( var mk in this.d ){
- var n = this.d[ mk ];
+ var c:Boolean = false;
+ for (var mk:String in this.d) {
+ var n:Array = this.d[ mk ];
if (n != null) {
- for ( var i = 0; i < n.length; i+=2 ) {
+ for (var i:int = 0; i < n.length; ++i) {
if ( c ) o += dlm;
- o += n[ i ] + sep ;
- o += uriencode? encodeURIComponent( n[ i + 1 ] ) : n[ i + 1 ];
+ o += mk + sep + (uriencode ? encodeURIComponent( n[i] ) : n[i]);
c = true;
}
}
@@ -334,4 +287,4 @@
} // End of LzParam
-lz[LzParam.tagname] = LzParam; // publish
+lz.Param = LzParam; // publish
More information about the Laszlo-checkins
mailing list