#2 trim strings
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -2,9 +2,14 @@ package ru.penkrat.stbf.templates.utils;
|
||||
|
||||
import lombok.experimental.UtilityClass;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@UtilityClass
|
||||
public class StringUtils {
|
||||
|
||||
public static final String NL_DELIMITER = "\n";
|
||||
|
||||
public boolean isEmpty(String string) {
|
||||
return string == null || string.isEmpty();
|
||||
}
|
||||
@@ -12,4 +17,13 @@ public class StringUtils {
|
||||
public boolean isNotEmpty(String string) {
|
||||
return !isEmpty(string);
|
||||
}
|
||||
|
||||
public String ltrim(String text) {
|
||||
if (text == null) {
|
||||
return null;
|
||||
}
|
||||
return Stream.of(text.split(NL_DELIMITER))
|
||||
.map(string -> string.trim())
|
||||
.collect(Collectors.joining(NL_DELIMITER));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,27 +44,35 @@ class FlowScreenResolverDelegate implements ScreenResolver {
|
||||
public Screen getScreen(String name) {
|
||||
ScreenItem item = resolver.get(name);
|
||||
|
||||
String text = item.getText();
|
||||
if (!item.isPreserve()) {
|
||||
text = StringUtils.ltrim(text);
|
||||
}
|
||||
if (StringUtils.isNotEmpty(item.getMediaRef())) {
|
||||
final Media media = mediaResolver.getMedia(item.getMediaRef());
|
||||
final MediaScreen mediaScreen = new MediaScreen(item.getText(), media, buildKeyboard(item.getKeyboard(), null));
|
||||
final MediaScreen mediaScreen = new MediaScreen(text, media, buildKeyboard(item.getKeyboard(), null));
|
||||
return new RamFileIdStorageMediaScreen(mediaScreen);
|
||||
}
|
||||
|
||||
return new TextScreen(item.getText(), buildKeyboard(item.getKeyboard(), null));
|
||||
return new TextScreen(text, buildKeyboard(item.getKeyboard(), null));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Screen getScreen(String name, Object context) {
|
||||
ScreenItem item = resolver.get(name);
|
||||
|
||||
String text = item.getText();
|
||||
if (!item.isPreserve()) {
|
||||
text = StringUtils.ltrim(text);
|
||||
}
|
||||
if (StringUtils.isNotEmpty(item.getMediaRef())) {
|
||||
final Media media = mediaResolver.getMedia(item.getMediaRef());
|
||||
final MediaScreen mediaScreen = new MediaScreen(templateRenderer.render(item.getText(), context), media,
|
||||
final MediaScreen mediaScreen = new MediaScreen(templateRenderer.render(text, context), media,
|
||||
resolveKeyboard(item.getKeyboard(), context));
|
||||
return new RamFileIdStorageMediaScreen(mediaScreen);
|
||||
}
|
||||
|
||||
return new TextScreen(templateRenderer.render(item.getText(), context),
|
||||
return new TextScreen(templateRenderer.render(text, context),
|
||||
resolveKeyboard(item.getKeyboard(), context));
|
||||
}
|
||||
|
||||
|
||||
@@ -15,4 +15,7 @@ class ScreenItem extends NamedItem {
|
||||
|
||||
private KeyboardWrapper keyboard = new KeyboardWrapper();
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true)
|
||||
private boolean preserve;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user