1313import com .magento .idea .magento2plugin .magento .packages .ComponentType ;
1414import com .magento .idea .magento2plugin .magento .packages .Package ;
1515import com .magento .idea .magento2plugin .util .magento .GetMagentoModuleUtil ;
16- import java .util .Objects ;
1716import org .jetbrains .annotations .NotNull ;
1817
1918public class NewSetupDataPatchAction extends CustomGeneratorContextAction {
2019
2120 public static final String ACTION_NAME = "Magento 2 Setup Data Patch" ;
2221 public static final String ACTION_DESCRIPTION = "Create a new Magento 2 Setup Data Patch" ;
23- public static final String ROOT_DIRECTORY = "Setup" ;
22+ public static final String SETUP_DIRECTORY = "Setup" ;
2423 public static final String PATCH_DIRECTORY = "Patch" ;
2524 public static final String DATA_DIRECTORY = "Data" ;
2625
@@ -40,11 +39,14 @@ public void actionPerformed(final @NotNull AnActionEvent event) {
4039 if (module .length != 2 ) { //NOPMD
4140 return ;
4241 }
43- final PsiDirectory rooDirectory = moduleData .getModuleDir ().findSubdirectory (
44- ROOT_DIRECTORY
42+ final PsiDirectory rootDirectory = moduleData .getModuleDir ().findSubdirectory (
43+ SETUP_DIRECTORY
4544 );
4645
47- NewSetupDataPatchDialog .open (event .getProject (), rooDirectory , module [0 ], module [1 ]);
46+ if (rootDirectory == null ) {
47+ return ;
48+ }
49+ NewSetupDataPatchDialog .open (event .getProject (), rootDirectory , module [0 ], module [1 ]);
4850 }
4951
5052 @ Override
@@ -57,28 +59,30 @@ protected boolean isVisible(
5759 return false ;
5860 }
5961
60- if (ROOT_DIRECTORY .equals (targetDirectory .getName ())) {
61- return Objects .requireNonNull (targetDirectory .getParentDirectory ()).getName ().equals (
62- moduleData .getModuleDir ().getName ()
63- );
62+ if (SETUP_DIRECTORY .equals (targetDirectory .getName ())) {
63+ return moduleData .getModuleDir ().equals (targetDirectory .getParentDirectory ());
6464 }
6565
6666 if (PATCH_DIRECTORY .equals (targetDirectory .getName ())) {
67- return ROOT_DIRECTORY .equals (Objects .requireNonNull (
68- targetDirectory .getParentDirectory ()).getName ()
69- );
67+ final PsiDirectory setupDirCandidate = targetDirectory .getParentDirectory ();
68+
69+ return setupDirCandidate != null
70+ && SETUP_DIRECTORY .equals (setupDirCandidate .getName ())
71+ && moduleData .getModuleDir ().equals (setupDirCandidate .getParentDirectory ());
7072 }
7173
7274 if (DATA_DIRECTORY .equals (targetDirectory .getName ())) {
73- final PsiDirectory parentDirectory = Objects .requireNonNull (
74- targetDirectory .getParentDirectory ()
75- );
76-
77- if (PATCH_DIRECTORY .equals (parentDirectory .getName ())) {
78- return ROOT_DIRECTORY .equals (Objects .requireNonNull (
79- parentDirectory .getParentDirectory ()).getName ()
80- );
75+ final PsiDirectory patchDirCandidate = targetDirectory .getParentDirectory ();
76+
77+ if (patchDirCandidate == null ) {
78+ return false ;
8179 }
80+ final PsiDirectory setupDirCandidate = patchDirCandidate .getParentDirectory ();
81+
82+ return setupDirCandidate != null
83+ && PATCH_DIRECTORY .equals (patchDirCandidate .getName ())
84+ && SETUP_DIRECTORY .equals (setupDirCandidate .getName ())
85+ && moduleData .getModuleDir ().equals (setupDirCandidate .getParentDirectory ());
8286 }
8387
8488 return false ;
0 commit comments