string replace pattern형과 string index 추가

This commit is contained in:
leedongmyung 2025-04-02 08:03:05 +09:00
parent 94efbd63dd
commit 2f45d8ea8f
4 changed files with 135 additions and 0 deletions

View file

@ -76,6 +76,8 @@ enum CommandType {
SlackBuild,
StringSub,
StringReplace,
StringReplacePattern,
StringIndex,
Jira,
Zip,
Shell,
@ -142,6 +144,8 @@ abstract class Command {
CommandType.SlackBuild: () => SlackBuild(),
CommandType.StringSub: () => StringSub(),
CommandType.StringReplace: () => StringReplace(),
CommandType.StringReplacePattern: () => StringReplacePattern(),
CommandType.StringIndex: () => StringIndex(),
CommandType.Jira: () => Jira(),
CommandType.Zip: () => Zip(),
CommandType.Shell: () => Shell(),

View file

@ -47,3 +47,37 @@ class StringReplace extends Command {
return await complete(exitCode, command);
}
}
class StringReplacePattern extends Command {
@override
Future execute(DataCommand command) async {
var data = DataStringReplacePattern.fromJson(getParam(command));
var text = data.text;
var exitCode = 0;
var start = text.indexOf(data.startPattern, data.startAt);
var end = text.indexOf(data.endPattern, start);
text = text.replaceRange(start, end, data.value);
await setProperty(data.setValue, text, showPrint: data.showPrint);
return await complete(exitCode, command);
}
}
class StringIndex extends Command {
@override
Future execute(DataCommand command) async {
var data = DataStringIndex.fromJson(getParam(command));
var text = data.text;
var exitCode = 0;
var index = text.indexOf(data.value);
await setProperty(data.setValue, index, showPrint: data.showPrint);
return await complete(exitCode, command);
}
}

View file

@ -950,6 +950,41 @@ class DataStringReplace extends DataParam {
Map<String, dynamic> toJson() => _$DataStringReplaceToJson(this);
}
//String Replace with Pattern
@JsonSerializable()
class DataStringReplacePattern extends DataParam {
DataStringReplacePattern();
int startAt = 0;
late String startPattern; //
late String endPattern; //
late String text; //
late String value; //
late String setValue; //
factory DataStringReplacePattern.fromJson(Map<String, dynamic> json) =>
_$DataStringReplacePatternFromJson(json);
@override
Map<String, dynamic> toJson() => _$DataStringReplacePatternToJson(this);
}
//String Find Index
@JsonSerializable()
class DataStringIndex extends DataParam {
DataStringIndex();
int startAt = 0;
late String text;
late String value;
late String setValue;
factory DataStringIndex.fromJson(Map<String, dynamic> json) =>
_$DataStringIndexFromJson(json);
@override
Map<String, dynamic> toJson() => _$DataStringIndexToJson(this);
}
//Web String Replace Item
@JsonSerializable()
class DataStringReplacePair extends DataParam {

View file

@ -85,6 +85,8 @@ const _$CommandTypeEnumMap = {
CommandType.SlackBuild: 'SlackBuild',
CommandType.StringSub: 'StringSub',
CommandType.StringReplace: 'StringReplace',
CommandType.StringReplacePattern: 'StringReplacePattern',
CommandType.StringIndex: 'StringIndex',
CommandType.Jira: 'Jira',
CommandType.Zip: 'Zip',
CommandType.Shell: 'Shell',
@ -1594,6 +1596,66 @@ Map<String, dynamic> _$DataStringReplaceToJson(DataStringReplace instance) =>
'pair': instance.pair,
};
DataStringReplacePattern _$DataStringReplacePatternFromJson(
Map<String, dynamic> json) =>
DataStringReplacePattern()
..workspace = json['workspace'] as String?
..passExitCodes = (json['passExitCodes'] as List<dynamic>?)
?.map((e) => (e as num).toInt())
.toList()
..setResult = json['setResult'] as String?
..setExitCode = json['setExitCode'] as String?
..showPrint = json['showPrint'] as bool?
..startAt = (json['startAt'] as num).toInt()
..startPattern = json['startPattern'] as String
..endPattern = json['endPattern'] as String
..text = json['text'] as String
..value = json['value'] as String
..setValue = json['setValue'] as String;
Map<String, dynamic> _$DataStringReplacePatternToJson(
DataStringReplacePattern instance) =>
<String, dynamic>{
'workspace': instance.workspace,
'passExitCodes': instance.passExitCodes,
'setResult': instance.setResult,
'setExitCode': instance.setExitCode,
'showPrint': instance.showPrint,
'startAt': instance.startAt,
'startPattern': instance.startPattern,
'endPattern': instance.endPattern,
'text': instance.text,
'value': instance.value,
'setValue': instance.setValue,
};
DataStringIndex _$DataStringIndexFromJson(Map<String, dynamic> json) =>
DataStringIndex()
..workspace = json['workspace'] as String?
..passExitCodes = (json['passExitCodes'] as List<dynamic>?)
?.map((e) => (e as num).toInt())
.toList()
..setResult = json['setResult'] as String?
..setExitCode = json['setExitCode'] as String?
..showPrint = json['showPrint'] as bool?
..startAt = (json['startAt'] as num).toInt()
..text = json['text'] as String
..value = json['value'] as String
..setValue = json['setValue'] as String;
Map<String, dynamic> _$DataStringIndexToJson(DataStringIndex instance) =>
<String, dynamic>{
'workspace': instance.workspace,
'passExitCodes': instance.passExitCodes,
'setResult': instance.setResult,
'setExitCode': instance.setExitCode,
'showPrint': instance.showPrint,
'startAt': instance.startAt,
'text': instance.text,
'value': instance.value,
'setValue': instance.setValue,
};
DataStringReplacePair _$DataStringReplacePairFromJson(
Map<String, dynamic> json) =>
DataStringReplacePair()