Skip to content

Commit cd4a9f9

Browse files
author
Vitaliy
authored
Merge pull request #155 from mmezhensky/issue-45-plugin-method-generation
#45: add error message and fix error with not existing class
2 parents d116462 + 54d0cf0 commit cd4a9f9

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

resources/magento2/validation.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ validator.file.alreadyExists={0} already exists
1010
validator.file.cantBeCreated={0} can't be created
1111
validator.class.alreadyDeclared={0} already declared in the target module
1212
validator.magentoVersionInvalid=Please specify valid Magento version or use 'any' keyword as default
13+
validator.class.targetClassNotFound=Target class is not found. Check the di.xml file

src/com/magento/idea/magento2plugin/actions/generation/PluginGenerateMethodHandlerBase.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,16 @@
2525
import com.jetbrains.php.lang.psi.PhpCodeEditUtil;
2626
import com.jetbrains.php.lang.psi.PhpFile;
2727
import com.jetbrains.php.lang.psi.PhpPsiUtil;
28-
import com.jetbrains.php.lang.psi.elements.*;
29-
import java.util.*;
28+
import com.jetbrains.php.lang.psi.elements.Method;
29+
import com.jetbrains.php.lang.psi.elements.PhpClass;
30+
import com.jetbrains.php.lang.psi.elements.PhpPsiElement;
3031
import com.magento.idea.magento2plugin.actions.generation.ImportReferences.PhpClassReferenceResolver;
3132
import com.magento.idea.magento2plugin.actions.generation.data.code.PluginMethodData;
3233
import com.magento.idea.magento2plugin.actions.generation.generator.code.PluginMethodsGenerator;
3334
import com.magento.idea.magento2plugin.actions.generation.util.CodeStyleSettings;
3435
import com.magento.idea.magento2plugin.actions.generation.util.CollectInsertedMethods;
3536
import com.magento.idea.magento2plugin.actions.generation.util.FillTextBufferWithPluginMethods;
37+
import com.magento.idea.magento2plugin.bundles.ValidatorBundle;
3638
import com.magento.idea.magento2plugin.magento.files.Plugin;
3739
import com.magento.idea.magento2plugin.util.GetPhpClassByFQN;
3840
import com.magento.idea.magento2plugin.util.magento.plugin.GetTargetClassNamesByPluginClassName;
@@ -41,15 +43,20 @@
4143
import org.jetbrains.annotations.NotNull;
4244
import org.jetbrains.annotations.Nullable;
4345

46+
import javax.swing.*;
47+
import java.util.*;
48+
4449
public abstract class PluginGenerateMethodHandlerBase implements LanguageCodeInsightActionHandler {
4550
private CollectInsertedMethods collectInsertedMethods;
51+
private ValidatorBundle validatorBundle;
4652
public String type;
4753
public FillTextBufferWithPluginMethods fillTextBuffer;
4854

4955
public PluginGenerateMethodHandlerBase(Plugin.PluginType type) {
5056
this.type = type.toString();
5157
this.fillTextBuffer = FillTextBufferWithPluginMethods.getInstance();
5258
this.collectInsertedMethods = CollectInsertedMethods.getInstance();
59+
this.validatorBundle = new ValidatorBundle();
5360
}
5461

5562
public boolean isValidFor(Editor editor, PsiFile file) {
@@ -155,9 +162,17 @@ protected PhpNamedElementNode[] targetMethods(@NotNull PhpClass phpClass, Key<Ob
155162
ArrayList<String> targetClassNames = targetClassesService.execute(currentClass);
156163
for (String targetClassName : targetClassNames) {
157164
PhpClass targetClass = GetPhpClassByFQN.getInstance(phpClass.getProject()).execute(targetClassName);
165+
166+
if (targetClass == null) {
167+
String errorMessage = validatorBundle.message("validator.class.targetClassNotFound");
168+
JOptionPane.showMessageDialog(null, errorMessage, "Error", JOptionPane.ERROR_MESSAGE);
169+
continue;
170+
}
171+
158172
if (targetClass.isFinal()) {
159173
continue;
160174
}
175+
161176
Collection<Method> methods = targetClass.getMethods();
162177
Iterator methodIterator = methods.iterator();
163178

0 commit comments

Comments
 (0)