/**
* Class: IncludedClasses
*
* @author KLuck
*/
class com.kelvinluck.util.IncludedClasses
{
private static var instance:IncludedClasses;
/**
* Private constructor - Singleton
**/
private function IncludedClasses()
{
}
function getExcludeXml():String
{
var classes:Array = _arrayUnique(_getClasses(_global, '', []));
var r:String = '' + newline;
for (var i:Number=0; i' + newline;
}
r += '';
return r;
}
function getArrayString():String
{
var r:String = '["' + newline;
r += _arrayUnique(_getClasses(_global, '', [])).join('", "');
r += '"]';
return r;
}
private function _getClasses(obj:Object, path:String, classes:Array):Array
{
var ret:Array = [];
for (var name:String in obj) {
if (typeof(obj[name]) == 'function') {
var firstLetter:String = name.substr(0, 1);
if (firstLetter.toUpperCase() == firstLetter) {
classes.push(path + '.' + name);
}
} else {
var passPath = path == '' ? name : path + '.' + name;
classes = classes.concat(_getClasses(obj[name], passPath, classes));
}
}
return classes.concat(ret);
}
private function _arrayUnique(a:Array):Array
{
var o:Object = {};
for (var i:Number=0; i