Рефакторинг

This commit is contained in:
Mark Struchkov 2019-07-25 11:12:37 +03:00
parent c3997008a5
commit 346b3029af
4 changed files with 31 additions and 12 deletions

View File

@ -33,4 +33,8 @@ public class BoxAnswer {
@Description("Идентификатор стикера")
private Integer stickerId;
public static BoxAnswer of(String message) {
return BoxAnswer.builder().message(message).build();
}
}

View File

@ -26,4 +26,8 @@ public class KeyBoardButtonText extends KeyBoardButton {
this.label = label;
this.color = (color != null) ? color : ButtonColor.DEFAULT;
}
public static KeyBoardButtonText of(String label) {
return KeyBoardButtonText.builder().label(label).build();
}
}

View File

@ -9,8 +9,8 @@ import org.sadtech.social.core.domain.content.Message;
* @author upagge [08/07/2019]
*/
@FunctionalInterface
public interface Filter<T extends Message> {
public interface Modifiable<T extends Message> {
void processing(T content);
void change(T content);
}

View File

@ -6,6 +6,7 @@ import org.sadtech.social.core.domain.keyboard.KeyBoardButton;
import org.sadtech.social.core.domain.keyboard.KeyBoardLine;
import org.sadtech.social.core.domain.keyboard.button.KeyBoardButtonText;
import java.util.Arrays;
import java.util.List;
/**
@ -53,12 +54,7 @@ public class KeyBoards {
* @return {@link KeyBoard}
*/
public static KeyBoard verticalMenuString(String... labelButton) {
KeyBoard.KeyBoardBuilder keyBoard = KeyBoard.builder().oneTime(true);
for (String label : labelButton) {
KeyBoardButton keyBoardButton = KeyBoardButtonText.builder().label(label).payload("{\"button\": \"" + label + "\"}").build();
keyBoard.lineKeyBoard(KeyBoardLine.builder().buttonKeyBoard(keyBoardButton).build());
}
return keyBoard.build();
return verticalMenuString(Arrays.asList(labelButton));
}
/**
@ -68,15 +64,30 @@ public class KeyBoards {
* @return {@link KeyBoard}
*/
public static KeyBoard verticalDuoMenuString(String... labelButton) {
return verticalDuoMenuString(Arrays.asList(labelButton));
}
/**
* Возвращает клавиатуру формата 2х(N/2), где N - это количество элементов в переданном списке
*
* @param labelButton Список названий для кнопок
* @return {@link KeyBoard}
*/
public static KeyBoard verticalDuoMenuString(List<String> labelButton) {
KeyBoard.KeyBoardBuilder keyBoard = KeyBoard.builder().oneTime(true);
boolean flag = true;
KeyBoardLine.KeyBoardLineBuilder keyBoardLine = KeyBoardLine.builder();
for (String label : labelButton) {
for (int i = 0; i <= labelButton.size() - 1; i++) {
String label = labelButton.get(i);
if (flag) {
keyBoardLine.buttonKeyBoard(KeyBoardButtonText.builder().label(label).build());
flag = false;
keyBoardLine.buttonKeyBoard(KeyBoardButtonText.of(label));
if (i == labelButton.size() - 1) {
keyBoard.lineKeyBoard(keyBoardLine.build());
} else {
flag = false;
}
} else {
keyBoardLine.buttonKeyBoard(KeyBoardButtonText.builder().label(label).build());
keyBoardLine.buttonKeyBoard(KeyBoardButtonText.of(label));
keyBoard.lineKeyBoard(keyBoardLine.build());
keyBoardLine = KeyBoardLine.builder();
flag = true;