From 9126ba4284115da9171ffb5d28b469b252fa10ff Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Sun, 7 Jul 2019 13:39:08 +0300 Subject: [PATCH] Move inner class to upper level: make outer field final GitOrigin-RevId: 309caf35d99871f438f171ac3320b9314779132c --- .../move/moveInner/MoveInnerProcessor.java | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveInner/MoveInnerProcessor.java b/java/java-impl/src/com/intellij/refactoring/move/moveInner/MoveInnerProcessor.java index 66e3aefe4258..d2d262706717 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveInner/MoveInnerProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveInner/MoveInnerProcessor.java @@ -1,18 +1,4 @@ -/* - * Copyright 2000-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.refactoring.move.moveInner; import com.intellij.codeInsight.ChangeContextUtil; @@ -170,7 +156,7 @@ public class MoveInnerProcessor extends BaseRefactoringProcessor { PsiField field = null; if (myParameterNameOuterClass != null) { // pass outer as a parameter - field = factory.createField(myFieldNameOuterClass, factory.createType(myOuterClass)); + field = createOuterField(factory); field = addOuterField(field); myInnerClass = field.getContainingClass(); addFieldInitializationToConstructors(myInnerClass, field, myParameterNameOuterClass); @@ -307,6 +293,17 @@ public class MoveInnerProcessor extends BaseRefactoringProcessor { } } + @NotNull + private PsiField createOuterField(@NotNull PsiElementFactory factory) { + PsiField field = factory.createField(myFieldNameOuterClass, factory.createType(myOuterClass)); + + PsiModifierList modifierList = field.getModifierList(); + LOG.assertTrue(modifierList != null); + modifierList.setModifierProperty(PsiModifier.FINAL, true); + + return field; + } + private PsiField addOuterField(PsiField field) { final PsiMember[] members = PsiTreeUtil.getChildrenOfType(myInnerClass, PsiMember.class); if (members != null) {