diff --git a/resources/fileTemplates/internal/Magento Entity Delete Controller Class.php.ft b/resources/fileTemplates/internal/Magento Entity Delete Controller Class.php.ft
index 432f096c4..01097476c 100644
--- a/resources/fileTemplates/internal/Magento Entity Delete Controller Class.php.ft
+++ b/resources/fileTemplates/internal/Magento Entity Delete Controller Class.php.ft
@@ -27,7 +27,7 @@ class ${CLASS_NAME} extends ${EXTENDS} implements ${IMPLEMENTS_POST}, ${IMPLEMEN
/**
* @param Context $context
- * @param DeleteByIdCommand $deleteByIdCommand
+ * @param ${DELETE_COMMAND} $deleteByIdCommand
*/
public function __construct(
${CONTEXT} $context,
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/DeleteEntityByIdCommandData.java b/src/com/magento/idea/magento2plugin/actions/generation/data/DeleteEntityByIdCommandData.java
index 446730e54..bd9722d72 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/data/DeleteEntityByIdCommandData.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/data/DeleteEntityByIdCommandData.java
@@ -14,6 +14,7 @@ public class DeleteEntityByIdCommandData {
private final String entityId;
private final String modelName;
private final String resourceModelName;
+ private final String aclResource;
/**
* Delete Command DTO Constructor.
@@ -23,19 +24,22 @@ public class DeleteEntityByIdCommandData {
* @param entityId String
* @param modelName String
* @param resourceModelName String
+ * @param aclResource String
*/
public DeleteEntityByIdCommandData(
final @NotNull String moduleName,
final @NotNull String entityName,
final @NotNull String entityId,
final @NotNull String modelName,
- final @NotNull String resourceModelName
+ final @NotNull String resourceModelName,
+ final @NotNull String aclResource
) {
this.moduleName = moduleName;
this.entityName = entityName;
this.entityId = entityId;
this.modelName = modelName;
this.resourceModelName = resourceModelName;
+ this.aclResource = aclResource;
}
/**
@@ -82,4 +86,13 @@ public String getModelName() {
public String getResourceModelName() {
return resourceModelName;
}
+
+ /**
+ * Get ACL resource.
+ *
+ * @return String
+ */
+ public String getAclResource() {
+ return aclResource;
+ }
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/DeleteEntityControllerFileData.java b/src/com/magento/idea/magento2plugin/actions/generation/data/DeleteEntityControllerFileData.java
index f83516204..0d18938fa 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/data/DeleteEntityControllerFileData.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/data/DeleteEntityControllerFileData.java
@@ -13,6 +13,7 @@ public class DeleteEntityControllerFileData {
private final String moduleName;
private final String acl;
private final String entityId;
+ private final boolean hasDeleteCommandInterface;
/**
* Controller Delete file constructor.
@@ -21,17 +22,20 @@ public class DeleteEntityControllerFileData {
* @param moduleName String
* @param acl String
* @param entityId String
+ * @param hasDeleteCommandInterface boolean
*/
public DeleteEntityControllerFileData(
final @NotNull String entityName,
final @NotNull String moduleName,
final @NotNull String acl,
- final @NotNull String entityId
+ final @NotNull String entityId,
+ final boolean hasDeleteCommandInterface
) {
this.entityName = entityName;
this.moduleName = moduleName;
this.acl = acl;
this.entityId = entityId;
+ this.hasDeleteCommandInterface = hasDeleteCommandInterface;
}
/**
@@ -69,4 +73,13 @@ public String getAcl() {
public String getEntityId() {
return entityId;
}
+
+ /**
+ * Check if delete command has Web API interface.
+ *
+ * @return boolean
+ */
+ public boolean isHasDeleteCommandInterface() {
+ return hasDeleteCommandInterface;
+ }
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/EntityDataMapperData.java b/src/com/magento/idea/magento2plugin/actions/generation/data/EntityDataMapperData.java
index 4a4e24c68..d954d4c7d 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/data/EntityDataMapperData.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/data/EntityDataMapperData.java
@@ -15,7 +15,7 @@ public class EntityDataMapperData {
private final String modelName;
private final String dtoName;
private final String dtoInterfaceName;
- private final boolean dtoWithInterface;
+ private final boolean hasDtoInterface;
/**
* Magento entity data mapper data constructor.
@@ -25,7 +25,7 @@ public class EntityDataMapperData {
* @param modelName String
* @param dtoName String
* @param dtoInterfaceName String
- * @param isDtoWithInterface boolean
+ * @param hasDtoInterface boolean
*/
public EntityDataMapperData(
final @NotNull String moduleName,
@@ -33,14 +33,14 @@ public EntityDataMapperData(
final @NotNull String modelName,
final @NotNull String dtoName,
final @NotNull String dtoInterfaceName,
- final boolean isDtoWithInterface
+ final boolean hasDtoInterface
) {
this.moduleName = moduleName;
this.entityName = entityName;
this.modelName = modelName;
this.dtoName = dtoName;
this.dtoInterfaceName = dtoInterfaceName;
- this.dtoWithInterface = isDtoWithInterface;
+ this.hasDtoInterface = hasDtoInterface;
}
/**
@@ -93,7 +93,7 @@ public String getDtoInterfaceName() {
*
* @return boolean
*/
- public boolean isDtoWithInterface() {
- return dtoWithInterface;
+ public boolean isHasDtoInterface() {
+ return hasDtoInterface;
}
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/GetListQueryModelData.java b/src/com/magento/idea/magento2plugin/actions/generation/data/GetListQueryModelData.java
index 882f433aa..67915847e 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/data/GetListQueryModelData.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/data/GetListQueryModelData.java
@@ -13,6 +13,7 @@ public class GetListQueryModelData {
private final String entityName;
private final String modelName;
private final String collectionName;
+ private final String aclResource;
/**
* Query Model DTO Constructor.
@@ -21,17 +22,20 @@ public class GetListQueryModelData {
* @param entityName String
* @param modelName String
* @param collectionName String
+ * @param aclResource String
*/
public GetListQueryModelData(
final @NotNull String moduleName,
final @NotNull String entityName,
final @NotNull String modelName,
- final @NotNull String collectionName
+ final @NotNull String collectionName,
+ final @NotNull String aclResource
) {
this.moduleName = moduleName;
this.entityName = entityName;
this.modelName = modelName;
this.collectionName = collectionName;
+ this.aclResource = aclResource;
}
/**
@@ -69,4 +73,13 @@ public String getModelName() {
public String getCollectionName() {
return collectionName;
}
+
+ /**
+ * Get entity acl resource.
+ *
+ * @return String
+ */
+ public String getAclResource() {
+ return aclResource;
+ }
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/SaveEntityCommandData.java b/src/com/magento/idea/magento2plugin/actions/generation/data/SaveEntityCommandData.java
index 257b932ab..ecea167c0 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/data/SaveEntityCommandData.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/data/SaveEntityCommandData.java
@@ -16,6 +16,7 @@ public class SaveEntityCommandData {
private final String dtoName;
private final String dtoInterfaceName;
private final boolean dtoWithInterface;
+ private final String aclResource;
/**
* Save Command DTO Constructor.
@@ -27,6 +28,7 @@ public class SaveEntityCommandData {
* @param dtoName String
* @param dtoInterfaceName String
* @param isDtoWithInterface boolean
+ * @param aclResource String
*/
public SaveEntityCommandData(
final @NotNull String moduleName,
@@ -35,7 +37,8 @@ public SaveEntityCommandData(
final @NotNull String resourceModelName,
final @NotNull String dtoName,
final @NotNull String dtoInterfaceName,
- final boolean isDtoWithInterface
+ final boolean isDtoWithInterface,
+ final @NotNull String aclResource
) {
this.moduleName = moduleName;
this.entityName = entityName;
@@ -44,6 +47,7 @@ public SaveEntityCommandData(
this.dtoName = dtoName;
this.dtoInterfaceName = dtoInterfaceName;
this.dtoWithInterface = isDtoWithInterface;
+ this.aclResource = aclResource;
}
/**
@@ -108,4 +112,13 @@ public String getDtoInterfaceName() {
public boolean isDtoWithInterface() {
return dtoWithInterface;
}
+
+ /**
+ * Get ACL resource.
+ *
+ * @return String
+ */
+ public String getAclResource() {
+ return aclResource;
+ }
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/SaveEntityControllerFileData.java b/src/com/magento/idea/magento2plugin/actions/generation/data/SaveEntityControllerFileData.java
index 5508f1bc3..0cb54aedc 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/data/SaveEntityControllerFileData.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/data/SaveEntityControllerFileData.java
@@ -15,7 +15,8 @@ public class SaveEntityControllerFileData {
private final String entityId;
private final String dtoName;
private final String dtoInterfaceName;
- private final boolean dtoWithInterface;
+ private final boolean hasDtoInterface;
+ private final boolean hasSaveCommandInterface;
/**
* Controller save file constructor.
@@ -26,7 +27,8 @@ public class SaveEntityControllerFileData {
* @param entityId String
* @param dtoName String
* @param dtoInterfaceName String
- * @param isDtoWithInterface boolean
+ * @param hasDtoInterface boolean
+ * @param hasSaveCommandInterface boolean
*/
public SaveEntityControllerFileData(
final @NotNull String entityName,
@@ -35,7 +37,8 @@ public SaveEntityControllerFileData(
final @NotNull String entityId,
final @NotNull String dtoName,
final @NotNull String dtoInterfaceName,
- final boolean isDtoWithInterface
+ final boolean hasDtoInterface,
+ final boolean hasSaveCommandInterface
) {
this.entityName = entityName;
this.moduleName = moduleName;
@@ -43,7 +46,8 @@ public SaveEntityControllerFileData(
this.entityId = entityId;
this.dtoName = dtoName;
this.dtoInterfaceName = dtoInterfaceName;
- this.dtoWithInterface = isDtoWithInterface;
+ this.hasDtoInterface = hasDtoInterface;
+ this.hasSaveCommandInterface = hasSaveCommandInterface;
}
/**
@@ -105,7 +109,16 @@ public String getDtoInterfaceName() {
*
* @return boolean
*/
- public boolean isDtoWithInterface() {
- return dtoWithInterface;
+ public boolean isHasDtoInterface() {
+ return hasDtoInterface;
+ }
+
+ /**
+ * Check if save command has interface.
+ *
+ * @return boolean
+ */
+ public boolean isHasSaveCommandInterface() {
+ return hasSaveCommandInterface;
}
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/UiComponentDataProviderData.java b/src/com/magento/idea/magento2plugin/actions/generation/data/UiComponentDataProviderData.java
index fe112761f..fbd7a09f7 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/data/UiComponentDataProviderData.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/data/UiComponentDataProviderData.java
@@ -11,6 +11,7 @@ public class UiComponentDataProviderData {
private final String path;
private final String entityName;
private final String entityIdFieldName;
+ private final boolean hasQueryInterface;
/**
* UiComponentGridDataProviderData constructor.
@@ -22,7 +23,7 @@ public UiComponentDataProviderData(
final String name,
final String path
) {
- this(name, path, null, null);
+ this(name, path, null, null, false);
}
/**
@@ -32,17 +33,20 @@ public UiComponentDataProviderData(
* @param path String
* @param entityName String
* @param entityIdFieldName String
+ * @param hasQueryInterface boolean
*/
public UiComponentDataProviderData(
final String name,
final String path,
final String entityName,
- final String entityIdFieldName
+ final String entityIdFieldName,
+ final boolean hasQueryInterface
) {
this.name = name;
this.path = path;
this.entityName = entityName;
this.entityIdFieldName = entityIdFieldName;
+ this.hasQueryInterface = hasQueryInterface;
}
/**
@@ -80,4 +84,13 @@ public String getEntityName() {
public String getEntityIdFieldName() {
return entityIdFieldName;
}
+
+ /**
+ * Check if query service has Web API interface.
+ *
+ * @return boolean
+ */
+ public boolean isHasQueryInterface() {
+ return hasQueryInterface;
+ }
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/DataProviderDtoConverter.java b/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/DataProviderDtoConverter.java
index ea11eb0d6..d91fdf242 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/DataProviderDtoConverter.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/DataProviderDtoConverter.java
@@ -30,7 +30,8 @@ public DataProviderDtoConverter(
newEntityDialogData.getEntityName().concat("DataProvider"),
UiComponentDataProviderFile.DIRECTORY,
newEntityDialogData.getEntityName(),
- newEntityDialogData.getIdFieldName()
+ newEntityDialogData.getIdFieldName(),
+ newEntityDialogData.hasWebApi()
);
}
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/DeleteEntityByIdCommandDtoConverter.java b/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/DeleteEntityByIdCommandDtoConverter.java
index d0f9e457c..1328ef2b9 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/DeleteEntityByIdCommandDtoConverter.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/DeleteEntityByIdCommandDtoConverter.java
@@ -29,7 +29,8 @@ public DeleteEntityByIdCommandDtoConverter(
newEntityDialogData.getEntityName(),
newEntityDialogData.getIdFieldName(),
newEntityDialogData.getEntityName().concat("Model"),
- newEntityDialogData.getEntityName().concat("Resource")
+ newEntityDialogData.getEntityName().concat("Resource"),
+ newEntityDialogData.getAclId()
);
}
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/FormDeleteControllerDtoConverter.java b/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/FormDeleteControllerDtoConverter.java
index c3a5f797d..9c67a43c3 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/FormDeleteControllerDtoConverter.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/FormDeleteControllerDtoConverter.java
@@ -28,7 +28,8 @@ public FormDeleteControllerDtoConverter(
newEntityDialogData.getEntityName(),
generationContextData.getModuleName(),
newEntityDialogData.getAclId(),
- newEntityDialogData.getIdFieldName()
+ newEntityDialogData.getIdFieldName(),
+ newEntityDialogData.hasWebApi()
);
}
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/FormSaveControllerDtoConverter.java b/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/FormSaveControllerDtoConverter.java
index c80380378..de354165e 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/FormSaveControllerDtoConverter.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/FormSaveControllerDtoConverter.java
@@ -31,7 +31,8 @@ public FormSaveControllerDtoConverter(
newEntityDialogData.getIdFieldName(),
newEntityDialogData.getEntityName().concat("Data"),
newEntityDialogData.getEntityName().concat("Interface"),
- newEntityDialogData.hasDtoInterface()
+ newEntityDialogData.hasDtoInterface(),
+ newEntityDialogData.hasWebApi()
);
}
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/GetListQueryDtoConverter.java b/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/GetListQueryDtoConverter.java
index 08acdfbc7..36f3b9ea9 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/GetListQueryDtoConverter.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/GetListQueryDtoConverter.java
@@ -28,7 +28,8 @@ public GetListQueryDtoConverter(
generationContextData.getModuleName(),
newEntityDialogData.getEntityName(),
newEntityDialogData.getEntityName().concat("Model"),
- newEntityDialogData.getEntityName().concat("Collection")
+ newEntityDialogData.getEntityName().concat("Collection"),
+ newEntityDialogData.getAclId()
);
}
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/SaveEntityCommandDtoConverter.java b/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/SaveEntityCommandDtoConverter.java
index 85d9182b7..bc2b0086c 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/SaveEntityCommandDtoConverter.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/data/converter/newentitydialog/SaveEntityCommandDtoConverter.java
@@ -31,7 +31,8 @@ public SaveEntityCommandDtoConverter(
newEntityDialogData.getEntityName().concat("Resource"),
newEntityDialogData.getEntityName().concat("Data"),
newEntityDialogData.getEntityName().concat("Interface"),
- newEntityDialogData.hasDtoInterface()
+ newEntityDialogData.hasDtoInterface(),
+ newEntityDialogData.getAclId()
);
}
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/dialog/EntityCreatorContextData.java b/src/com/magento/idea/magento2plugin/actions/generation/data/dialog/EntityCreatorContextData.java
index 63ac992b8..7ccd81d0a 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/data/dialog/EntityCreatorContextData.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/data/dialog/EntityCreatorContextData.java
@@ -21,6 +21,7 @@ public class EntityCreatorContextData implements GenerationContextData {
private final String moduleName;
private final String actionName;
private final boolean hasOpenFileFlag;
+ private final boolean webApi;
private final String indexViewAction;
private final String editViewAction;
private final String newViewAction;
@@ -41,6 +42,7 @@ public class EntityCreatorContextData implements GenerationContextData {
* @param moduleName String
* @param actionName String
* @param hasOpenFileFlag boolean
+ * @param hasWebApi boolean
* @param indexViewAction String
* @param editViewAction String
* @param newViewAction String
@@ -60,6 +62,7 @@ public EntityCreatorContextData(
final @NotNull String moduleName,
final @NotNull String actionName,
final boolean hasOpenFileFlag,
+ final boolean hasWebApi,
final @NotNull String indexViewAction,
final @NotNull String editViewAction,
final @NotNull String newViewAction,
@@ -77,6 +80,7 @@ public EntityCreatorContextData(
this.moduleName = moduleName;
this.actionName = actionName;
this.hasOpenFileFlag = hasOpenFileFlag;
+ this.webApi = hasWebApi;
this.indexViewAction = indexViewAction;
this.editViewAction = editViewAction;
this.newViewAction = newViewAction;
@@ -111,6 +115,15 @@ public boolean checkIfHasOpenFileFlag() {
return hasOpenFileFlag;
}
+ /**
+ * Check if entity creator should generate Web API for entity management services.
+ *
+ * @return boolean
+ */
+ public boolean hasWebApi() {
+ return webApi;
+ }
+
/**
* Get index action.
*
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/data/dialog/NewEntityDialogData.java b/src/com/magento/idea/magento2plugin/actions/generation/data/dialog/NewEntityDialogData.java
index ba6d6c2f3..19360cb98 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/data/dialog/NewEntityDialogData.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/data/dialog/NewEntityDialogData.java
@@ -18,6 +18,7 @@ public class NewEntityDialogData implements DialogData {
private final String tableResource;
private final boolean adminUiComponents;
private final boolean dtoInterface;
+ private final boolean webApi;
// Admin UI Components tab data.
private final String route;
@@ -55,6 +56,7 @@ public class NewEntityDialogData implements DialogData {
* @param tableResource String
* @param hasAdminUiComponents boolean
* @param hasDtoInterface boolean
+ * @param hasWebApi boolean
* @param route String
* @param formLabel String
* @param formName String
@@ -82,6 +84,7 @@ public NewEntityDialogData(
final @NotNull String tableResource,
final boolean hasAdminUiComponents,
final boolean hasDtoInterface,
+ final boolean hasWebApi,
final @NotNull String route,
final @NotNull String formLabel,
final @NotNull String formName,
@@ -108,6 +111,7 @@ public NewEntityDialogData(
this.tableResource = tableResource;
this.adminUiComponents = hasAdminUiComponents;
this.dtoInterface = hasDtoInterface;
+ this.webApi = hasWebApi;
this.route = route;
this.formLabel = formLabel;
this.formName = formName;
@@ -191,6 +195,15 @@ public boolean hasDtoInterface() {
return dtoInterface;
}
+ /**
+ * Check if has web api services.
+ *
+ * @return boolean
+ */
+ public boolean hasWebApi() {
+ return webApi;
+ }
+
/**
* Get route.
*
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewEntityDialog.form b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewEntityDialog.form
index 3f76f15e7..45b9e07da 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewEntityDialog.form
+++ b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewEntityDialog.form
@@ -21,7 +21,7 @@
-
+
@@ -134,7 +134,7 @@
-
+
@@ -206,6 +206,14 @@
+
+
+
+
+
+
+
+
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewEntityDialog.java b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewEntityDialog.java
index b94448b76..38db2f6a0 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewEntityDialog.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewEntityDialog.java
@@ -218,6 +218,7 @@ public class NewEntityDialog extends AbstractDialog {
private JLabel dbTableNameErrorMessage;
private JLabel entityIdErrorMessage;
private JLabel routeErrorMessage;
+ private JCheckBox createWebApi;
private JTextField observerName;
private final ProcessWorker.InProgressFlag onOkActionFired;
@@ -462,6 +463,7 @@ private EntityCreatorContextData getEntityCreatorContextData(
moduleName,
ACTION_NAME,
OPEN_FILES_FLAG,
+ dialogData.hasWebApi(),
actionsPathPrefix.concat("index"),
actionsPathPrefix.concat("edit"),
actionsPathPrefix.concat("new"),
@@ -718,6 +720,7 @@ private NewEntityDialogData getNewEntityDialogData() {
getTableResource(),
createUiComponent.isSelected(),
createInterface.isSelected(),
+ createWebApi.isSelected(),
route.getText().trim(),
formLabel.getText().trim(),
formName.getText().trim(),
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewInterfaceForServiceDialog.java b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewInterfaceForServiceDialog.java
index f242d1b62..fef954f4a 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewInterfaceForServiceDialog.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewInterfaceForServiceDialog.java
@@ -9,20 +9,15 @@
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiDirectory;
import com.jetbrains.php.lang.actions.PhpNamedElementNode;
-import com.jetbrains.php.lang.psi.PhpFile;
import com.jetbrains.php.lang.psi.elements.Method;
import com.jetbrains.php.lang.psi.elements.PhpClass;
import com.magento.idea.magento2plugin.actions.generation.NewWebApiInterfaceAction;
-import com.magento.idea.magento2plugin.actions.generation.data.PreferenceDiXmFileData;
import com.magento.idea.magento2plugin.actions.generation.data.php.WebApiInterfaceData;
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.annotation.FieldValidation;
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.annotation.RuleRegistry;
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.NotEmptyRule;
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.PhpClassRule;
-import com.magento.idea.magento2plugin.actions.generation.generator.PreferenceDiXmlGenerator;
import com.magento.idea.magento2plugin.actions.generation.generator.php.WebApiInterfaceGenerator;
-import com.magento.idea.magento2plugin.magento.packages.Areas;
-import com.magento.idea.magento2plugin.util.GetFirstClassOfFile;
import com.magento.idea.magento2plugin.util.magento.GetModuleNameByDirectoryUtil;
import com.magento.idea.magento2plugin.util.php.PhpTypeMetadataParserUtil;
import java.awt.event.KeyEvent;
@@ -31,7 +26,6 @@
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
-import java.util.Objects;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
@@ -179,26 +173,11 @@ private void onOK() {
}
final WebApiInterfaceData data = getDialogDataObject();
- final PhpFile webApiInterfaceFile = (PhpFile) new WebApiInterfaceGenerator(
+ new WebApiInterfaceGenerator(
data,
project
).generate(NewWebApiInterfaceAction.ACTION_NAME, true);
- if (webApiInterfaceFile != null) {
- final PhpClass interfaceClass =
- GetFirstClassOfFile.getInstance().execute(webApiInterfaceFile);
-
- new PreferenceDiXmlGenerator(
- new PreferenceDiXmFileData(
- moduleName,
- Objects.requireNonNull(interfaceClass).getPresentableFQN(),
- data.getClassFqn(),
- Areas.base.toString()
- ),
- project
- ).generate(NewWebApiInterfaceAction.ACTION_NAME, true);
- }
-
this.setVisible(false);
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/generator/DeleteEntityControllerFileGenerator.java b/src/com/magento/idea/magento2plugin/actions/generation/generator/DeleteEntityControllerFileGenerator.java
index 153892910..d8e7bff6d 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/generator/DeleteEntityControllerFileGenerator.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/generator/DeleteEntityControllerFileGenerator.java
@@ -71,7 +71,8 @@ protected void fillAttributes(final @NotNull Properties attributes) {
.append("DELETE_COMMAND",
new DeleteEntityByIdCommandFile(
data.getModuleName(),
- data.getEntityName()
+ data.getEntityName(),
+ data.isHasDeleteCommandInterface()
).getClassFqn()
)
.append("CONTEXT", BackendModuleType.CONTEXT.getType())
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/generator/EntityDataMapperGenerator.java b/src/com/magento/idea/magento2plugin/actions/generation/generator/EntityDataMapperGenerator.java
index 0deb41025..8046644f2 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/generator/EntityDataMapperGenerator.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/generator/EntityDataMapperGenerator.java
@@ -62,12 +62,12 @@ protected AbstractPhpFile initFile() {
@Override
protected void fillAttributes(final @NotNull Properties attributes) {
final ModelFile modelFile = new ModelFile(data.getModuleName(), data.getModelName());
- final DataModelFile dtoFile = new DataModelFile(data.getDtoName(), data.getModuleName());
+ final DataModelFile dtoFile = new DataModelFile(data.getModuleName(), data.getDtoName());
final DataModelInterfaceFile dtoInterfaceFile =
new DataModelInterfaceFile(data.getModuleName(), data.getDtoInterfaceName());
String dtoType;
- if (data.isDtoWithInterface()) {
+ if (data.isHasDtoInterface()) {
dtoType = dtoInterfaceFile.getClassFqn();
} else {
dtoType = dtoFile.getClassFqn();
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/generator/PhpFileGenerator.java b/src/com/magento/idea/magento2plugin/actions/generation/generator/PhpFileGenerator.java
index de6437ea6..2e7730f08 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/generator/PhpFileGenerator.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/generator/PhpFileGenerator.java
@@ -88,7 +88,7 @@ public PsiFile generate(final @NotNull String actionName) {
fileBaseDir,
actionName
);
- onFileGenerated(generatedFile);
+ onFileGenerated(generatedFile, actionName);
return generatedFile;
}
@@ -116,8 +116,10 @@ protected void onClassAlreadyExists(final @NotNull PhpClass phpClass) {
* Implement this method to add on file has been generated behaviour.
*
* @param generatedFile PsiFile
+ * @param actionName String
*/
- protected void onFileGenerated(final PsiFile generatedFile) {
+ @SuppressWarnings("PMD.UnusedFormalParameter")
+ protected void onFileGenerated(final PsiFile generatedFile, final @NotNull String actionName) {
if (generatedFile == null) {
JOptionPane.showMessageDialog(
null,
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/generator/SaveEntityControllerFileGenerator.java b/src/com/magento/idea/magento2plugin/actions/generation/generator/SaveEntityControllerFileGenerator.java
index 3b658d459..5c853b6b9 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/generator/SaveEntityControllerFileGenerator.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/generator/SaveEntityControllerFileGenerator.java
@@ -65,7 +65,7 @@ protected AbstractPhpFile initFile() {
protected void fillAttributes(final @NotNull Properties attributes) {
String dtoType;
- if (data.isDtoWithInterface()) {
+ if (data.isHasDtoInterface()) {
final DataModelInterfaceFile dataModelInterfaceFile =
new DataModelInterfaceFile(data.getModuleName(), data.getDtoInterfaceName());
dtoType = dataModelInterfaceFile.getClassFqn();
@@ -89,7 +89,8 @@ protected void fillAttributes(final @NotNull Properties attributes) {
.append("SAVE_COMMAND",
new SaveEntityCommandFile(
data.getModuleName(),
- data.getEntityName()
+ data.getEntityName(),
+ data.isHasSaveCommandInterface()
).getClassFqn()
)
.append("DATA_OBJECT", FrameworkLibraryType.DATA_OBJECT.getType())
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/generator/UiComponentDataProviderGenerator.java b/src/com/magento/idea/magento2plugin/actions/generation/generator/UiComponentDataProviderGenerator.java
index cf8e04309..bea312eb6 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/generator/UiComponentDataProviderGenerator.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/generator/UiComponentDataProviderGenerator.java
@@ -78,7 +78,11 @@ protected void fillAttributes(final @NotNull Properties attributes) {
.append("HAS_GET_LIST_QUERY", "true", false)
.append(
"GET_LIST_QUERY_TYPE",
- new GetListQueryFile(moduleName, data.getEntityName()).getClassFqn()
+ new GetListQueryFile(
+ moduleName,
+ data.getEntityName(),
+ data.isHasQueryInterface()
+ ).getClassFqn()
)
.append("REPORTING_TYPE", FrameworkLibraryType.REPORTING.getType())
.append("SEARCH_CRITERIA_BUILDER",
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/generator/php/WebApiInterfaceGenerator.java b/src/com/magento/idea/magento2plugin/actions/generation/generator/php/WebApiInterfaceGenerator.java
index 8d12a2256..a50decb59 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/generator/php/WebApiInterfaceGenerator.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/generator/php/WebApiInterfaceGenerator.java
@@ -7,16 +7,23 @@
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiFile;
+import com.jetbrains.php.lang.psi.PhpFile;
import com.jetbrains.php.lang.psi.elements.Method;
+import com.jetbrains.php.lang.psi.elements.PhpClass;
+import com.magento.idea.magento2plugin.actions.generation.data.PreferenceDiXmFileData;
import com.magento.idea.magento2plugin.actions.generation.data.php.WebApiInterfaceData;
import com.magento.idea.magento2plugin.actions.generation.generator.PhpFileGenerator;
+import com.magento.idea.magento2plugin.actions.generation.generator.PreferenceDiXmlGenerator;
import com.magento.idea.magento2plugin.actions.generation.generator.util.PhpClassGeneratorUtil;
import com.magento.idea.magento2plugin.magento.files.AbstractPhpFile;
import com.magento.idea.magento2plugin.magento.files.WebApiInterfaceFile;
+import com.magento.idea.magento2plugin.magento.packages.Areas;
+import com.magento.idea.magento2plugin.util.GetFirstClassOfFile;
import com.magento.idea.magento2plugin.util.php.PhpTypeMetadataParserUtil;
import com.magento.idea.magento2plugin.util.php.PhpTypeModifierUtil;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import java.util.Properties;
import org.jetbrains.annotations.NotNull;
@@ -59,16 +66,29 @@ protected AbstractPhpFile initFile() {
}
@Override
- protected void onFileGenerated(final PsiFile generatedFile) {
- super.onFileGenerated(generatedFile);
+ protected void onFileGenerated(final PsiFile generatedFile, final @NotNull String actionName) {
+ super.onFileGenerated(generatedFile, actionName);
- if (generatedFile != null) {
+ if (generatedFile instanceof PhpFile) {
PhpTypeModifierUtil.addImplementForPhpClass(
data.getClassFqn(),
file.getClassFqn(),
project
);
PhpTypeModifierUtil.insertInheritDocCommentForMethods(data.getMethods());
+
+ final PhpClass interfaceClass =
+ GetFirstClassOfFile.getInstance().execute((PhpFile) generatedFile);
+
+ new PreferenceDiXmlGenerator(
+ new PreferenceDiXmFileData(
+ data.getModuleName(),
+ Objects.requireNonNull(interfaceClass).getPresentableFQN(),
+ data.getClassFqn(),
+ Areas.base.toString()
+ ),
+ project
+ ).generate(actionName, false);
}
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/generator/php/WebApiInterfaceWithDeclarationGenerator.java b/src/com/magento/idea/magento2plugin/actions/generation/generator/php/WebApiInterfaceWithDeclarationGenerator.java
new file mode 100644
index 000000000..a2fe8f3c9
--- /dev/null
+++ b/src/com/magento/idea/magento2plugin/actions/generation/generator/php/WebApiInterfaceWithDeclarationGenerator.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+package com.magento.idea.magento2plugin.actions.generation.generator.php;
+
+import com.intellij.openapi.project.Project;
+import com.intellij.psi.PsiFile;
+import com.jetbrains.php.lang.psi.PhpFile;
+import com.magento.idea.magento2plugin.actions.generation.data.php.WebApiInterfaceData;
+import com.magento.idea.magento2plugin.actions.generation.data.xml.WebApiXmlRouteData;
+import com.magento.idea.magento2plugin.actions.generation.generator.xml.WebApiDeclarationGenerator;
+import org.jetbrains.annotations.NotNull;
+
+public final class WebApiInterfaceWithDeclarationGenerator {
+
+ private final Project project;
+ private final WebApiInterfaceData interfaceData;
+ private final WebApiXmlRouteData routeData;
+
+ /**
+ * Web API interface and declaration generator.
+ *
+ * @param interfaceData WebApiInterfaceData
+ * @param routeData WebApiXmlRouteData
+ * @param project Project
+ */
+ public WebApiInterfaceWithDeclarationGenerator(
+ final @NotNull WebApiInterfaceData interfaceData,
+ final @NotNull WebApiXmlRouteData routeData,
+ final @NotNull Project project
+ ) {
+ this.project = project;
+ this.interfaceData = interfaceData;
+ this.routeData = routeData;
+ }
+
+ /**
+ * Generate Web API interface and declaration.
+ *
+ * @param actionName String
+ * @param shouldOpenFiles boolean
+ */
+ public void generate(final @NotNull String actionName, final boolean shouldOpenFiles) {
+ final PsiFile webApiInterfaceFile = new WebApiInterfaceGenerator(
+ interfaceData,
+ project
+ ).generate(actionName, shouldOpenFiles);
+
+ if (webApiInterfaceFile instanceof PhpFile) {
+ new WebApiDeclarationGenerator(
+ routeData,
+ project
+ ).generate(actionName, shouldOpenFiles);
+ }
+ }
+}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/GeneratorHandler.java b/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/GeneratorHandler.java
index 6004a57d5..c308ffee8 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/GeneratorHandler.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/GeneratorHandler.java
@@ -6,6 +6,7 @@
package com.magento.idea.magento2plugin.actions.generation.generator.pool;
import com.intellij.openapi.project.Project;
+import com.intellij.psi.PsiFile;
import com.magento.idea.magento2plugin.actions.generation.data.converter.DataObjectConverter;
import com.magento.idea.magento2plugin.actions.generation.data.dialog.GenerationContextData;
import com.magento.idea.magento2plugin.actions.generation.generator.FileGenerator;
@@ -79,10 +80,21 @@ public void setGenerator(final FileGenerator generator) {
* Run generator.
*/
public final void generate() {
- generator.generate(
+ final PsiFile result = generator.generate(
getContextData().getActionName(),
getContextData().checkIfHasOpenFileFlag()
);
+ afterFileGenerated(result);
+ }
+
+ /**
+ * Implement to do some actions after file is generated.
+ *
+ * @param file PsiFile
+ */
+ @SuppressWarnings("PMD.EmptyMethodInAbstractClassShouldBeAbstract")
+ protected void afterFileGenerated(final PsiFile file) {
+ // override to do some stuff with generated file.
}
/**
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/handler/DeleteByIdCommandGeneratorHandler.java b/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/handler/DeleteByIdCommandGeneratorHandler.java
index 6c7c7ec30..09e4a5ace 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/handler/DeleteByIdCommandGeneratorHandler.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/handler/DeleteByIdCommandGeneratorHandler.java
@@ -5,12 +5,23 @@
package com.magento.idea.magento2plugin.actions.generation.generator.pool.handler;
+import com.intellij.psi.PsiFile;
+import com.jetbrains.php.lang.psi.PhpFile;
+import com.jetbrains.php.lang.psi.elements.PhpClass;
import com.magento.idea.magento2plugin.actions.generation.data.DeleteEntityByIdCommandData;
import com.magento.idea.magento2plugin.actions.generation.data.converter.DataObjectConverter;
+import com.magento.idea.magento2plugin.actions.generation.data.dialog.EntityCreatorContextData;
import com.magento.idea.magento2plugin.actions.generation.data.dialog.GenerationContextData;
+import com.magento.idea.magento2plugin.actions.generation.data.php.WebApiInterfaceData;
+import com.magento.idea.magento2plugin.actions.generation.data.xml.WebApiXmlRouteData;
import com.magento.idea.magento2plugin.actions.generation.generator.DeleteEntityByIdCommandGenerator;
+import com.magento.idea.magento2plugin.actions.generation.generator.php.WebApiInterfaceWithDeclarationGenerator;
import com.magento.idea.magento2plugin.actions.generation.generator.pool.GeneratorHandler;
import com.magento.idea.magento2plugin.actions.generation.generator.pool.GeneratorRunnerValidator;
+import com.magento.idea.magento2plugin.magento.files.commands.DeleteEntityByIdCommandFile;
+import com.magento.idea.magento2plugin.magento.packages.HttpMethod;
+import com.magento.idea.magento2plugin.util.GetFirstClassOfFile;
+import com.magento.idea.magento2plugin.util.php.PhpTypeMetadataParserUtil;
import org.jetbrains.annotations.NotNull;
public class DeleteByIdCommandGeneratorHandler extends GeneratorHandler {
@@ -50,4 +61,48 @@ public void instantiateGenerator() {
getProject()
));
}
+
+ @Override
+ protected void afterFileGenerated(final PsiFile file) {
+ if (!(file instanceof PhpFile)) {
+ return;
+ }
+ final EntityCreatorContextData contextData = (EntityCreatorContextData) getContextData();
+ final DeleteEntityByIdCommandData data =
+ (DeleteEntityByIdCommandData) getDataObjectConverter();
+
+ if (contextData.hasWebApi()) {
+ final PhpClass serviceClass = GetFirstClassOfFile.getInstance().execute((PhpFile) file);
+
+ if (serviceClass == null) {
+ return;
+ }
+ final DeleteEntityByIdCommandFile fileConfiguration = new DeleteEntityByIdCommandFile(
+ data.getModuleName(),
+ data.getEntityName(),
+ true
+ );
+ new WebApiInterfaceWithDeclarationGenerator(
+ new WebApiInterfaceData(
+ data.getModuleName(),
+ PhpTypeMetadataParserUtil.getFqn(serviceClass),
+ fileConfiguration.getWebApiInterfaceName(),
+ PhpTypeMetadataParserUtil.getShortDescription(serviceClass),
+ PhpTypeMetadataParserUtil.getMethodsByNames(
+ serviceClass,
+ DeleteEntityByIdCommandFile.WEB_API_METHOD_NAME
+ )
+ ),
+ new WebApiXmlRouteData(
+ data.getModuleName(),
+ fileConfiguration.getWebApiUrl(),
+ HttpMethod.DELETE.name(),
+ fileConfiguration.getClassFqn(),
+ DeleteEntityByIdCommandFile.WEB_API_METHOD_NAME,
+ data.getAclResource()
+ ),
+ getProject()
+ ).generate(contextData.getActionName(), contextData.checkIfHasOpenFileFlag());
+ }
+ }
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/handler/GetListQueryGeneratorHandler.java b/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/handler/GetListQueryGeneratorHandler.java
index 120c74943..3ec312133 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/handler/GetListQueryGeneratorHandler.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/handler/GetListQueryGeneratorHandler.java
@@ -5,12 +5,23 @@
package com.magento.idea.magento2plugin.actions.generation.generator.pool.handler;
+import com.intellij.psi.PsiFile;
+import com.jetbrains.php.lang.psi.PhpFile;
+import com.jetbrains.php.lang.psi.elements.PhpClass;
import com.magento.idea.magento2plugin.actions.generation.data.GetListQueryModelData;
import com.magento.idea.magento2plugin.actions.generation.data.converter.DataObjectConverter;
+import com.magento.idea.magento2plugin.actions.generation.data.dialog.EntityCreatorContextData;
import com.magento.idea.magento2plugin.actions.generation.data.dialog.GenerationContextData;
+import com.magento.idea.magento2plugin.actions.generation.data.php.WebApiInterfaceData;
+import com.magento.idea.magento2plugin.actions.generation.data.xml.WebApiXmlRouteData;
import com.magento.idea.magento2plugin.actions.generation.generator.GetListQueryModelGenerator;
+import com.magento.idea.magento2plugin.actions.generation.generator.php.WebApiInterfaceWithDeclarationGenerator;
import com.magento.idea.magento2plugin.actions.generation.generator.pool.GeneratorHandler;
import com.magento.idea.magento2plugin.actions.generation.generator.pool.GeneratorRunnerValidator;
+import com.magento.idea.magento2plugin.magento.files.queries.GetListQueryFile;
+import com.magento.idea.magento2plugin.magento.packages.HttpMethod;
+import com.magento.idea.magento2plugin.util.GetFirstClassOfFile;
+import com.magento.idea.magento2plugin.util.php.PhpTypeMetadataParserUtil;
import org.jetbrains.annotations.NotNull;
public class GetListQueryGeneratorHandler extends GeneratorHandler {
@@ -50,4 +61,47 @@ public void instantiateGenerator() {
getProject()
));
}
+
+ @Override
+ protected void afterFileGenerated(final PsiFile file) {
+ if (!(file instanceof PhpFile)) {
+ return;
+ }
+ final EntityCreatorContextData contextData = (EntityCreatorContextData) getContextData();
+ final GetListQueryModelData data = (GetListQueryModelData) getDataObjectConverter();
+
+ if (contextData.hasWebApi()) {
+ final PhpClass serviceClass = GetFirstClassOfFile.getInstance().execute((PhpFile) file);
+
+ if (serviceClass == null) {
+ return;
+ }
+ final GetListQueryFile fileConfiguration = new GetListQueryFile(
+ data.getModuleName(),
+ data.getEntityName(),
+ true
+ );
+ new WebApiInterfaceWithDeclarationGenerator(
+ new WebApiInterfaceData(
+ data.getModuleName(),
+ PhpTypeMetadataParserUtil.getFqn(serviceClass),
+ fileConfiguration.getWebApiInterfaceName(),
+ PhpTypeMetadataParserUtil.getShortDescription(serviceClass),
+ PhpTypeMetadataParserUtil.getMethodsByNames(
+ serviceClass,
+ GetListQueryFile.WEB_API_METHOD_NAME
+ )
+ ),
+ new WebApiXmlRouteData(
+ data.getModuleName(),
+ fileConfiguration.getWebApiUrl(),
+ HttpMethod.GET.name(),
+ fileConfiguration.getClassFqn(),
+ GetListQueryFile.WEB_API_METHOD_NAME,
+ data.getAclResource()
+ ),
+ getProject()
+ ).generate(contextData.getActionName(), contextData.checkIfHasOpenFileFlag());
+ }
+ }
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/handler/SaveCommandGeneratorHandler.java b/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/handler/SaveCommandGeneratorHandler.java
index cec5271b7..d75ca4978 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/handler/SaveCommandGeneratorHandler.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/handler/SaveCommandGeneratorHandler.java
@@ -5,12 +5,23 @@
package com.magento.idea.magento2plugin.actions.generation.generator.pool.handler;
+import com.intellij.psi.PsiFile;
+import com.jetbrains.php.lang.psi.PhpFile;
+import com.jetbrains.php.lang.psi.elements.PhpClass;
import com.magento.idea.magento2plugin.actions.generation.data.SaveEntityCommandData;
import com.magento.idea.magento2plugin.actions.generation.data.converter.DataObjectConverter;
+import com.magento.idea.magento2plugin.actions.generation.data.dialog.EntityCreatorContextData;
import com.magento.idea.magento2plugin.actions.generation.data.dialog.GenerationContextData;
+import com.magento.idea.magento2plugin.actions.generation.data.php.WebApiInterfaceData;
+import com.magento.idea.magento2plugin.actions.generation.data.xml.WebApiXmlRouteData;
import com.magento.idea.magento2plugin.actions.generation.generator.SaveEntityCommandGenerator;
+import com.magento.idea.magento2plugin.actions.generation.generator.php.WebApiInterfaceWithDeclarationGenerator;
import com.magento.idea.magento2plugin.actions.generation.generator.pool.GeneratorHandler;
import com.magento.idea.magento2plugin.actions.generation.generator.pool.GeneratorRunnerValidator;
+import com.magento.idea.magento2plugin.magento.files.commands.SaveEntityCommandFile;
+import com.magento.idea.magento2plugin.magento.packages.HttpMethod;
+import com.magento.idea.magento2plugin.util.GetFirstClassOfFile;
+import com.magento.idea.magento2plugin.util.php.PhpTypeMetadataParserUtil;
import org.jetbrains.annotations.NotNull;
public class SaveCommandGeneratorHandler extends GeneratorHandler {
@@ -50,4 +61,47 @@ public void instantiateGenerator() {
getProject()
));
}
+
+ @Override
+ protected void afterFileGenerated(final PsiFile file) {
+ if (!(file instanceof PhpFile)) {
+ return;
+ }
+ final EntityCreatorContextData contextData = (EntityCreatorContextData) getContextData();
+ final SaveEntityCommandData data = (SaveEntityCommandData) getDataObjectConverter();
+
+ if (contextData.hasWebApi()) {
+ final PhpClass serviceClass = GetFirstClassOfFile.getInstance().execute((PhpFile) file);
+
+ if (serviceClass == null) {
+ return;
+ }
+ final SaveEntityCommandFile fileConfiguration = new SaveEntityCommandFile(
+ data.getModuleName(),
+ data.getEntityName(),
+ true
+ );
+ new WebApiInterfaceWithDeclarationGenerator(
+ new WebApiInterfaceData(
+ data.getModuleName(),
+ PhpTypeMetadataParserUtil.getFqn(serviceClass),
+ fileConfiguration.getWebApiInterfaceName(),
+ PhpTypeMetadataParserUtil.getShortDescription(serviceClass),
+ PhpTypeMetadataParserUtil.getMethodsByNames(
+ serviceClass,
+ SaveEntityCommandFile.WEB_API_METHOD_NAME
+ )
+ ),
+ new WebApiXmlRouteData(
+ data.getModuleName(),
+ fileConfiguration.getWebApiUrl(),
+ HttpMethod.POST.name(),
+ fileConfiguration.getClassFqn(),
+ SaveEntityCommandFile.WEB_API_METHOD_NAME,
+ data.getAclResource()
+ ),
+ getProject()
+ ).generate(contextData.getActionName(), contextData.checkIfHasOpenFileFlag());
+ }
+ }
}
diff --git a/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/provider/NewEntityGeneratorsProviderUtil.java b/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/provider/NewEntityGeneratorsProviderUtil.java
index 8d6895f55..fa4a936ff 100644
--- a/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/provider/NewEntityGeneratorsProviderUtil.java
+++ b/src/com/magento/idea/magento2plugin/actions/generation/generator/pool/provider/NewEntityGeneratorsProviderUtil.java
@@ -138,13 +138,11 @@ public static void initializeGenerators(
)
.addNext(
EntityDataMapperGeneratorHandler.class,
- new EntityDataMapperDtoConverter(context, dialogData),
- dialogData::hasAdminUiComponents
+ new EntityDataMapperDtoConverter(context, dialogData)
)
.addNext(
GetListQueryGeneratorHandler.class,
- new GetListQueryDtoConverter(context, dialogData),
- dialogData::hasAdminUiComponents
+ new GetListQueryDtoConverter(context, dialogData)
)
.addNext(
DataProviderGeneratorHandler.class,
@@ -173,13 +171,11 @@ public static void initializeGenerators(
)
.addNext(
SaveCommandGeneratorHandler.class,
- new SaveEntityCommandDtoConverter(context, dialogData),
- dialogData::hasAdminUiComponents
+ new SaveEntityCommandDtoConverter(context, dialogData)
)
.addNext(
DeleteByIdCommandGeneratorHandler.class,
- new DeleteEntityByIdCommandDtoConverter(context, dialogData),
- dialogData::hasAdminUiComponents
+ new DeleteEntityByIdCommandDtoConverter(context, dialogData)
)
.addNext(
FormSaveControllerGeneratorHandler.class,
diff --git a/src/com/magento/idea/magento2plugin/magento/files/commands/DeleteEntityByIdCommandFile.java b/src/com/magento/idea/magento2plugin/magento/files/commands/DeleteEntityByIdCommandFile.java
index 2093e93f8..fed5a1cec 100644
--- a/src/com/magento/idea/magento2plugin/magento/files/commands/DeleteEntityByIdCommandFile.java
+++ b/src/com/magento/idea/magento2plugin/magento/files/commands/DeleteEntityByIdCommandFile.java
@@ -5,7 +5,10 @@
package com.magento.idea.magento2plugin.magento.files.commands;
+import com.magento.idea.magento2plugin.actions.generation.generator.util.NamespaceBuilder;
import com.magento.idea.magento2plugin.magento.files.AbstractPhpFile;
+import com.magento.idea.magento2plugin.magento.files.WebApiInterfaceFile;
+import com.magento.idea.magento2plugin.util.CamelCaseToHyphen;
import org.jetbrains.annotations.NotNull;
public class DeleteEntityByIdCommandFile extends AbstractPhpFile {
@@ -13,8 +16,12 @@ public class DeleteEntityByIdCommandFile extends AbstractPhpFile {
public static final String CLASS_NAME = "DeleteByIdCommand";
public static final String HUMAN_READABLE_NAME = "Delete entity by id command class";
public static final String TEMPLATE = "Magento Delete Entity By Id Command";
+ public static final String WEB_API_METHOD_NAME = "execute";
private static final String DIRECTORY = "Command";
+ private static final String WEB_API_INTERFACE_NAME_PATTERN = "Delete%entityName%ByIdInterface";
+ private static final String WEB_API_URL_PATTERN = "%entityName%/delete-by-id";
private final String entityName;
+ private final boolean hasWebApiInterface;
/**
* Delete entity by id command file constructor.
@@ -25,9 +32,58 @@ public class DeleteEntityByIdCommandFile extends AbstractPhpFile {
public DeleteEntityByIdCommandFile(
final @NotNull String moduleName,
final @NotNull String entityName
+ ) {
+ this(moduleName, entityName, false);
+ }
+
+ /**
+ * Delete entity by id command file constructor.
+ *
+ * @param moduleName String
+ * @param entityName String
+ * @param hasWebApiInterface boolean
+ */
+ public DeleteEntityByIdCommandFile(
+ final @NotNull String moduleName,
+ final @NotNull String entityName,
+ final boolean hasWebApiInterface
) {
super(moduleName, CLASS_NAME);
this.entityName = entityName;
+ this.hasWebApiInterface = hasWebApiInterface;
+ }
+
+ /**
+ * Get Web API interface name.
+ *
+ * @return String
+ */
+ public String getWebApiInterfaceName() {
+ return WEB_API_INTERFACE_NAME_PATTERN.replace("%entityName%", entityName);
+ }
+
+ /**
+ * Get Web API url.
+ *
+ * @return String
+ */
+ public String getWebApiUrl() {
+ return WEB_API_URL_PATTERN.replace(
+ "%entityName%",
+ CamelCaseToHyphen.getInstance().convert(entityName)
+ );
+ }
+
+ @Override
+ public @NotNull NamespaceBuilder getNamespaceBuilder() {
+ if (hasWebApiInterface) {
+ final WebApiInterfaceFile interfaceFile = new WebApiInterfaceFile(
+ getModuleName(),
+ getWebApiInterfaceName()
+ );
+ return interfaceFile.getNamespaceBuilder();
+ }
+ return super.getNamespaceBuilder();
}
@Override
diff --git a/src/com/magento/idea/magento2plugin/magento/files/commands/SaveEntityCommandFile.java b/src/com/magento/idea/magento2plugin/magento/files/commands/SaveEntityCommandFile.java
index 61573a503..9161b51dc 100644
--- a/src/com/magento/idea/magento2plugin/magento/files/commands/SaveEntityCommandFile.java
+++ b/src/com/magento/idea/magento2plugin/magento/files/commands/SaveEntityCommandFile.java
@@ -5,8 +5,11 @@
package com.magento.idea.magento2plugin.magento.files.commands;
+import com.magento.idea.magento2plugin.actions.generation.generator.util.NamespaceBuilder;
import com.magento.idea.magento2plugin.magento.files.AbstractPhpFile;
import com.magento.idea.magento2plugin.magento.files.ModuleFileInterface;
+import com.magento.idea.magento2plugin.magento.files.WebApiInterfaceFile;
+import com.magento.idea.magento2plugin.util.CamelCaseToHyphen;
import org.jetbrains.annotations.NotNull;
public class SaveEntityCommandFile extends AbstractPhpFile implements ModuleFileInterface {
@@ -14,8 +17,12 @@ public class SaveEntityCommandFile extends AbstractPhpFile implements ModuleFile
public static final String CLASS_NAME = "SaveCommand";
public static final String TEMPLATE = "Magento Save Entity Command Model";
public static final String HUMAN_READABLE_NAME = "Save entity command model";
+ public static final String WEB_API_METHOD_NAME = "execute";
private static final String DIRECTORY = "Command";
+ private static final String WEB_API_INTERFACE_NAME_PATTERN = "Save%entityName%Interface";
+ private static final String WEB_API_URL_PATTERN = "%entityName%/save";
private final String entityName;
+ private final boolean hasWebApiInterface;
/**
* Save entity command file constructor.
@@ -26,9 +33,58 @@ public class SaveEntityCommandFile extends AbstractPhpFile implements ModuleFile
public SaveEntityCommandFile(
final @NotNull String moduleName,
final @NotNull String entityName
+ ) {
+ this(moduleName, entityName, false);
+ }
+
+ /**
+ * Save entity command file constructor.
+ *
+ * @param moduleName String
+ * @param entityName String
+ * @param hasWebApiInterface boolean
+ */
+ public SaveEntityCommandFile(
+ final @NotNull String moduleName,
+ final @NotNull String entityName,
+ final boolean hasWebApiInterface
) {
super(moduleName, CLASS_NAME);
this.entityName = entityName;
+ this.hasWebApiInterface = hasWebApiInterface;
+ }
+
+ /**
+ * Get Web API interface name.
+ *
+ * @return String
+ */
+ public String getWebApiInterfaceName() {
+ return WEB_API_INTERFACE_NAME_PATTERN.replace("%entityName%", entityName);
+ }
+
+ /**
+ * Get Web API url.
+ *
+ * @return String
+ */
+ public String getWebApiUrl() {
+ return WEB_API_URL_PATTERN.replace(
+ "%entityName%",
+ CamelCaseToHyphen.getInstance().convert(entityName)
+ );
+ }
+
+ @Override
+ public @NotNull NamespaceBuilder getNamespaceBuilder() {
+ if (hasWebApiInterface) {
+ final WebApiInterfaceFile interfaceFile = new WebApiInterfaceFile(
+ getModuleName(),
+ getWebApiInterfaceName()
+ );
+ return interfaceFile.getNamespaceBuilder();
+ }
+ return super.getNamespaceBuilder();
}
/**
diff --git a/src/com/magento/idea/magento2plugin/magento/files/queries/GetListQueryFile.java b/src/com/magento/idea/magento2plugin/magento/files/queries/GetListQueryFile.java
index db4732721..d8d6827bf 100644
--- a/src/com/magento/idea/magento2plugin/magento/files/queries/GetListQueryFile.java
+++ b/src/com/magento/idea/magento2plugin/magento/files/queries/GetListQueryFile.java
@@ -5,8 +5,11 @@
package com.magento.idea.magento2plugin.magento.files.queries;
+import com.magento.idea.magento2plugin.actions.generation.generator.util.NamespaceBuilder;
import com.magento.idea.magento2plugin.magento.files.AbstractPhpFile;
+import com.magento.idea.magento2plugin.magento.files.WebApiInterfaceFile;
import com.magento.idea.magento2plugin.magento.packages.File;
+import com.magento.idea.magento2plugin.util.CamelCaseToHyphen;
import org.jetbrains.annotations.NotNull;
public final class GetListQueryFile extends AbstractPhpFile {
@@ -14,8 +17,12 @@ public final class GetListQueryFile extends AbstractPhpFile {
public static final String CLASS_NAME = "GetListQuery";
public static final String HUMAN_READABLE_NAME = "Get list query class";
public static final String TEMPLATE = "Magento Get List Query Model";
+ public static final String WEB_API_METHOD_NAME = "execute";
private static final String DIRECTORY = "Query";
+ private static final String WEB_API_INTERFACE_NAME_PATTERN = "Get%entityName%ListInterface";
+ private static final String WEB_API_URL_PATTERN = "%entityName%/get-list";
private final String entityName;
+ private final boolean hasWebApiInterface;
/**
* Get list query file constructor.
@@ -26,9 +33,58 @@ public final class GetListQueryFile extends AbstractPhpFile {
public GetListQueryFile(
final @NotNull String moduleName,
final @NotNull String entityName
+ ) {
+ this(moduleName, entityName, false);
+ }
+
+ /**
+ * Get list query file constructor.
+ *
+ * @param moduleName String
+ * @param entityName String
+ * @param hasWebApiInterface boolean
+ */
+ public GetListQueryFile(
+ final @NotNull String moduleName,
+ final @NotNull String entityName,
+ final boolean hasWebApiInterface
) {
super(moduleName, CLASS_NAME);
this.entityName = entityName;
+ this.hasWebApiInterface = hasWebApiInterface;
+ }
+
+ /**
+ * Get Web API interface name.
+ *
+ * @return String
+ */
+ public String getWebApiInterfaceName() {
+ return WEB_API_INTERFACE_NAME_PATTERN.replace("%entityName%", entityName);
+ }
+
+ /**
+ * Get Web API url.
+ *
+ * @return String
+ */
+ public String getWebApiUrl() {
+ return WEB_API_URL_PATTERN.replace(
+ "%entityName%",
+ CamelCaseToHyphen.getInstance().convert(entityName)
+ );
+ }
+
+ @Override
+ public @NotNull NamespaceBuilder getNamespaceBuilder() {
+ if (hasWebApiInterface) {
+ final WebApiInterfaceFile interfaceFile = new WebApiInterfaceFile(
+ getModuleName(),
+ getWebApiInterfaceName()
+ );
+ return interfaceFile.getNamespaceBuilder();
+ }
+ return super.getNamespaceBuilder();
}
@Override
diff --git a/src/com/magento/idea/magento2plugin/util/php/PhpTypeMetadataParserUtil.java b/src/com/magento/idea/magento2plugin/util/php/PhpTypeMetadataParserUtil.java
index ac59bc94f..5e424d4e6 100644
--- a/src/com/magento/idea/magento2plugin/util/php/PhpTypeMetadataParserUtil.java
+++ b/src/com/magento/idea/magento2plugin/util/php/PhpTypeMetadataParserUtil.java
@@ -103,6 +103,30 @@ public static List getPublicMethods(final @NotNull PhpClass phpClass) {
return methods;
}
+ /**
+ * Get methods by names.
+ *
+ * @param phpClass PhpClass
+ * @param names String
+ *
+ * @return List[Method]
+ */
+ public static List getMethodsByNames(
+ final @NotNull PhpClass phpClass,
+ final @NotNull String... names
+ ) {
+ final List methods = new LinkedList<>();
+ final List methodNames = Arrays.asList(names);
+
+ for (final Method method : phpClass.getMethods()) {
+ if (methodNames.contains(method.getName())) {
+ methods.add(method);
+ }
+ }
+
+ return methods;
+ }
+
/**
* Get method declaration for interface.
*
diff --git a/tests/com/magento/idea/magento2plugin/actions/generation/generator/DeleteEntityCommandGeneratorTest.java b/tests/com/magento/idea/magento2plugin/actions/generation/generator/DeleteEntityCommandGeneratorTest.java
index bea393ebd..8933d848d 100644
--- a/tests/com/magento/idea/magento2plugin/actions/generation/generator/DeleteEntityCommandGeneratorTest.java
+++ b/tests/com/magento/idea/magento2plugin/actions/generation/generator/DeleteEntityCommandGeneratorTest.java
@@ -17,6 +17,7 @@ public class DeleteEntityCommandGeneratorTest extends BaseGeneratorTestCase {
private static final String RESOURCE_MODEL_NAME = ENTITY_NAME + "Resource";
private static final String EXPECTED_DIRECTORY = "src/app/code/Foo/Bar/Command/" + ENTITY_NAME;
private static final String ENTITY_ID = "book_id";
+ private static final String ACL = "Foo_Bar::book_management";
/**
* Test generation of DeleteByIdCommand model for entity.
@@ -28,7 +29,8 @@ public void testGenerateDeleteEntityByIdCommandFile() {
ENTITY_NAME,
ENTITY_ID,
MODEL_NAME,
- RESOURCE_MODEL_NAME
+ RESOURCE_MODEL_NAME,
+ ACL
);
final DeleteEntityByIdCommandGenerator deleteEntityByIdCommandGenerator =
new DeleteEntityByIdCommandGenerator(
diff --git a/tests/com/magento/idea/magento2plugin/actions/generation/generator/DeleteEntityGeneratorTest.java b/tests/com/magento/idea/magento2plugin/actions/generation/generator/DeleteEntityGeneratorTest.java
index 2533f44e5..0554c016a 100644
--- a/tests/com/magento/idea/magento2plugin/actions/generation/generator/DeleteEntityGeneratorTest.java
+++ b/tests/com/magento/idea/magento2plugin/actions/generation/generator/DeleteEntityGeneratorTest.java
@@ -27,7 +27,8 @@ public void testGenerateDeleteEntityFile() {
ENTITY_NAME,
MODULE_NAME,
ACL,
- ENTITY_ID
+ ENTITY_ID,
+ false
);
final DeleteEntityControllerFileGenerator deleteEntityControllerFileGenerator =
new DeleteEntityControllerFileGenerator(
diff --git a/tests/com/magento/idea/magento2plugin/actions/generation/generator/QueryModelGeneratorTest.java b/tests/com/magento/idea/magento2plugin/actions/generation/generator/QueryModelGeneratorTest.java
index 5c6728351..debbda644 100644
--- a/tests/com/magento/idea/magento2plugin/actions/generation/generator/QueryModelGeneratorTest.java
+++ b/tests/com/magento/idea/magento2plugin/actions/generation/generator/QueryModelGeneratorTest.java
@@ -14,6 +14,7 @@ public class QueryModelGeneratorTest extends BaseGeneratorTestCase {
private static final String ENTITY_NAME = "Book";
private static final String MODEL_NAME = "Book";
private static final String COLLECTION_NAME = "Collection";
+ private static final String ACL = "Foo_Bar::book_management";
/**
* Test generation of GetListQuery model for entity.
@@ -24,7 +25,8 @@ public void testGenerateGetListQueryModelFile() {
MODULE_NAME,
ENTITY_NAME,
MODEL_NAME,
- COLLECTION_NAME
+ COLLECTION_NAME,
+ ACL
);
final GetListQueryModelGenerator getListQueryModelGenerator =
new GetListQueryModelGenerator(
diff --git a/tests/com/magento/idea/magento2plugin/actions/generation/generator/SaveEntityActionGeneratorTest.java b/tests/com/magento/idea/magento2plugin/actions/generation/generator/SaveEntityActionGeneratorTest.java
index 4ea056ff0..2380e210b 100644
--- a/tests/com/magento/idea/magento2plugin/actions/generation/generator/SaveEntityActionGeneratorTest.java
+++ b/tests/com/magento/idea/magento2plugin/actions/generation/generator/SaveEntityActionGeneratorTest.java
@@ -32,6 +32,7 @@ public void testGenerateSaveEntityActionWithoutInterfaceFile() {
ENTITY_ID,
DTO_NAME,
"",
+ false,
false
);
final SaveEntityControllerFileGenerator saveEntityControllerFileGenerator =
@@ -65,7 +66,8 @@ public void testGenerateSaveEntityActionWithInterfaceFile() {
ENTITY_ID,
DTO_NAME,
DTO_TYPE_INTERFACE,
- true
+ true,
+ false
);
final SaveEntityControllerFileGenerator saveEntityControllerFileGenerator =
new SaveEntityControllerFileGenerator(
diff --git a/tests/com/magento/idea/magento2plugin/actions/generation/generator/SaveEntityCommandGeneratorTest.java b/tests/com/magento/idea/magento2plugin/actions/generation/generator/SaveEntityCommandGeneratorTest.java
index 2a677b6c8..74607e64e 100644
--- a/tests/com/magento/idea/magento2plugin/actions/generation/generator/SaveEntityCommandGeneratorTest.java
+++ b/tests/com/magento/idea/magento2plugin/actions/generation/generator/SaveEntityCommandGeneratorTest.java
@@ -17,6 +17,7 @@ public class SaveEntityCommandGeneratorTest extends BaseGeneratorTestCase {
private static final String DTO_NAME = ENTITY_NAME + "Data";
private static final boolean IS_DTO_HAS_INTERFACE = false;
private static final String EXPECTED_DIRECTORY = "src/app/code/Foo/Bar/Command/" + ENTITY_NAME;
+ private static final String ACL = "Foo_Bar::book_management";
/**
* Test generation of SaveCommand model for entity.
@@ -29,7 +30,8 @@ public void testGenerateSaveEntityCommandFile() {
RESOURCE_MODEL_NAME,
DTO_NAME,
"",
- IS_DTO_HAS_INTERFACE
+ IS_DTO_HAS_INTERFACE,
+ ACL
);
final SaveEntityCommandGenerator saveEntityCommandGenerator =
new SaveEntityCommandGenerator(
diff --git a/tests/com/magento/idea/magento2plugin/actions/generation/generator/UiComponentGridDataProviderGeneratorTest.java b/tests/com/magento/idea/magento2plugin/actions/generation/generator/UiComponentGridDataProviderGeneratorTest.java
index 057782ca9..07d91ae3c 100644
--- a/tests/com/magento/idea/magento2plugin/actions/generation/generator/UiComponentGridDataProviderGeneratorTest.java
+++ b/tests/com/magento/idea/magento2plugin/actions/generation/generator/UiComponentGridDataProviderGeneratorTest.java
@@ -20,6 +20,7 @@ public class UiComponentGridDataProviderGeneratorTest extends BaseGeneratorTestC
private static final String PROVIDER_CLASS_NAME = "GridDataProvider";
private static final String PROVIDER_PATH = "Ui/Component/Listing";
private static final String COLLECTION_NAME = "Collection";
+ private static final String ACL = "Foo_Bar::book_management";
/**
* Test data provider class file generation with custom type.
@@ -48,7 +49,8 @@ public void testGenerateDataProviderWithInjectedGetListQuery() {
PROVIDER_CLASS_NAME,
PROVIDER_PATH,
ENTITY_NAME,
- ENTITY_ID_FIELD_NAME
+ ENTITY_ID_FIELD_NAME,
+ false
));
final String filePath = this.getFixturePath("GridDataProvider.php");
final PsiFile expectedFile = myFixture.configureByFile(filePath);
@@ -84,7 +86,8 @@ private void generateGetListQuery() {
MODULE_NAME,
ENTITY_NAME,
MODEL_NAME,
- COLLECTION_NAME
+ COLLECTION_NAME,
+ ACL
);
new GetListQueryModelGenerator(getListData, project, false).generate("test");
}
diff --git a/tests/com/magento/idea/magento2plugin/actions/generation/generator/pool/NewEntityGeneratorPoolTest.java b/tests/com/magento/idea/magento2plugin/actions/generation/generator/pool/NewEntityGeneratorPoolTest.java
index 34f06821d..53b6a0580 100644
--- a/tests/com/magento/idea/magento2plugin/actions/generation/generator/pool/NewEntityGeneratorPoolTest.java
+++ b/tests/com/magento/idea/magento2plugin/actions/generation/generator/pool/NewEntityGeneratorPoolTest.java
@@ -77,6 +77,7 @@ private NewEntityDialogData getMockNewEntityDialogData() {
"test",
true,
true,
+ false,
"test",
"test",
"test",
@@ -115,6 +116,7 @@ private EntityCreatorContextData getMockContext() {
MODULE_NAME,
ACTION_NAME,
false,
+ false,
INDEX_PATH,
EDIT_PATH,
NEW_PATH,