Skip to content

Commit 1ea194e

Browse files
409: Code refactoring
1 parent 11dbae8 commit 1ea194e

File tree

6 files changed

+56
-75
lines changed

6 files changed

+56
-75
lines changed

src/com/magento/idea/magento2plugin/actions/generation/InjectConstructorArgumentAction.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import com.intellij.openapi.actionSystem.AnAction;
99
import com.intellij.openapi.actionSystem.AnActionEvent;
1010
import com.intellij.openapi.project.Project;
11-
import com.intellij.psi.PsiDirectory;
1211
import com.jetbrains.php.lang.psi.elements.Method;
1312
import com.jetbrains.php.lang.psi.elements.Parameter;
1413
import com.jetbrains.php.lang.psi.elements.PhpClass;
@@ -36,6 +35,7 @@ public InjectConstructorArgumentAction() {
3635
}
3736

3837
@Override
38+
@SuppressWarnings({"PMD.CyclomaticComplexity", "PMD.NPathComplexity"})
3939
public void update(final @NotNull AnActionEvent event) {
4040
setIsAvailableForEvent(event, false);
4141
final Project project = event.getProject();
@@ -69,7 +69,7 @@ public void update(final @NotNull AnActionEvent event) {
6969
}
7070

7171
if (!method.getAccess().isPublic()
72-
|| !method.getName().equals(MagentoPhpClass.CONSTRUCT_METHOD_NAME)) {
72+
|| !MagentoPhpClass.CONSTRUCT_METHOD_NAME.equals(method.getName())) {
7373
return;
7474
}
7575
currentPhpClass = phpClass;
@@ -79,19 +79,14 @@ public void update(final @NotNull AnActionEvent event) {
7979

8080
@Override
8181
public void actionPerformed(final @NotNull AnActionEvent event) {
82-
final PsiDirectory directory =
83-
currentPhpClass.getContainingFile().getContainingDirectory();
84-
8582
if (event.getProject() == null
8683
|| currentPhpClass == null
87-
|| directory == null
8884
|| currentParameter == null) {
8985
return;
9086
}
9187

9288
NewArgumentInjectionDialog.open(
9389
event.getProject(),
94-
directory,
9590
currentPhpClass,
9691
currentParameter
9792
);

src/com/magento/idea/magento2plugin/actions/generation/data/xml/DiArrayValueData.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public DiArrayItemData getItemByPath(final String path) {
5858
if (left.length > 0) {
5959
final DiArrayValueData childrenHolder = item.getChildren();
6060

61-
if (childrenHolder == null) {
61+
if (childrenHolder == null) { // NOPMD
6262
break;
6363
}
6464
target = childrenHolder.getItemByPath(String.join(":", left));
@@ -108,12 +108,12 @@ public String convertToXml(final DiArrayValueData data) {
108108
return stringBuilder.toString();
109109
}
110110

111+
@SuppressWarnings({"PMD.CognitiveComplexity", "PMD.CyclomaticComplexity"})
111112
private String buildArrayTree(final DiArrayValueData data, final int indentSize) {
112113
final StringBuilder stringBuilder = new StringBuilder();
113-
114-
stringBuilder.append(indent(0));
115-
stringBuilder.append("[");
116-
stringBuilder.append("\n");
114+
stringBuilder
115+
.append(indent(0))
116+
.append("[\n");
117117
int currentItem = 0;
118118
final int itemsCount = data.getItems().size();
119119

@@ -122,7 +122,7 @@ private String buildArrayTree(final DiArrayValueData data, final int indentSize)
122122
String value = item.getValue();
123123

124124
if (item.getType().equals(DiArgumentType.STRING)) {
125-
value = "'" + value + "'";
125+
value = "'" + value + "'";// NOPMD
126126
} else if (item.getType().equals(DiArgumentType.ARRAY) && item.hasChildren()) {
127127
value = buildArrayTree(item.getChildren(), indentSize + 1);
128128
} else if (item.getType().equals(DiArgumentType.ARRAY) && !item.hasChildren()) {
@@ -134,18 +134,20 @@ private String buildArrayTree(final DiArrayValueData data, final int indentSize)
134134
}
135135

136136
stringBuilder
137-
.append("'" + item.getName() + "'")
138-
.append(" => ")
137+
.append('\'')
138+
.append(item.getName())
139+
.append("' => ")
139140
.append(value);
140141

141142
if (currentItem != itemsCount - 1) {
142-
stringBuilder.append(",");
143+
stringBuilder.append(',');
143144
}
144-
stringBuilder.append("\n");
145+
stringBuilder.append('\n');
145146
currentItem++;
146147
}
147-
stringBuilder.append(indent(indentSize));
148-
stringBuilder.append("]");
148+
stringBuilder
149+
.append(indent(indentSize))
150+
.append(']');
149151

150152
return stringBuilder.toString();
151153
}

src/com/magento/idea/magento2plugin/actions/generation/dialog/GatherArrayValuesDialog.java

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@
99
import com.intellij.openapi.util.Pair;
1010
import com.intellij.util.ui.UIUtil;
1111
import com.magento.idea.magento2plugin.actions.generation.InjectConstructorArgumentAction;
12-
12+
import com.magento.idea.magento2plugin.actions.generation.data.xml.DiArrayValueData;
13+
import com.magento.idea.magento2plugin.bundles.ValidatorBundle;
14+
import com.magento.idea.magento2plugin.magento.packages.DiArgumentType;
15+
import com.magento.idea.magento2plugin.ui.table.TableGroupWrapper;
1316
import java.awt.Color;
1417
import java.awt.event.KeyEvent;
1518
import java.awt.event.WindowAdapter;
@@ -28,12 +31,6 @@
2831
import javax.swing.JTable;
2932
import javax.swing.KeyStroke;
3033
import javax.swing.table.DefaultTableModel;
31-
32-
import com.magento.idea.magento2plugin.actions.generation.data.xml.DiArrayValueData;
33-
import com.magento.idea.magento2plugin.bundles.ValidatorBundle;
34-
import com.magento.idea.magento2plugin.magento.packages.DiArgumentType;
35-
import com.magento.idea.magento2plugin.magento.packages.PropertiesTypes;
36-
import com.magento.idea.magento2plugin.ui.table.TableGroupWrapper;
3734
import org.jetbrains.annotations.NotNull;
3835

3936
public class GatherArrayValuesDialog extends AbstractDialog {
@@ -42,16 +39,14 @@ public class GatherArrayValuesDialog extends AbstractDialog {
4239
private static final String ITEM_TYPE = "Type";
4340
private static final String ITEM_VALUE = "Value";
4441

45-
private final @NotNull Project project;
46-
private DiArrayValueData arrayValueData;
47-
48-
private TableGroupWrapper tableGroupWrapper;
42+
private final @NotNull Project project;// NOPMD
43+
private final DiArrayValueData arrayValueData;
4944

5045
private JPanel contentPane;
5146
private JButton buttonCancel;
5247
private JButton buttonOK;
53-
private JPanel itemsPane;
54-
private JScrollPane itemsScrollPane;
48+
private JPanel itemsPane;// NOPMD
49+
private JScrollPane itemsScrollPane;// NOPMD
5550
private JTable itemsTable;
5651
private JButton buttonAdd;
5752
private JLabel itemsTableErrorMessage;
@@ -151,7 +146,7 @@ private void initTable() {
151146
final Map<String, List<String>> sources = new HashMap<>();
152147
sources.put(ITEM_TYPE, DiArgumentType.getValueList());
153148

154-
tableGroupWrapper = new TableGroupWrapper(
149+
final TableGroupWrapper tableGroupWrapper = new TableGroupWrapper(
155150
itemsTable,
156151
buttonAdd,
157152
columns,
@@ -168,8 +163,6 @@ private Pair<Boolean, String> validateItems(
168163
final List<String> itemsNames = new ArrayList<>();
169164

170165
for (final DiArrayValueData.DiArrayItemData item : items) {
171-
final DiArgumentType type = item.getType();
172-
final String value = item.getValue().trim();
173166
final String name = item.getName().trim();
174167

175168
if (name.isEmpty()) {
@@ -179,6 +172,8 @@ private Pair<Boolean, String> validateItems(
179172
);
180173
}
181174
itemsNames.add(name);
175+
final DiArgumentType type = item.getType();
176+
final String value = item.getValue().trim();
182177

183178
final boolean isValid = type.isValid(value);
184179

@@ -206,13 +201,14 @@ private Pair<Boolean, String> validateItems(
206201
return new Pair<>(Boolean.TRUE, "");
207202
}
208203

204+
@SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops")
209205
private List<DiArrayValueData.DiArrayItemData> extractItems(
210206
final DefaultTableModel tableModel
211207
) {
212208
final List<DiArrayValueData.DiArrayItemData> items = new ArrayList<>();
213209

214210
for (int rowNumber = 0; rowNumber < tableModel.getRowCount(); rowNumber++) {
215-
DiArrayValueData.DiArrayItemData item = new DiArrayValueData.DiArrayItemData(
211+
final DiArrayValueData.DiArrayItemData item = new DiArrayValueData.DiArrayItemData(
216212
tableModel.getValueAt(rowNumber, 0).toString(),
217213
DiArgumentType.getByValue(tableModel.getValueAt(rowNumber, 1).toString()),
218214
tableModel.getValueAt(rowNumber, 2).toString().trim()

src/com/magento/idea/magento2plugin/actions/generation/dialog/NewArgumentInjectionDialog.java

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import com.intellij.openapi.fileTypes.FileTypes;
1212
import com.intellij.openapi.project.Project;
1313
import com.intellij.openapi.ui.ComboBox;
14-
import com.intellij.psi.PsiDirectory;
1514
import com.intellij.psi.PsiFile;
1615
import com.intellij.ui.EditorTextField;
1716
import com.jetbrains.php.PhpIndex;
@@ -34,7 +33,6 @@
3433
import com.magento.idea.magento2plugin.magento.packages.Areas;
3534
import com.magento.idea.magento2plugin.magento.packages.DiArgumentType;
3635
import com.magento.idea.magento2plugin.ui.FilteredComboBox;
37-
import com.magento.idea.magento2plugin.util.magento.GetModuleNameByDirectoryUtil;
3836
import java.awt.event.ActionListener;
3937
import java.awt.event.KeyEvent;
4038
import java.awt.event.WindowAdapter;
@@ -54,6 +52,12 @@
5452
import org.jetbrains.annotations.NonNls;
5553
import org.jetbrains.annotations.NotNull;
5654

55+
@SuppressWarnings({
56+
"PMD.TooManyFields",
57+
"PMD.UnusedPrivateField",
58+
"PMD.ExcessiveImports",
59+
"PMD.AvoidInstantiatingObjectsInLoops"
60+
})
5761
public class NewArgumentInjectionDialog extends AbstractDialog {
5862

5963
private static final String TARGET_AREA = "Target Area";
@@ -64,9 +68,7 @@ public class NewArgumentInjectionDialog extends AbstractDialog {
6468
private static final String CONST_VALUE = "Target Constant";
6569

6670
private final @NotNull Project project;
67-
private final String moduleName;
6871
private final PhpClass targetClass;
69-
private final Parameter targetParameter;
7072

7173
private JPanel contentPane;
7274
private JButton buttonCancel;
@@ -130,7 +132,7 @@ public class NewArgumentInjectionDialog extends AbstractDialog {
130132
private JButton addArrayValueBtn;
131133
private JTextArea arrayView;
132134

133-
final DiArrayValueData arrayValues;
135+
private final DiArrayValueData arrayValues;
134136

135137
// labels
136138
private JLabel argumentTypeLabel;//NOPMD
@@ -152,22 +154,24 @@ public class NewArgumentInjectionDialog extends AbstractDialog {
152154
* New argument injection dialog constructor.
153155
*
154156
* @param project Project
155-
* @param directory PsiDirectory
156157
* @param targetClass PhpClass
157158
* @param parameter Parameter
158159
*/
160+
@SuppressWarnings({
161+
"PMD.AccessorMethodGeneration",
162+
"PMD.ExcessiveMethodLength",
163+
"PMD.CognitiveComplexity",
164+
"PMD.CyclomaticComplexity",
165+
})
159166
public NewArgumentInjectionDialog(
160167
final @NotNull Project project,
161-
final @NotNull PsiDirectory directory,
162168
final @NotNull PhpClass targetClass,
163169
final @NotNull Parameter parameter
164170
) {
165171
super();
166172

167173
this.project = project;
168174
this.targetClass = targetClass;
169-
this.targetParameter = parameter;
170-
this.moduleName = GetModuleNameByDirectoryUtil.execute(directory, project);
171175
arrayValues = new DiArrayValueData();
172176

173177
setContentPane(contentPane);
@@ -197,7 +201,7 @@ public void windowClosing(final WindowEvent event) {
197201
addComponentListener(new FocusOnAFieldListener(() -> targetModule.requestFocusInWindow()));
198202

199203
targetClassField.setText(targetClass.getPresentableFQN());
200-
targetArgument.setText(targetParameter.getName());
204+
targetArgument.setText(parameter.getName());
201205

202206
// make all value panes invisible
203207
objectValuePane.setVisible(false);
@@ -335,18 +339,16 @@ public void documentChanged(final @NotNull DocumentEvent event) {
335339
* Open a new argument injection dialog.
336340
*
337341
* @param project Project
338-
* @param directory PsiDirectory
339342
* @param targetClass PhpClass
340343
* @param parameter Parameter
341344
*/
342345
public static void open(
343346
final @NotNull Project project,
344-
final @NotNull PsiDirectory directory,
345347
final @NotNull PhpClass targetClass,
346348
final @NotNull Parameter parameter
347349
) {
348350
final NewArgumentInjectionDialog dialog =
349-
new NewArgumentInjectionDialog(project, directory, targetClass, parameter);
351+
new NewArgumentInjectionDialog(project, targetClass, parameter);
350352
dialog.pack();
351353
dialog.centerDialog(dialog);
352354
dialog.setVisible(true);
@@ -397,7 +399,7 @@ private void onOK() {
397399
/**
398400
* Create custom components and fill their entries.
399401
*/
400-
@SuppressWarnings({"PMD.UnusedPrivateMethod", "PMD.AvoidInstantiatingObjectsInLoops"})
402+
@SuppressWarnings({"PMD.UnusedPrivateMethod"})
401403
private void createUIComponents() {
402404
targetModule = new FilteredComboBox(new ModuleIndex(project).getEditableModuleNames());
403405
targetArea = new ComboBox<>();
@@ -425,9 +427,10 @@ private void createUIComponents() {
425427
booleanValue.addItem(new ComboBoxItemData("", " --- Select Value --- "));
426428
booleanValue.addItem(new ComboBoxItemData("false", "False"));
427429
booleanValue.addItem(new ComboBoxItemData("true", "True"));
430+
final String selectConstantText = " --- Select Constant --- ";
428431

429-
initParameterConstValue.addItem(new ComboBoxItemData("", " --- Select Constant --- "));
430-
constantValue.addItem(new ComboBoxItemData("", " --- Select Constant --- "));
432+
initParameterConstValue.addItem(new ComboBoxItemData("", selectConstantText));
433+
constantValue.addItem(new ComboBoxItemData("", selectConstantText));
431434

432435
initParameterTypeValue = new EditorTextField("", project, FileTypes.PLAIN_TEXT);
433436
constantTypeValue = new EditorTextField("", project, FileTypes.PLAIN_TEXT);
@@ -479,7 +482,7 @@ private List<String> getConstantsNames(final @NotNull String fqn) {
479482
final Collection<PhpClass> classes = phpIndex.getClassesByFQN(fqn);
480483
PhpClass clazz = null;
481484

482-
if (!interfaces.isEmpty()) {
485+
if (!interfaces.isEmpty()) { // NOPMD
483486
clazz = interfaces.iterator().next();
484487
} else if (!classes.isEmpty()) {
485488
clazz = classes.iterator().next();
@@ -509,7 +512,7 @@ private void populateSubArrayKeyCombobox() {
509512
subArrayKey.addItem(new ComboBoxItemData("", " --- Top Array --- "));
510513
populateSubArrayKeyCombobox(arrayValues, "");
511514

512-
if (subArrayKey.getItemCount() > 1) {
515+
if (subArrayKey.getItemCount() > 1) { // NOPMD
513516
subArrayKeyLabel.setVisible(true);
514517
subArrayKey.setVisible(true);
515518
}
@@ -564,6 +567,7 @@ private void changeViewBySelectedArgumentType(final String itemValue) {
564567
}
565568
}
566569

570+
@SuppressWarnings({"PMD.CognitiveComplexity", "PMD.CyclomaticComplexity"})
567571
private @NotNull String getArgumentValue() {
568572
final ComboBoxItemData item = (ComboBoxItemData) argumentType.getSelectedItem();
569573

src/com/magento/idea/magento2plugin/actions/generation/generator/code/ArgumentInjectionGenerator.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,6 @@
2121
import com.magento.idea.magento2plugin.actions.generation.generator.code.util.DiXmlTagManipulatorUtil;
2222
import com.magento.idea.magento2plugin.actions.generation.generator.util.DirectoryGenerator;
2323
import com.magento.idea.magento2plugin.actions.generation.generator.util.FileFromTemplateGenerator;
24-
import com.magento.idea.magento2plugin.actions.generation.generator.util.GetCodeTemplateUtil;
25-
import com.magento.idea.magento2plugin.actions.generation.generator.util.XmlFilePositionUtil;
26-
import com.magento.idea.magento2plugin.bundles.CommonBundle;
27-
import com.magento.idea.magento2plugin.bundles.ValidatorBundle;
2824
import com.magento.idea.magento2plugin.indexes.ModuleIndex;
2925
import com.magento.idea.magento2plugin.magento.files.ModuleDiXml;
3026
import com.magento.idea.magento2plugin.magento.packages.Areas;
@@ -43,8 +39,6 @@ public final class ArgumentInjectionGenerator extends FileGenerator {
4339
private final ModuleDiXml file;
4440
private final DirectoryGenerator directoryGenerator;
4541
private final FileFromTemplateGenerator fileFromTemplateGenerator;
46-
private final CommonBundle commonBundle;
47-
private final ValidatorBundle validatorBundle;
4842
private String generationErrorMessage;
4943

5044
/**
@@ -62,8 +56,6 @@ public ArgumentInjectionGenerator(
6256
file = new ModuleDiXml();
6357
directoryGenerator = DirectoryGenerator.getInstance();
6458
fileFromTemplateGenerator = new FileFromTemplateGenerator(project);
65-
commonBundle = new CommonBundle();
66-
validatorBundle = new ValidatorBundle();
6759
}
6860

6961
/**
@@ -128,7 +120,7 @@ public PsiFile generate(final @NotNull String actionName) {
128120
data.getValueType(),
129121
data.getValue()
130122
);
131-
} catch (Exception exception) {
123+
} catch (Exception exception) { // NOPMD
132124
generationErrorMessage = exception.getMessage();
133125
}
134126
final PsiFile diXmlFileToReformat = diXmlFile;
@@ -183,7 +175,7 @@ private XmlFile getDiXmlFile(
183175
);
184176

185177
if (diXmlFile == null) {
186-
PsiDirectory diXmlFileDir = null;
178+
PsiDirectory diXmlFileDir;
187179

188180
if (data.getArea().equals(Areas.base)) {
189181
diXmlFileDir = directoryGenerator.findOrCreateSubdirectory(

0 commit comments

Comments
 (0)