SigPlaceholderReplacer
PlaceholderReplacer는 Config의 String, List 작업을 유연하게 만들기 위한 모듈입니다.
Usage
기본적인 사용 방법은 다음과 같습니다.
String format = "{playername}'s uuid is {param:test:a}";
SigPlaceholderReplacer placeholder = new SigPlaceholderReplacer()
.add("playername", MapReplacer.of("Kyoee01")) // 단일 replacer
.add("param", ParamReplacer.of(args -> func(args[0]).get(args[1])); // 매개변수가 있는 replacer
placeholder.edit(format) // 변환 완료된 문자열 List이런 식으로 SigPlaceholderReplacer#add(String key, PlaceholderReplacer replacer)를 통해 PlaceholderReplacer를 등록해 주는 것으로 사용할 수 있습니다.
Feature
How to Expand
SigPlaceholderReplacer 는 확장성을 고려하여 구성되었습니다.
MapReplacerParamReplacer
위 클래스는 기본 Replacer입니다.
Replacer를 확장하기 위해선 PlaceholderReplacer 를 implement 해야합니다.
아래는 MapReplacer의 코드입니다.
PlaceholderReplacer#edit() 함수를 override 하여 구현하면 됩니다.
다만 edit 함수의 실행에는 몇가지 특이사항이 있습니다.
edit 함수는 키워드가 감지될 때 한번씩 실행됩니다. (
{test} {test}= 2번 호출)edit 함수의
texts는 현재 검사중인 Index 까지만 가지고 있는 list 입니다.
Ex) 예를 들어,
["a", "{test}", "c"]일 때 edit의 매개변수에 있는texts는["a", "{test}"]까지만 가지고 있게 됩니다.
약간의 소소한 활용
Last updated