Index: lams_common/src/flash/org/lamsfoundation/lams/common/util/NumberUtils.as =================================================================== diff -u --- lams_common/src/flash/org/lamsfoundation/lams/common/util/NumberUtils.as (revision 0) +++ lams_common/src/flash/org/lamsfoundation/lams/common/util/NumberUtils.as (revision 292fb996b7e13fe3eb1f4160b616421fb552c0ce) @@ -0,0 +1,29 @@ +import org.lamsfoundation.lams.common.util.* + +/** +* Util methods for number manipulation +* @class NumberUtils +* @author DI +*/ +class NumberUtils { + + //Declarations + private var _className = 'NumberUtils'; + + //Constructor + function NumberUtils() { + } + + //Getters+Setters + function get className():String{ + return _className; + } + + /** + * @returns a random number between a and b + */ + public static function randomBetween(a,b):Number { + return (a + Math.floor(Math.random()*(b-a+1))); + } + +} \ No newline at end of file Index: lams_common/src/flash/org/lamsfoundation/lams/common/util/StringUtils.as =================================================================== diff -u --- lams_common/src/flash/org/lamsfoundation/lams/common/util/StringUtils.as (revision 0) +++ lams_common/src/flash/org/lamsfoundation/lams/common/util/StringUtils.as (revision 292fb996b7e13fe3eb1f4160b616421fb552c0ce) @@ -0,0 +1,133 @@ +import org.lamsfoundation.lams.common.util.* + +/** +* Util methods for string manipulation +* @class StringUtils +* @author DI +*/ +class StringUtils { + + //Declarations + private var _className:String = 'StringUtils'; + private static var _nextID:Number = 0; + + //Constructor + function StringUtils() { + } + + //Getters+Setters + function get className():String{ + return _className; + } + + /** + * Converts a query string to an object with attribute-value properies + * @usage e.g. StringUtils.queryStringToObject('http://uklams.net/lams/authoring/author.do?method=getLearningDesignDetails&learningDesignID=1'); + * will return and object containing two properties 'method' and 'learningDesignID' + * @returns Object - containing with attribute-value properies + */ + public static function queryStringToObject(queryString):Object { + //Return object + var tmp_object = new Object(); + + //Get the args part of the string, i.e. everything after question mark + var args_arr:Array = queryString.substring(queryString.indexOf('?')+1,queryString.length) + //Each attribute value pair will be separated with & so split using & as delimiter + var str_arr:Array = args_arr.split('&'); + //Construct the object dynamically by looping through array of attributes and splitting at '=' + for (var i in str_arr) { + var v_arr:Array = str_arr[i].split('='); + tmp_object[v_arr[0]] = v_arr[1]; + } + return tmp_object; + } + + /** + * Pads a string with specified character + * + * @usage trace('left - ' + StringUtils.pad('123',6,'x',true)); //returns '123xxx' + * + * @param val:String - String to pad + * @param length:Number - Amount to pad by + * @param char:String - character to pad with, defaults to '0' + * @param padRight:Boolean - set true for right padding + * @returns String : padded string + */ + public static function pad(val:String,length:Number,char:String,padRight:Boolean):String{ + //Char defaults to '0' + if(!char){ + char='0'; + } + //Left or right pad, assume left if not specified + if(!padRight) { + padRight=false; + } + + //Go through and pad out the string + for (var i=val.length;i999){ + _nextID=0; + } + + //Convert back to a number for return + //uid = year_str + month_str + day_str + hour_str + minute_str + second_str + milliSecond_str + '-'+ rand_str; + uid = year_str + month_str + day_str + hour_str + minute_str + second_str + milliSecond_str + '-'+ id; + + return uid; + } + +} \ No newline at end of file