public int visit(CertifierOrchestrationElement element) { int ret = CertifierConstants.NORMAL_SIGNAL; CertifierConsoleLogger.write("Enter visit for " + element.getOperationStr()); CertifierConsoleLogger.write("operation " + element.getOperation()); //this.operation = (CertifierOrchestrationOperation)Enum.Parse(typeof(CertifierOrchestrationOperation), oper); //first case, the workflow element. Justo go on... if (element.getOperationStr() == "orchestration") { CertifierConsoleLogger.write("operation entrei " + element.getOperation()); foreach (CertifierOrchestrationElement child in element.getChildren()) { /* if(child.run()==CertifierConstants.BREAK_SIGNAL) * hasBreak=true;*/ ret = child.run(); } } else { //calling logic for this type of operation via reflection String logicFullClassName = this.logicPkg + ".Logic" + element.getOperationStr(); Console.WriteLine("logicfullclassname " + logicFullClassName); //Type c = Type.GetType(logicFullClassName); /*Class c = * Class.forName(logicFullClassName);*/ var c = Activator.CreateInstance(null, logicFullClassName); AbstractCertifierElementLogic logicClass = (AbstractCertifierElementLogic)c.Unwrap(); //AbstractCertifierElementLogic logicClass = (AbstractCertifierElementLogic)Activator.CreateInstance(null, logicFullClassName); ret = logicClass.logic(element); CertifierConsoleLogger.write("Element " + element.getOperationStr() + " returned: " + ret); } //System.out.println("certif vis impl" + hasBreak); return(ret); }