Skip to content

Commit 8576288

Browse files
committed
Add name validation for cosmos database
1 parent 1e92747 commit 8576288

File tree

1 file changed

+8
-1
lines changed
  • PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/creation

1 file changed

+8
-1
lines changed

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/creation/CosmosDatabaseCreationDialog.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.microsoft.azure.toolkit.lib.common.form.AzureFormInput;
1414
import com.microsoft.azure.toolkit.lib.common.form.AzureValidationInfo;
1515
import com.microsoft.azure.toolkit.lib.cosmos.model.DatabaseConfig;
16+
import org.apache.commons.lang3.StringUtils;
1617

1718
import javax.annotation.Nonnull;
1819
import javax.annotation.Nullable;
@@ -49,7 +50,7 @@ protected void init() {
4950
buttonGroup.add(manualRadioButton);
5051
autoscaleRadioButton.addItemListener(e -> toggleThroughputStatus());
5152
manualRadioButton.addItemListener(e -> toggleThroughputStatus());
52-
53+
txtName.addValidator(() -> validateDatabaseName());
5354
txtThroughputRu.setMinValue(400);
5455
txtThroughputRu.setMaxValue(1000000);
5556
txtThroughputRu.setValue(400);
@@ -61,6 +62,12 @@ protected void init() {
6162
autoscaleRadioButton.setSelected(true);
6263
}
6364

65+
private AzureValidationInfo validateDatabaseName() {
66+
final String value = txtName.getValue();
67+
return StringUtils.endsWith(value, StringUtils.SPACE) || StringUtils.containsAny(value, "\\", "/","#", "?", "%") ?
68+
AzureValidationInfo.error("Database name not end with space nor contains characters '\\', '/', '#', '?', '%'", txtName) : AzureValidationInfo.success(txtName);
69+
}
70+
6471
private AzureValidationInfo validateThroughputIncrements(@Nonnull AzureIntegerInput input) {
6572
final Integer value = input.getValue();
6673
return Objects.nonNull(value) && value % 100 == 0 ? AzureValidationInfo.success(input) : AzureValidationInfo.error("Throughput must be in multiples of 100", input);

0 commit comments

Comments
 (0)