22 * Copyright © Magento, Inc. All rights reserved.
33 * See COPYING.txt for license details.
44 */
5+
56package com .magento .idea .magento2plugin .actions .generation .generator ;
67
78import com .intellij .openapi .command .WriteCommandAction ;
2122import com .magento .idea .magento2plugin .actions .generation .generator .util .FileFromTemplateGenerator ;
2223import com .magento .idea .magento2plugin .actions .generation .util .CodeStyleSettings ;
2324import com .magento .idea .magento2plugin .bundles .CommonBundle ;
25+ import com .magento .idea .magento2plugin .bundles .ValidatorBundle ;
2426import com .magento .idea .magento2plugin .indexes .ModuleIndex ;
2527import com .magento .idea .magento2plugin .magento .files .GraphQlResolverPhp ;
28+ import com .magento .idea .magento2plugin .magento .packages .File ;
2629import com .magento .idea .magento2plugin .magento .packages .MagentoPhpClass ;
2730import com .magento .idea .magento2plugin .util .GetFirstClassOfFile ;
2831import com .magento .idea .magento2plugin .util .GetPhpClassByFQN ;
29- import com .magento .idea .magento2plugin .bundles .ValidatorBundle ;
30- import org .jetbrains .annotations .NotNull ;
31- import javax .swing .*;
32- import com .magento .idea .magento2plugin .magento .packages .File ;
3332import java .util .Properties ;
33+ import javax .swing .JOptionPane ;
34+ import org .jetbrains .annotations .NotNull ;
3435
3536public class ModuleGraphQlResolverClassGenerator extends FileGenerator {
36- private GraphQlResolverFileData graphQlResolverFileData ;
37- private Project project ;
38- private ValidatorBundle validatorBundle ;
39- private CommonBundle commonBundle ;
37+ private final GraphQlResolverFileData graphQlResolverFileData ;
38+ private final Project project ;
39+ private final ValidatorBundle validatorBundle ;
40+ private final CommonBundle commonBundle ;
4041 private final DirectoryGenerator directoryGenerator ;
4142 private final FileFromTemplateGenerator fileFromTemplateGenerator ;
4243 private final GetFirstClassOfFile getFirstClassOfFile ;
4344
44- public ModuleGraphQlResolverClassGenerator (@ NotNull GraphQlResolverFileData graphQlResolverFileData , Project project ) {
45+ /**
46+ * Construct generator.
47+ *
48+ * @param graphQlResolverFileData GraphQlResolverFileData
49+ * @param project Project
50+ */
51+ public ModuleGraphQlResolverClassGenerator (
52+ final @ NotNull GraphQlResolverFileData graphQlResolverFileData ,
53+ final Project project
54+ ) {
4555 super (project );
4656 this .directoryGenerator = DirectoryGenerator .getInstance ();
4757 this .fileFromTemplateGenerator = new FileFromTemplateGenerator (project );
@@ -53,17 +63,21 @@ public ModuleGraphQlResolverClassGenerator(@NotNull GraphQlResolverFileData grap
5363 }
5464
5565 @ Override
56- public PsiFile generate (String actionName ) {
66+ public PsiFile generate (final String actionName ) {
5767 final PsiFile [] graphQlFile = {null };
5868 WriteCommandAction .runWriteCommandAction (project , () -> {
59- PhpClass graphQlResolverClass = GetPhpClassByFQN .getInstance (project ).execute (graphQlResolverFileData .getGraphQlResolverClassFqn ());
69+ PhpClass graphQlResolverClass = GetPhpClassByFQN .getInstance (project )
70+ .execute (graphQlResolverFileData .getGraphQlResolverClassFqn ());
6071
6172 if (graphQlResolverClass == null ) {
6273 graphQlResolverClass = createGraphQlResolverClass (actionName );
6374 }
6475
6576 if (graphQlResolverClass == null ) {
66- String errorMessage = validatorBundle .message ("validator.file.cantBeCreated" , "GraphQL Resolver Class" );
77+ final String errorMessage = validatorBundle .message (
78+ "validator.file.cantBeCreated" ,
79+ "GraphQL Resolver Class"
80+ );
6781 JOptionPane .showMessageDialog (
6882 null ,
6983 errorMessage ,
@@ -74,30 +88,35 @@ public PsiFile generate(String actionName) {
7488 return ;
7589 }
7690
77- Properties attributes = new Properties ();
78- String methodTemplate = PhpCodeUtil .getCodeTemplate (
91+ final Properties attributes = new Properties ();
92+ final String methodTemplate = PhpCodeUtil .getCodeTemplate (
7993 GraphQlResolverPhp .GRAPHQL_RESOLVER_TEMPLATE_NAME , attributes , project );
8094
8195 graphQlFile [0 ] = graphQlResolverClass .getContainingFile ();
82- CodeStyleSettings codeStyleSettings = new CodeStyleSettings ((PhpFile ) graphQlFile [0 ]);
96+ final CodeStyleSettings codeStyleSettings = new CodeStyleSettings (
97+ (PhpFile ) graphQlFile [0 ]
98+ );
8399 codeStyleSettings .adjustBeforeWrite ();
84100
85- PsiDocumentManager psiDocumentManager = PsiDocumentManager .getInstance (project );
86- Document document = psiDocumentManager .getDocument (graphQlFile [0 ]);
87- int insertPos = getInsertPos (graphQlResolverClass );
101+ final PsiDocumentManager psiDocumentManager = PsiDocumentManager .getInstance (project );
102+ final Document document = psiDocumentManager .getDocument (graphQlFile [0 ]);
103+ final int insertPos = getInsertPos (graphQlResolverClass );
88104 document .insertString (insertPos , methodTemplate );
89- int endPos = insertPos + methodTemplate .length () + 1 ;
105+ final int endPos = insertPos + methodTemplate .length () + 1 ;
90106 CodeStyleManager .getInstance (project ).reformatText (graphQlFile [0 ], insertPos , endPos );
91107 psiDocumentManager .commitDocument (document );
92108 codeStyleSettings .restore ();
93109 });
94110 return graphQlFile [0 ];
95111 }
96112
97- private int getInsertPos (PhpClass graphQlResolverClass ) {
113+ private int getInsertPos (final PhpClass graphQlResolverClass ) {
98114 int insertPos = -1 ;
99- LeafPsiElement [] leafElements = PsiTreeUtil .getChildrenOfType (graphQlResolverClass , LeafPsiElement .class );
100- for (LeafPsiElement leafPsiElement : leafElements ) {
115+ final LeafPsiElement [] leafElements = PsiTreeUtil .getChildrenOfType (
116+ graphQlResolverClass ,
117+ LeafPsiElement .class
118+ );
119+ for (final LeafPsiElement leafPsiElement : leafElements ) {
101120 if (!leafPsiElement .getText ().equals (MagentoPhpClass .CLOSING_TAG )) {
102121 continue ;
103122 }
@@ -106,17 +125,23 @@ private int getInsertPos(PhpClass graphQlResolverClass) {
106125 return insertPos ;
107126 }
108127
109- private PhpClass createGraphQlResolverClass (String actionName ) {
128+ private PhpClass createGraphQlResolverClass (final String actionName ) {
110129 PsiDirectory parentDirectory = new ModuleIndex (project )
111130 .getModuleDirectoryByModuleName (graphQlResolverFileData .getGraphQlResolverModule ());
112- String [] graphQlResolverDirectories = graphQlResolverFileData .getGraphQlResolverDirectory ().split (File .separator );
113- for (String graphQlResolverDirectory : graphQlResolverDirectories ) {
114- parentDirectory = directoryGenerator .findOrCreateSubdirectory (parentDirectory , graphQlResolverDirectory );
131+ final String [] graphQlResolverDirectories = graphQlResolverFileData
132+ .getGraphQlResolverDirectory ().split (File .separator );
133+ for (final String graphQlResolverDirectory : graphQlResolverDirectories ) {
134+ parentDirectory = directoryGenerator .findOrCreateSubdirectory (
135+ parentDirectory ,
136+ graphQlResolverDirectory
137+ );
115138 }
116139
117- Properties attributes = getAttributes ();
118- PsiFile graphQlResolverFile = fileFromTemplateGenerator .generate (
119- GraphQlResolverPhp .getInstance (graphQlResolverFileData .getGraphQlResolverClassName ()),
140+ final Properties attributes = getAttributes ();
141+ final PsiFile graphQlResolverFile = fileFromTemplateGenerator .generate (
142+ GraphQlResolverPhp .getInstance (
143+ graphQlResolverFileData .getGraphQlResolverClassName ()
144+ ),
120145 attributes ,
121146 parentDirectory ,
122147 actionName
@@ -127,8 +152,10 @@ private PhpClass createGraphQlResolverClass(String actionName) {
127152 return getFirstClassOfFile .execute ((PhpFile ) graphQlResolverFile );
128153 }
129154
130- protected void fillAttributes (Properties attributes ) {
131- String graphQlResolverClassName = graphQlResolverFileData .getGraphQlResolverClassName ();
155+ @ Override
156+ protected void fillAttributes (final Properties attributes ) {
157+ final String graphQlResolverClassName
158+ = graphQlResolverFileData .getGraphQlResolverClassName ();
132159 attributes .setProperty ("NAME" , graphQlResolverClassName );
133160 attributes .setProperty ("NAMESPACE" , graphQlResolverFileData .getNamespace ());
134161 }
0 commit comments