package ca.uhn.fhir.narrative.template.filters; import java.util.regex.Matcher; import java.util.regex.Pattern; class Replace_First extends Filter { /* * replace_first(input, string, replacement = '') * * Replace the first occurrences of a string with another */ @Override public Object apply(Object value, Object... params) { String original = super.asString(value); Object needle = super.get(0, params); String replacement = ""; if (needle == null) { throw new RuntimeException("invalid pattern: " + needle); } if (params.length >= 2) { Object obj = super.get(1, params); if (obj == null) { throw new RuntimeException("invalid replacement: " + needle); } replacement = super.asString(super.get(1, params)); } return original.replaceFirst(Pattern.quote(String.valueOf(needle)), Matcher.quoteReplacement(replacement)); } }