1515import com .magento .idea .magento2plugin .actions .generation .dialog .validator .rule .NotEmptyRule ;
1616import com .magento .idea .magento2plugin .actions .generation .dialog .validator .rule .PhpClassRule ;
1717import com .magento .idea .magento2plugin .actions .generation .generator .ModuleSetupDataPatchGenerator ;
18+ import com .magento .idea .magento2plugin .actions .generation .generator .util .DirectoryGenerator ;
1819import com .magento .idea .magento2plugin .magento .files .ModuleSetupDataPatchFile ;
20+ import com .magento .idea .magento2plugin .magento .packages .File ;
1921import java .awt .event .ActionEvent ;
2022import java .awt .event .KeyEvent ;
2123import java .awt .event .WindowAdapter ;
2224import java .awt .event .WindowEvent ;
23- import java .util .Objects ;
2425import javax .swing .JButton ;
2526import javax .swing .JComponent ;
2627import javax .swing .JLabel ;
@@ -128,11 +129,15 @@ protected void onOK() {
128129 }
129130
130131 private void generateFile () {
132+ final PsiDirectory directory = DirectoryGenerator .getInstance ().findOrCreateSubdirectories (
133+ baseDir , NewSetupDataPatchAction .PATCH_DIRECTORY + File .separator
134+ + NewSetupDataPatchAction .DATA_DIRECTORY
135+ );
131136 final ModuleSetupDataPatchGenerator generator = new ModuleSetupDataPatchGenerator (
132137 new ModuleSetupDataPatchData (
133138 modulePackage ,
134139 moduleName ,
135- createDirectory ( baseDir ) ,
140+ directory ,
136141 getClassName ()
137142 ),
138143 project
@@ -146,16 +151,22 @@ public String getClassName() {
146151 }
147152
148153 private boolean validateFields () {
149- final PsiDirectory targetDirectory = getDirectory (baseDir );
154+ final PsiDirectory patchDirectory = baseDir .findSubdirectory (
155+ NewSetupDataPatchAction .PATCH_DIRECTORY
156+ );
157+ PsiDirectory directory = null ;
150158
151- if (NewSetupDataPatchAction .DATA_DIRECTORY .equals (targetDirectory .getName ())) {
152- final PsiFile [] files = targetDirectory .getFiles ();
153- for (final PsiFile file : files ) {
159+ if (patchDirectory != null ) {
160+ directory = patchDirectory .findSubdirectory (NewSetupDataPatchAction .DATA_DIRECTORY );
161+ }
162+
163+ if (directory != null ) {
164+ for (final PsiFile file : directory .getFiles ()) {
154165 final String className = ModuleSetupDataPatchFile .resolveClassNameFromInput (
155166 getClassName ()
156167 );
157168
158- if (file .getName ().equals (className + ".php" )) {
169+ if (file .getName ().equals (className + ModuleSetupDataPatchFile . EXTENSION )) {
159170 showErrorMessage (
160171 fieldsValidationsList .get (0 ).getField (),
161172 "Class name `" + className + "` already exist."
@@ -165,59 +176,7 @@ private boolean validateFields() {
165176 }
166177 }
167178 }
168- return validateFormFields ();
169- }
170-
171- private PsiDirectory getDirectory (final PsiDirectory targetDirectory ) {
172- if (NewSetupDataPatchAction .ROOT_DIRECTORY .equals (baseDir .getName ())) {
173- final PsiDirectory subDirectoryPatch = baseDir .findSubdirectory (
174- NewSetupDataPatchAction .PATCH_DIRECTORY
175- );
176179
177- if (subDirectoryPatch != null ) {
178- return subDirectoryPatch .findSubdirectory (NewSetupDataPatchAction .DATA_DIRECTORY );
179- }
180- }
181- if (NewSetupDataPatchAction .PATCH_DIRECTORY .equals (baseDir .getName ())) {
182- return baseDir .findSubdirectory (NewSetupDataPatchAction .DATA_DIRECTORY );
183- }
184-
185- return targetDirectory ;
186- }
187-
188- private PsiDirectory createDirectory (final PsiDirectory targetDirectory ) {
189- if (NewSetupDataPatchAction .ROOT_DIRECTORY .equals (targetDirectory .getName ())) {
190- final PsiDirectory subDirectoryPatch = targetDirectory .findSubdirectory (
191- NewSetupDataPatchAction .PATCH_DIRECTORY
192- );
193-
194- if (subDirectoryPatch == null ) {
195- return targetDirectory .createSubdirectory (
196- NewSetupDataPatchAction .PATCH_DIRECTORY
197- ).createSubdirectory (NewSetupDataPatchAction .DATA_DIRECTORY );
198- }
199- final PsiDirectory subDirectoryData = subDirectoryPatch .findSubdirectory (
200- NewSetupDataPatchAction .DATA_DIRECTORY
201- );
202-
203- return Objects .requireNonNullElseGet (
204- subDirectoryData , () -> subDirectoryPatch .createSubdirectory (
205- NewSetupDataPatchAction .DATA_DIRECTORY
206- )
207- );
208- }
209- if (NewSetupDataPatchAction .PATCH_DIRECTORY .equals (targetDirectory .getName ())) {
210- final PsiDirectory subDirectoryData = targetDirectory .findSubdirectory (
211- NewSetupDataPatchAction .DATA_DIRECTORY
212- );
213-
214- return Objects .requireNonNullElseGet (
215- subDirectoryData , () -> targetDirectory .createSubdirectory (
216- NewSetupDataPatchAction .DATA_DIRECTORY
217- )
218- );
219- }
220-
221- return targetDirectory ;
180+ return validateFormFields ();
222181 }
223182}
0 commit comments