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; } } }