public string TranslateExpression(OclExpression expression) { OperationHelper = new OperationHelper(); OperationHelper.PSMSchema = Bridge.Schema; OperationHelper.Log = Log; OperationHelper.ExplicitCastAtomicOperands = !Settings.SchemaAware; OperationHelper.PSMBridge = Bridge; OperationHelper.InitStandard(); TranslatedOclExpression = expression; VariableNamer = new VariableNamer(); SubexpressionTranslations = new SubexpressionTranslations { XPathContextVariableReplacementMode = ContextVariableReplacementMode }; SubexpressionTranslations.Log = Log; expression.Accept(this); SubexpressionTranslations.SelfVariableDeclaration = OclContext.Self; string result = SubexpressionTranslations.GetSubexpressionTranslation(expression).GetString(true); return(result); }