no message
This commit is contained in:
68
src/_VisualDVM/Validators/PathValidator.java
Normal file
68
src/_VisualDVM/Validators/PathValidator.java
Normal file
@@ -0,0 +1,68 @@
|
||||
package _VisualDVM.Validators;
|
||||
import Common.Utils.CommonUtils;
|
||||
import Common.Utils.TextLog;
|
||||
import org.fife.ui.rsyntaxtextarea.RSyntaxUtilities;
|
||||
public class PathValidator extends Validator {
|
||||
PathValidatorState state;
|
||||
StringBuilder name;
|
||||
int spaces_count;
|
||||
public PathValidator(String string, String string_name_in, TextLog log_in) {
|
||||
super(string, string_name_in, log_in);
|
||||
}
|
||||
@Override
|
||||
protected void reset() {
|
||||
state = PathValidatorState.Start;
|
||||
name = new StringBuilder();
|
||||
spaces_count = 0;
|
||||
}
|
||||
@Override
|
||||
protected boolean continueCondition() {
|
||||
return (state == PathValidatorState.Name) || state == PathValidatorState.Start;
|
||||
}
|
||||
@Override
|
||||
protected void Body() {
|
||||
switch (state) {
|
||||
case Start:
|
||||
if (RSyntaxUtilities.isLetter(c) || RSyntaxUtilities.isDigit(c) || c == '_') {
|
||||
name.append(c);
|
||||
state = PathValidatorState.Name;
|
||||
} else state = PathValidatorState.WrongNameFormat;
|
||||
break;
|
||||
case Name:
|
||||
switch (c) {
|
||||
case '/':
|
||||
reset();
|
||||
break;
|
||||
case ' ':
|
||||
spaces_count++;
|
||||
name.append(c);
|
||||
break;
|
||||
default:
|
||||
if (CommonUtils.isForbiddenCharacter(c))
|
||||
state = PathValidatorState.Forbidden;
|
||||
else name.append(c);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@Override
|
||||
protected void PerformFinish() {
|
||||
switch (state) {
|
||||
case WrongNameFormat:
|
||||
Log.Writeln(string_name + ": имя файла или каталога в пути имеет неверный формат");
|
||||
break;
|
||||
case Forbidden:
|
||||
Log.Writeln(string_name + ": Составляющие путь имена содержат запрещённые символы \n" + CommonUtils.printAllForbiddenCharacters());
|
||||
break;
|
||||
case Name:
|
||||
if (spaces_count > 0)
|
||||
Log.Writeln(string_name + ": Пробелы в окончании пути к файлу запрещены.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@Override
|
||||
protected int getStartIndex() {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user