void (@NotNull GrVariable field, @Nullable GrStatement anchor, @Nullable GrStatementOwner defaultContainer, @Nullable PsiElement occurrenceToDelete) { if (myInitializer == null || defaultContainer == null) return; GrAssignmentExpression init = (GrAssignmentExpression)GroovyPsiElementFactory.getInstance(myContext.getProject()) .createExpressionFromText(mySettings.getName() + " = " + myInitializer.getText()); GrStatementOwner block; if (anchor != null) { anchor = GroovyRefactoringUtil.addBlockIntoParent(anchor); LOG.assertTrue(anchor.getParent() instanceof GrStatementOwner); block = (GrStatementOwner)anchor.getParent(); } else { block = defaultContainer; } init = (GrAssignmentExpression)block.addStatementBefore(init, anchor); replaceOccurrence(field, init.getLValue(), (PsiClass)myContext.getScope()); if (occurrenceToDelete != null) { occurrenceToDelete.delete(); } }