void CompileOCLs(string[] ocls) { var aspects = new List <Aspect>(); foreach (var ocl in ocls) { Console.WriteLine(); Console.WriteLine("OCL: " + ocl); var aspect = Aspect.OclToAspect(ocl); Console.WriteLine("Aspect: " + aspect.ToString()); aspects.Add(aspect); } Console.WriteLine(); var gens = new List <CodeGenerator>(); foreach (var aspect in aspects) { Console.WriteLine("Generating assembly for " + aspect.ConstraintName + "."); gens.Add(GenCode(aspect)); } Console.WriteLine(); Console.WriteLine("Invoking Apply() methods."); foreach (var gen in gens) { gen.InvokeApplyMethod(); } Console.WriteLine(); }