@Override
  public void fixUsage() throws IncorrectOperationException {
    final PsiReferenceExpression lhs =
      (PsiReferenceExpression)assignment.getLExpression();
    final PsiExpression rhs = assignment.getRExpression();
    assert rhs != null;
    final PsiElement qualifier = lhs.getQualifier();
    final PsiJavaToken sign = assignment.getOperationSign();
    final String operator = sign.getText();
    final String rhsText = rhs.getText();
    final String newExpression;
    if (qualifier != null) {
      final String qualifierText = qualifier.getText();
      if ("=".equals(operator)) {
        newExpression = qualifierText + '.' + delegateName + '.' + callSetter(rhsText);
      }
      else {
        final String strippedOperator = getStrippedOperator(operator);
        newExpression = qualifierText +
                        '.' +
                        delegateName +
                        '.' +
                        callSetter(
                          qualifierText +
                          '.' +
                          delegateName +
                          '.' +
                          callGetter() + strippedOperator + rhsText);
      }
    }
    else {
      if ("=".equals(operator)) {
        newExpression = delegateName + '.' + callSetter(rhsText);
      }
      else {
        final String strippedOperator = getStrippedOperator(operator);
        newExpression = delegateName + '.' + callSetter(delegateName + '.' + callGetter() + strippedOperator + rhsText);
      }
    }
    MutationUtils.replaceExpression(newExpression, assignment);
  }
@Override
  public void fixUsage()