Не генерировать Java.
Если это так, выполните XML-процедуру, чтобы определить соответствующие данные для каждого клиента. Затем создайте объекты Field из данных XML. Поместите их в карту в Foo. Теперь вместо foo.getName () вы будете использовать foo.get ("name");
Создайте Factory, которая читает соответствующий XML-файл и возвращает вам экземпляр Foo, который был загружен из XML.
Попытка поместить разные данные в один класс очень неудачна.
Или создайте конкретные классы, специфичные для каждого клиента. Да, это утомительно, но вы должны сделать это только один раз. Они должны реализовывать интерфейс, который определяет все методы, необходимые на бизнес-уровне. Теперь ваша фабрика определяет, какой из них подходит, создает его и возвращает интерфейс.
Теперь ваш бизнес-уровень не знает клиента. Это хорошо.
Теперь, если ваш бизнес-уровень очень зависит от клиента, мы можем сделать немного больше, чтобы облегчить боль ...