Skip to content

Commit 371d803

Browse files
committed
Added validation for PHP Class FQN
1 parent 2e39643 commit 371d803

File tree

5 files changed

+28
-6
lines changed

5 files changed

+28
-6
lines changed

resources/magento2/validation.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ validator.onlyNumbers=The {0} field must contain numbers only
1111
validator.mustNotBeNegative={0} must not be negative
1212
validator.identifier=The {0} field must contain letters, numbers, dashes, and underscores only
1313
validator.class.isNotValid=The {0} field does not contain a valid class name
14+
validator.fqn.isNotValid=The {0} field does not contain a valid fully qualified class name
1415
validator.class.shouldBeUnique=Duplicated class {0}
1516
validator.namespace.isNotValid=The {0} field does not contain a valid namespace
1617
validator.directory.isNotValid=The {0} field does not contain a valid directory

src/com/magento/idea/magento2plugin/actions/generation/dialog/NewMessageQueueDialog.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.Lowercase;
1717
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.NotEmptyRule;
1818
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.NumericRule;
19-
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.PhpClassRule;
20-
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.PhpNamespaceNameRule;
19+
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.PhpClassFqnRule;
2120
import com.magento.idea.magento2plugin.actions.generation.generator.QueueCommunicationGenerator;
2221
import com.magento.idea.magento2plugin.actions.generation.generator.QueueConsumerGenerator;
2322
import com.magento.idea.magento2plugin.actions.generation.generator.QueuePublisherGenerator;
@@ -63,8 +62,8 @@ public class NewMessageQueueDialog extends AbstractDialog {
6362

6463
@FieldValidation(rule = RuleRegistry.NOT_EMPTY,
6564
message = {NotEmptyRule.MESSAGE, HANDLER_TYPE})
66-
@FieldValidation(rule = RuleRegistry.PHP_CLASS,
67-
message = {PhpClassRule.MESSAGE, HANDLER_TYPE})
65+
@FieldValidation(rule = RuleRegistry.PHP_CLASS_FQN,
66+
message = {PhpClassFqnRule.MESSAGE, HANDLER_TYPE})
6867
private JTextField handlerType;
6968

7069
@FieldValidation(rule = RuleRegistry.NOT_EMPTY,
@@ -85,8 +84,8 @@ public class NewMessageQueueDialog extends AbstractDialog {
8584

8685
@FieldValidation(rule = RuleRegistry.NOT_EMPTY,
8786
message = {NotEmptyRule.MESSAGE, CONSUMER_TYPE})
88-
@FieldValidation(rule = RuleRegistry.PHP_CLASS,
89-
message = {PhpClassRule.MESSAGE, CONSUMER_TYPE})
87+
@FieldValidation(rule = RuleRegistry.PHP_CLASS_FQN,
88+
message = {PhpClassFqnRule.MESSAGE, CONSUMER_TYPE})
9089
private JTextField consumerType;
9190

9291
@FieldValidation(rule = RuleRegistry.NOT_EMPTY,

src/com/magento/idea/magento2plugin/actions/generation/dialog/validator/annotation/RuleRegistry.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.NotEmptyRule;
2121
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.NumericRule;
2222
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.PhpClassRule;
23+
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.PhpClassFqnRule;
2324
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.PhpDirectoryRule;
2425
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.PhpNamespaceNameRule;
2526
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.RouteIdRule;
@@ -29,6 +30,7 @@ public enum RuleRegistry {
2930
NOT_EMPTY(NotEmptyRule.class),
3031
BOX_NOT_EMPTY(BoxNotEmptyRule.class),
3132
PHP_CLASS(PhpClassRule.class),
33+
PHP_CLASS_FQN(PhpClassFqnRule.class),
3234
ROUTE_ID(RouteIdRule.class),
3335
ALPHANUMERIC(AlphanumericRule.class),
3436
ALPHANUMERIC_WITH_UNDERSCORE(AlphanumericWithUnderscoreRule.class),
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule;
2+
3+
import com.magento.idea.magento2plugin.util.RegExUtil;
4+
5+
public class PhpClassFqnRule implements ValidationRule {
6+
public static final String MESSAGE = "validator.fqn.isNotValid";
7+
private static final ValidationRule INSTANCE = new PhpClassFqnRule();
8+
9+
@Override
10+
public boolean check(final String value) {
11+
return value.matches(RegExUtil.Magento.PHP_CLASS_FQN);
12+
}
13+
14+
public static ValidationRule getInstance() {
15+
return INSTANCE;
16+
}
17+
}

src/com/magento/idea/magento2plugin/util/RegExUtil.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ public static class Magento {
4444
public static final String PHP_CLASS
4545
= "[A-Z][a-zA-Z0-9]+";
4646

47+
public static final String PHP_CLASS_FQN
48+
= "(" + PHP_CLASS + ")?(\\" + PHP_CLASS + ")+";
49+
4750
public static final String MODULE_NAME
4851
= "[A-Z][a-zA-Z0-9]+_[A-Z][a-zA-Z0-9]+";
4952

0 commit comments

Comments
 (0)