 			}
 			return cls;
 		}
-
+		
 		public static function createVector(elementClass:Class, length:uint = 0, fixed:Boolean = false):* {
 			return new (getVectorClass(elementClass))(length, fixed);
 		}
-
+		
 		public static function createVectorAndFill(elementClass:Class, length:uint, value:Object, fixed:Boolean = false):* {
 			var vector:Object = new (getVectorClass(elementClass))(length, fixed);
 			fill(vector, value);
 			return vector;
 		}
-
+		
 		public static function arrayToVector(array:Array, elementClass:Class):Object {
 			const vector:Object = createVector(elementClass, array.length, true);
 			for (var i:int = 0; i < array.length; i++) {

				collection[i] = item;
			}
		}

		public static function fill(collection:Object, value:Object):void {
			if (!isArrayOrVector(collection)) {
				throw new IllegalArgumentException();

	import flash.utils.Dictionary;
	import flash.utils.getDefinitionByName;
	import flash.utils.getQualifiedClassName;
	
	import org.shypl.common.lang.IllegalArgumentException;
	import org.shypl.common.lang.NullPointerException;
	
	public final class CollectionUtils {
		
		public static const VECTOR_CLASS_NAME:String = getQualifiedClassName(Vector);
		public static const VECTOR_CLASSES_CACHE:Dictionary = new Dictionary();
		
		public static function isVector(collection:Object):Boolean {
			if (collection === null) {
				throw new NullPointerException();
			}
			return isVector0(collection);
		}
		
		public static function isArrayOrVector(collection:Object):Boolean {
			if (collection === null) {
				throw new NullPointerException();
			}
			return collection is Array || isVector0(collection);
		}
		
		public static function isEmpty(collectionOrObject:Object):Boolean {
			if (collectionOrObject === null) {
				return true;
