/// <summary> /// Configure the transformer. /// </summary> /// <param name="config">The configuration to use.</param> /// <param name="handler">The handler to invoke once the data has been transformed.</param> public virtual void Configure(TransformerConfiguration config, ITransformedDataHandler handler) { _config = config; _mappers = new List <IMapper>(); _data = new List <object>(); foreach (var mapperConfig in _config.Mappers) { var mapper = CollectorFactory.CreateMapper(mapperConfig); if (mapper == null) { throw new NullReferenceException("Unable to create Mapper. Invalid Mapper defined."); } _mappers.Add(mapper); } _handler = handler; }
/// <summary> /// Create a Transformer. /// </summary> /// <param name="type">The name of the class to create.</param> /// <param name="id">The id of the transformer.</param> /// <param name="publishers">The publishers to use to publish the JSON data to a repository.</param> /// <param name="mappers">The mappers to use to transform/map the data.</param> /// <returns>A new handler.</returns> public static ITransformer CreateTransformer(TransformerConfiguration config, ITransformedDataHandler handler) { var mappers = new List <IMapper>(); foreach (var mapperConfig in config.Mappers) { var mapper = CollectorFactory.CreateMapper(mapperConfig); if (mapper == null) { throw new NullReferenceException("Unable to create Collector. Invalid Mapper defined."); } mappers.Add(mapper); } var transformer = ComponentRegistration.CreateInstance <ITransformer>(config.Type); transformer.Configure(config, handler); return(transformer); }