Cześć, mam obiekt i gotowe powiadomienia na temat tego obiektu ala np:
String wzor = "${trip_distance} odleglosc do ${trip_destination}";
jakiś prosty format odnośnie wartości, będę je brać z obiektu (getterami) i dostarczać.
zwracam się z pytaniem czy istnieje gotowa lekka biblioteka do tego / mechanizm w javie?
niżej zamieszczam najprostszy przykładowy kod o co mi chodzi.
uprzedzając - wiem co robię i to nie jest potrzebne mi do widoku ani nic takiego.
import com.google.common.collect.ImmutableMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static String fmtToString(String formattedStr, Trip trip) {
final Map<String, String> map = ImmutableMap.of(
"trip_destination", trip.getDestination(),
"trip_distance", trip.getDistance().toString()
);
Pattern p = Pattern.compile("\\$\\{(.*?)\\}");
Matcher m = p.matcher(formattedStr);
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, map.get(m.group(1)));
}
m.appendTail(sb);
return sb.toString();
}
public static void main(String[] args) {
final String niezmiennyWzor = "${trip_distance} odleglosc do ${trip_destination}";
final String niezmiennyWzor2 = "wycieczka wycieczka ${trip_destination} super ${trip_destination}";
//itd ....
Trip trip = new Trip("California", 18342);
System.out.println(fmtToString(niezmiennyWzor, trip));
//wypisze: 18342 odleglosc do California
System.out.println(fmtToString(niezmiennyWzor2, trip));
//wypisze: wycieczka wycieczka California super California
}
}
class Trip {
private String destination;
private Integer distance;
public Trip(String destination, Integer distance) {
this.destination = destination;
this.distance = distance;
}
public String getDestination() {
return destination;
}
public Integer getDistance() {
return distance;
}
}