Skip to content

Commit 85b61b6

Browse files
853: Code refactoring
1 parent 48f5dce commit 85b61b6

File tree

1 file changed

+36
-25
lines changed

1 file changed

+36
-25
lines changed

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

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.jetbrains.annotations.NotNull;
2929

3030
public class CreateAnObserverAction extends DumbAwareAction {
31+
3132
public static final String ACTION_NAME = "Create a new Observer for this event";
3233
public static final String ACTION_DESCRIPTION = "Create a new Magento 2 Observer";
3334
public String targetEvent;
@@ -40,19 +41,24 @@ public CreateAnObserverAction() {
4041
* Updates the state of action.
4142
*/
4243
@Override
43-
public void update(final AnActionEvent event) {
44+
public void update(final @NotNull AnActionEvent event) {
4445
final Project project = event.getData(PlatformDataKeys.PROJECT);
46+
if (project == null) {
47+
return;
48+
}
49+
4550
if (!Settings.isEnabled(project)) {
4651
this.setStatus(event, false);
4752
return;
4853
}
4954
final PsiFile psiFile = event.getData(PlatformDataKeys.PSI_FILE);
55+
5056
if (!(psiFile instanceof PhpFile)) {
5157
this.setStatus(event, false);
5258
return;
5359
}
54-
5560
final PsiElement element = getElement(event);
61+
5662
if (element == null) {
5763
this.setStatus(event, false);
5864
return;
@@ -67,21 +73,36 @@ public void update(final AnActionEvent event) {
6773
this.setStatus(event, false);
6874
}
6975

70-
private PsiElement getElement(@NotNull final AnActionEvent event) {
76+
@Override
77+
public void actionPerformed(final @NotNull AnActionEvent event) {
78+
if (event.getProject() == null) {
79+
return;
80+
}
81+
CreateAnObserverDialog.open(event.getProject(), this.targetEvent);
82+
}
83+
84+
@Override
85+
public boolean isDumbAware() {
86+
return false;
87+
}
88+
89+
private PsiElement getElement(final @NotNull AnActionEvent event) {
7190
final Caret caret = event.getData(PlatformDataKeys.CARET);
91+
7292
if (caret == null) {
7393
return null;
7494
}
75-
final int offset = caret.getOffset();
7695
final PsiFile psiFile = event.getData(PlatformDataKeys.PSI_FILE);
77-
final PsiElement element = psiFile.findElementAt(offset);
78-
if (element == null) {
96+
97+
if (psiFile == null) {
7998
return null;
8099
}
81-
return element;
100+
final int offset = caret.getOffset();
101+
102+
return psiFile.findElementAt(offset);
82103
}
83104

84-
private boolean isObserverEventNameClicked(@NotNull final PsiElement element) {
105+
private boolean isObserverEventNameClicked(final @NotNull PsiElement element) {
85106
return checkIsElementStringLiteral(element)
86107
&& checkIsParametersList(element.getParent().getParent())
87108
&& checkIsMethodReference(element.getParent().getParent().getParent())
@@ -90,11 +111,11 @@ && checkIsEventDispatchMethod(
90111
);
91112
}
92113

93-
private boolean checkIsParametersList(@NotNull final PsiElement element) {
114+
private boolean checkIsParametersList(final @NotNull PsiElement element) {
94115
return element instanceof ParameterList;
95116
}
96117

97-
private boolean checkIsMethodReference(@NotNull final PsiElement element) {
118+
private boolean checkIsMethodReference(final @NotNull PsiElement element) {
98119
return element instanceof MethodReference;
99120
}
100121

@@ -107,40 +128,30 @@ private boolean checkIsEventDispatchMethod(final MethodReference element) {
107128
if (!(method instanceof Method)) {
108129
return false;
109130
}
110-
if (!((Method) method).getName().equals(Observer.DISPATCH_METHOD)) {
131+
if (!Observer.DISPATCH_METHOD.equals(((Method) method).getName())) {
111132
return false;
112133
}
113134
final PsiElement phpClass = method.getParent();
114135
if (!(phpClass instanceof PhpClass)) {
115136
return false;
116137
}
117138
final String fqn = ((PhpClass) phpClass).getPresentableFQN();
118-
return fqn.equals(Observer.INTERFACE);
139+
return Observer.INTERFACE.equals(fqn);
119140
}
120141

121-
private boolean checkIsElementStringLiteral(@NotNull final PsiElement element) {
142+
private boolean checkIsElementStringLiteral(final @NotNull PsiElement element) {
122143
final ASTNode astNode = element.getNode();
123144
if (astNode == null) {
124145
return false;
125146
}
126147
final IElementType elementType = astNode.getElementType();
127148

128-
return elementType == PhpTokenTypes.STRING_LITERAL
129-
|| elementType == PhpTokenTypes.STRING_LITERAL_SINGLE_QUOTE;
149+
return elementType.equals(PhpTokenTypes.STRING_LITERAL)
150+
|| elementType.equals(PhpTokenTypes.STRING_LITERAL_SINGLE_QUOTE);
130151
}
131152

132153
private void setStatus(final AnActionEvent event, final boolean status) {
133154
event.getPresentation().setVisible(status);
134155
event.getPresentation().setEnabled(status);
135156
}
136-
137-
@Override
138-
public void actionPerformed(@NotNull final AnActionEvent event) {
139-
CreateAnObserverDialog.open(event.getProject(), this.targetEvent);
140-
}
141-
142-
@Override
143-
public boolean isDumbAware() {
144-
return false;
145-
}
146157
}

0 commit comments

Comments
 (0)