Я пытаюсь найти лучшее решение для проблемы, которую я имею, с сопоставлением простой структуры bean, которая отправляется в приложение на основе браузера. Нынешнее требование состоит в том, чтобы управлять большинством элементов управления отображением на старой базе данных Java. В настоящее время у нас есть слой стиля службы, который создает объекты значений без встроенной в них логики отображения, например:
public class Example1 {
String value1;
Boolean value2;
Example3 value3;
public String getValue1(){...}
public void setValue1(){...}
....
}
Моя цель состоит в том, чтобы иметь возможность сопоставлять общую структуру по всем полям таким образом, чтобы она добавляла новую структуру отображения, которая требуется передним интерфейсом. Я хотел бы управлять только структурой исходного класса структуры (Example1) и просто устанавливать дополнительные значения в оболочке на старый сервисный уровень.
Общая структура будет иметь следующий класс:
public class Presentable<T> {
T value;
boolean visible = true;
boolean mandatory = false;
List<String> errors = new ArrayList<>();
public T getValue() {...}
public void setValue(T value) {...}
...
}
Конечный результат будет выглядеть примерно так: где значение равно значению в исходной структуре:
public class Example2{
Presentable<String> value1;
Presentable<Boolean> value2;
Presentable<Example3> value3;
public Presentable<String> getValue1(){...}
public void setValue1(){...}
...
}
Есть ли решение этой проблемы без написания класса стиля Example2 и копирования в каждом отдельном значении? Я открыт для изменения класса Example1, поскольку он не влияет на потребителей старой службы.
Спасибо.