1  
    10   
    11  
    15  class com.sekati.validate.TypeValidation {	
    16  
    17  	
    27  	public static function getType(o:Object):Object {
    28  		var typeOf:String = typeof (o);
    29  		var type:Object = new Object();
    30  		type.inspectable = true;
    31  		type.name = typeOf;
    32  		if (TypeValidation.isString(o) || TypeValidation.isBoolean(o) || TypeValidation.isNumber(o) || typeOf == "undefined" || typeOf == "null") {
    33  			type.inspectable = false;
    34  		} else if (o instanceof Date) {
    35  			type.inspectable = false;
    36  			type.name = "date";
    37  		} else if (o instanceof Array) {
    38  			type.name = "array";
    39  		} else if (o instanceof Button) {
    40  			type.name = "button";
    41  		} else if (o instanceof MovieClip) {
    42  			type.name = "movieclip";
    43  		} else if (o instanceof XML) {
    44  			type.name = "xml";
    45  			type.stringify = true;
    46  		} else if (o instanceof XMLNode) {
    47  			type.name = "xmlnode";
    48  			type.stringify = true;
    49  		} else if (o instanceof Color) {
    50  			type.name = "color";
    51  		}
    52  		return type;
    53  	}
    54  		
    55  	public static function isNumber(val:Object):Boolean {
    56  		return compare(val, "number", Number);
    57  	}
    58  	
    59  	public static function isString(val:Object):Boolean {
    60  		return compare(val, "string", String);
    61  	}
    62  	
    63  	public static function isFunction(val:Object):Boolean {
    64  		return compare(val, "function", Function);
    65  	}
    66  	
    67  	public static function isBoolean(val:Object):Boolean {
    68  		return compare(val, "boolean", Boolean);
    69  	}
    70  	
    71  	public static function isArray(val:Object):Boolean {
    72  		return compare(val, "array", Array);
    73  	}
    74  	
    75  	public static function isDate(val:Object):Boolean {
    76  		return compare(val, "date", Date);
    77  	}
    78  	
    79  	public static function isSound(val:Object):Boolean {
    80  		return compare(val, "sound", Sound);
    81  	}
    82  	
    83  	public static function isMovieClip(val:Object):Boolean {
    84  		return compare(val, "movieclip", MovieClip);
    85  	}
    86  	
    87  	public static function isTextField(val:Object):Boolean {
    88  		return compare(val, "textfield", TextField);
    89  	}
    90  
    91  	public static function isXML(val:Object):Boolean {
    92  		return compare(val, "xml", XML);
    93  	}
    94  	
    95  	public static function isXMLNode(val:Object):Boolean {
    96  		return compare(val, "xmlnode", XMLNode);
    97  	}
    98  	
    99  	public static function isObject(val:Object):Boolean {
   100  		return compare(val, "object", Object);
   101  	}
   102  	
   103  	public static function isInstanceOf(val:Object, classPath:Function):Boolean {
   104  		return (val instanceof classPath);
   105  	}
   106  	
   107  	public static function isNull(val:Object):Boolean {
   108  		return (val == null || val == undefined || val == "");
   109  	}
   110  	
   111  	private static function compare(val:Object, as1:String, as2:Function):Boolean {
   112  		return (typeof(val) == as1 || val instanceof as2);
   113  	}
   114  	
   115  	private function TypeValidation(){
   116  	}
   117  }