package components
{
	import mx.core.IFactory;
	import mx.validators.Validator;
	
	public class ComponentFactory implements IFactory {
		private var _component:IFactory;
		private var _validator:IFactory;		
		
		public function ComponentFactory(component:IFactory, validator:IFactory = null) {
			_component = component;
			_validator = validator;
		}
		
		public function newInstance():* {
			var newComponent:Object = _component.newInstance();
			if(_validator != null) {
				var newValidator:Validator = _validator.newInstance();
				newValidator.required = true;
				newValidator.source = newComponent;
				newValidator.property = "newData";
				newValidator.triggerEvent = "change";
			}
			return newComponent;
		}
	}
}