public int Transform() { Utils.Utils.SetManifest(manifest); UtilsHelm.SetSourceDir(ctx.SourceDir); SetupCopier(); ITransformer xform = new DefaultTransformer(ctx); foreach (var iasc in manifest.InfraIasc) { UtilsHelm.HelmAdd(iasc); string output = UtilsHelm.HelmTemplate(iasc); var items = new List <string>(); items.Add(output); //This can be replace by factory pattern if (string.IsNullOrEmpty(iasc.Transformer)) { xform = new DefaultTransformer(ctx); } else if (iasc.Transformer.Equals("yaml2tf")) { xform = new Yaml2Terraform(ctx); } xform.Transform(items, iasc); items.Clear(); } return(0); }