public override Object Clone() { IterateExpImpl theClone = (IterateExpImpl)base.Clone(); theClone.result = (VariableDeclaration)result.Clone(); theClone.result.setLoopExp(theClone); return(theClone); }
public IterateExp createIterateExp( CoreClassifier type, OclExpression source, OclExpression body, List <object> iterators, VariableDeclaration result) { IterateExp exp = new IterateExpImpl(); exp.setFactory(this); exp.setType(type); exp.setSource(source); exp.setBody(body); exp.setResult(result); exp.setName("iterate"); if (iterators != null) { foreach (VariableDeclaration var in iterators) { var.setLoopExp(exp); ((IterateExpImpl)exp).addIterator(var); } } result.setBaseExp(exp); if (body != null) { ((OclExpressionImpl)body).setLoopExp(exp); } if (source != null) { ((OclExpressionImpl)source).setAppliedProperty(exp); } return(exp); }