Skip to content

Commit efee2aa

Browse files
author
Vitaliy
authored
Merge pull request #509 from bohdan-harniuk/entity-manager-refactoring
Entity manager refactoring
2 parents 17a6c03 + 7bc0a29 commit efee2aa

File tree

114 files changed

+4729
-1365
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

114 files changed

+4729
-1365
lines changed

src/com/magento/idea/magento2plugin/actions/generation/data/PreferenceDiXmFileData.java

Lines changed: 46 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,30 @@
44
*/
55
package com.magento.idea.magento2plugin.actions.generation.data;
66

7-
import com.jetbrains.php.lang.psi.elements.PhpClass;
7+
import org.jetbrains.annotations.NotNull;
88

99
public class PreferenceDiXmFileData {
10-
private String preferenceModule;
11-
private PhpClass targetClass;
12-
private String preferenceFqn;
13-
private String namespace;
14-
private String area;
10+
private final String preferenceModule;
11+
private final String targetClass;
12+
private final String preferenceFqn;
13+
private final String namespace;
14+
private final String area;
1515

16+
/**
17+
* Preference DI XML file data.
18+
*
19+
* @param preferenceModule String
20+
* @param targetClass String
21+
* @param preferenceFqn String
22+
* @param namespace String
23+
* @param area String
24+
*/
1625
public PreferenceDiXmFileData(
17-
String preferenceModule,
18-
PhpClass targetClass,
19-
String preferenceFqn,
20-
String namespace,
21-
String area
26+
final @NotNull String preferenceModule,
27+
final @NotNull String targetClass,
28+
final @NotNull String preferenceFqn,
29+
final @NotNull String namespace,
30+
final @NotNull String area
2231
) {
2332
this.preferenceModule = preferenceModule;
2433
this.targetClass = targetClass;
@@ -27,22 +36,47 @@ public PreferenceDiXmFileData(
2736
this.area = area;
2837
}
2938

39+
/**
40+
* Get preference module.
41+
*
42+
* @return String
43+
*/
3044
public String getPreferenceModule() {
3145
return preferenceModule;
3246
}
3347

34-
public PhpClass getTargetClass() {
48+
/**
49+
* Get target class.
50+
*
51+
* @return String
52+
*/
53+
public String getTargetClass() {
3554
return targetClass;
3655
}
3756

57+
/**
58+
* Get preference FQN.
59+
*
60+
* @return String
61+
*/
3862
public String getPreferenceFqn() {
3963
return preferenceFqn;
4064
}
4165

66+
/**
67+
* Get namespace.
68+
*
69+
* @return String
70+
*/
4271
public String getNamespace() {
4372
return namespace;
4473
}
4574

75+
/**
76+
* Get area.
77+
*
78+
* @return String
79+
*/
4680
public String getArea() {
4781
return area;
4882
}

src/com/magento/idea/magento2plugin/actions/generation/data/UiComponentFormFileData.java

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ public class UiComponentFormFileData {
1919
private final String submitControllerName;
2020
private final String submitActionName;
2121
private final String dataProviderFqn;
22+
private final String entityName;
23+
private final String entityId;
2224

2325
/**
2426
* UI Form data file constructor.
@@ -47,6 +49,55 @@ public UiComponentFormFileData(
4749
final String submitControllerName,
4850
final String submitActionName,
4951
final String dataProviderFqn
52+
) {
53+
this(
54+
formName,
55+
formArea,
56+
moduleName,
57+
label,
58+
buttons,
59+
fieldsets,
60+
fields,
61+
route,
62+
submitControllerName,
63+
submitActionName,
64+
dataProviderFqn,
65+
"Entity",
66+
"entity_id"
67+
);
68+
}
69+
70+
/**
71+
* UI Form data file constructor.
72+
*
73+
* @param formName String
74+
* @param formArea String
75+
* @param moduleName String
76+
* @param buttons List[UiComponentFormButtonData]
77+
* @param fieldsets List[UiComponentFormFieldsetData]
78+
* @param fields List[UiComponentFormFieldData]
79+
* @param route String
80+
* @param submitControllerName String
81+
* @param submitActionName String
82+
* @param dataProviderFqn String
83+
* @param entityName String
84+
* @param entityId String
85+
*/
86+
@SuppressWarnings({"PMD.ExcessiveParameterList"})
87+
public UiComponentFormFileData(
88+
final String formName,
89+
final String formArea,
90+
final String moduleName,
91+
final String label,
92+
final List<UiComponentFormButtonData> buttons,
93+
final List<UiComponentFormFieldsetData> fieldsets,
94+
final List<UiComponentFormFieldData> fields,
95+
final String route,
96+
final String submitControllerName,
97+
final String submitActionName,
98+
final String dataProviderFqn,
99+
final String entityName,
100+
final String entityId
50101
) {
51102
this.formName = formName;
52103
this.formArea = formArea;
@@ -59,6 +110,8 @@ public UiComponentFormFileData(
59110
this.submitControllerName = submitControllerName;
60111
this.submitActionName = submitActionName;
61112
this.dataProviderFqn = dataProviderFqn;
113+
this.entityName = entityName;
114+
this.entityId = entityId;
62115
}
63116

64117
/**
@@ -159,4 +212,22 @@ public String getSubmitActionName() {
159212
public String getDataProviderFqn() {
160213
return dataProviderFqn;
161214
}
215+
216+
/**
217+
* Get entity name.
218+
*
219+
* @return String
220+
*/
221+
public String getEntityName() {
222+
return entityName;
223+
}
224+
225+
/**
226+
* Get entity id.
227+
*
228+
* @return String
229+
*/
230+
public String getEntityId() {
231+
return entityId;
232+
}
162233
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
package com.magento.idea.magento2plugin.actions.generation.data.converter;
7+
8+
/**
9+
* This interface used to map general DTO`s data to concrete dto.
10+
*/
11+
public interface DataObjectConverter {
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
package com.magento.idea.magento2plugin.actions.generation.data.converter.newentitydialog;
7+
8+
import com.magento.idea.magento2plugin.actions.generation.data.AclXmlData;
9+
import com.magento.idea.magento2plugin.actions.generation.data.converter.DataObjectConverter;
10+
import com.magento.idea.magento2plugin.actions.generation.data.dialog.EntityManagerContextData;
11+
import com.magento.idea.magento2plugin.actions.generation.data.dialog.NewEntityDialogData;
12+
import org.jetbrains.annotations.NotNull;
13+
14+
public class AclXmlDtoConverter extends AclXmlData implements DataObjectConverter {
15+
16+
/**
17+
* Acl XML DTO converter.
18+
*
19+
* @param generationContextData EntityManagerContextData
20+
* @param newEntityDialogData NewEntityDialogData
21+
*/
22+
@SuppressWarnings("PMD.UnusedFormalParameter")
23+
public AclXmlDtoConverter(
24+
final @NotNull EntityManagerContextData generationContextData,
25+
final @NotNull NewEntityDialogData newEntityDialogData
26+
) {
27+
super(
28+
newEntityDialogData.getParentAclId(),
29+
newEntityDialogData.getAclId(),
30+
newEntityDialogData.getAclTitle()
31+
);
32+
}
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
package com.magento.idea.magento2plugin.actions.generation.data.converter.newentitydialog;
7+
8+
import com.magento.idea.magento2plugin.actions.generation.data.CollectionData;
9+
import com.magento.idea.magento2plugin.actions.generation.data.converter.DataObjectConverter;
10+
import com.magento.idea.magento2plugin.actions.generation.data.dialog.EntityManagerContextData;
11+
import com.magento.idea.magento2plugin.actions.generation.data.dialog.NewEntityDialogData;
12+
import com.magento.idea.magento2plugin.magento.files.ResourceModelFile;
13+
import com.magento.idea.magento2plugin.magento.packages.File;
14+
import org.jetbrains.annotations.NotNull;
15+
16+
public class CollectionModelDtoConverter extends CollectionData implements DataObjectConverter {
17+
18+
/**
19+
* Collection model DTO converter.
20+
*
21+
* @param generationContextData EntityManagerContextData
22+
* @param newEntityDialogData NewEntityDialogData
23+
*/
24+
public CollectionModelDtoConverter(
25+
final @NotNull EntityManagerContextData generationContextData,
26+
final @NotNull NewEntityDialogData newEntityDialogData
27+
) {
28+
super(
29+
generationContextData.getModuleName(),
30+
newEntityDialogData.getTableName(),
31+
newEntityDialogData.getEntityName().concat("Model"),
32+
newEntityDialogData.getEntityName().concat("Collection"),
33+
generationContextData.getCollectionModelNamespaceBuilder().getClassFqn(),
34+
ResourceModelFile.RESOURCE_MODEL_DIRECTORY + File.separator
35+
+ newEntityDialogData.getEntityName(),
36+
generationContextData.getCollectionModelNamespaceBuilder().getNamespace(),
37+
newEntityDialogData.getEntityName().concat("Resource"),
38+
generationContextData.getResourceModelNamespaceBuilder().getClassFqn(),
39+
generationContextData.getModelNamespaceBuilder().getClassFqn()
40+
);
41+
}
42+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
package com.magento.idea.magento2plugin.actions.generation.data.converter.newentitydialog;
7+
8+
import com.magento.idea.magento2plugin.actions.generation.data.DataModelData;
9+
import com.magento.idea.magento2plugin.actions.generation.data.converter.DataObjectConverter;
10+
import com.magento.idea.magento2plugin.actions.generation.data.dialog.EntityManagerContextData;
11+
import com.magento.idea.magento2plugin.actions.generation.data.dialog.NewEntityDialogData;
12+
import org.jetbrains.annotations.NotNull;
13+
14+
public class DataModelDtoConverter extends DataModelData implements DataObjectConverter {
15+
16+
/**
17+
* DTO converter.
18+
*
19+
* @param generationContextData EntityManagerContextData
20+
* @param newEntityDialogData NewEntityDialogData
21+
*/
22+
public DataModelDtoConverter(
23+
final @NotNull EntityManagerContextData generationContextData,
24+
final @NotNull NewEntityDialogData newEntityDialogData
25+
) {
26+
super(
27+
generationContextData.getDtoModelNamespaceBuilder().getNamespace(),
28+
newEntityDialogData.getEntityName().concat("Data"),
29+
generationContextData.getModuleName(),
30+
generationContextData.getDtoModelNamespaceBuilder().getClassFqn(),
31+
generationContextData.getDtoInterfaceNamespaceBuilder().getClassFqn(),
32+
newEntityDialogData.getProperties(),
33+
newEntityDialogData.hasDtoInterface()
34+
);
35+
}
36+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
package com.magento.idea.magento2plugin.actions.generation.data.converter.newentitydialog;
7+
8+
import com.magento.idea.magento2plugin.actions.generation.data.DataModelInterfaceData;
9+
import com.magento.idea.magento2plugin.actions.generation.data.converter.DataObjectConverter;
10+
import com.magento.idea.magento2plugin.actions.generation.data.dialog.EntityManagerContextData;
11+
import com.magento.idea.magento2plugin.actions.generation.data.dialog.NewEntityDialogData;
12+
import org.jetbrains.annotations.NotNull;
13+
14+
public class DataModelInterfaceDtoConverter extends DataModelInterfaceData
15+
implements DataObjectConverter {
16+
17+
/**
18+
* DTO interface converter.
19+
* @param generationContextData EntityManagerContextData
20+
* @param newEntityDialogData NewEntityDialogData
21+
*/
22+
public DataModelInterfaceDtoConverter(
23+
final @NotNull EntityManagerContextData generationContextData,
24+
final @NotNull NewEntityDialogData newEntityDialogData
25+
) {
26+
super(
27+
generationContextData.getDtoInterfaceNamespaceBuilder().getNamespace(),
28+
newEntityDialogData.getEntityName().concat("Interface"),
29+
generationContextData.getModuleName(),
30+
generationContextData.getDtoInterfaceNamespaceBuilder().getClassFqn(),
31+
newEntityDialogData.getProperties()
32+
);
33+
}
34+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
package com.magento.idea.magento2plugin.actions.generation.data.converter.newentitydialog;
7+
8+
import com.magento.idea.magento2plugin.actions.generation.data.UiComponentDataProviderData;
9+
import com.magento.idea.magento2plugin.actions.generation.data.converter.DataObjectConverter;
10+
import com.magento.idea.magento2plugin.actions.generation.data.dialog.EntityManagerContextData;
11+
import com.magento.idea.magento2plugin.actions.generation.data.dialog.NewEntityDialogData;
12+
import com.magento.idea.magento2plugin.magento.files.UiComponentDataProviderFile;
13+
import org.jetbrains.annotations.NotNull;
14+
15+
public class DataProviderDtoConverter extends UiComponentDataProviderData
16+
implements DataObjectConverter {
17+
18+
/**
19+
* Data provider converter.
20+
*
21+
* @param generationContextData EntityManagerContextData
22+
* @param newEntityDialogData NewEntityDialogData
23+
*/
24+
public DataProviderDtoConverter(
25+
final @NotNull EntityManagerContextData generationContextData,
26+
final @NotNull NewEntityDialogData newEntityDialogData
27+
) {
28+
super(
29+
newEntityDialogData.getEntityName().concat("DataProvider"),
30+
generationContextData.getDataProviderNamespaceBuilder().getNamespace(),
31+
UiComponentDataProviderFile.DIRECTORY,
32+
newEntityDialogData.getIdFieldName()
33+
);
34+
}
35+
}

0 commit comments

Comments
 (0)