package mediawiki.task.config.actwp; import java.util.regex.Pattern; import util.Util; public class RegexTokenPositioner extends TokenPositioner { public RegexTokenPositioner(String... tokens) { super(tokens); } private static final int FLAGS = Pattern.CASE_INSENSITIVE & Pattern.UNICODE_CASE & Pattern.UNICODE_CHARACTER_CLASS & Pattern.UNIX_LINES; @Override public String insert(String content, String template) { boolean flag = true; int index = Integer.MAX_VALUE; for(String token : getTokens()){ int i = Util.indexOf(Pattern.compile(token,FLAGS), content); if(i > -1 && i < index) { index = i; flag = false; } } if(index != Integer.MAX_VALUE && flag == false) { content = content.substring(0,index)+(content.charAt(index-1) != '\n' ? "\n" : "")+"{{"+template+"}}\n"+content.substring(index); }else if(flag){ content += "\n{{"+template+"}}"; } return content; } }