Предполагая, что у вас есть файл конфигурации в виде некоторого XML (или любого другого формата), и задайте имя для каждой настройки и элементы массива с их свойствами:
<processor-config name="first">
<object type="a"/>
<object type="b">
<argument value="2">
<argument value="3">
</object>
<object type="c"/>
</processor-config>
Иметь класс ProcessorConfig
в javaкоторый содержит все эти данные и который предоставляет метод, подобный следующему:
public Processor[] createProcessors() {
Processor[] processors = new Processor[objectList.size()];
for (int i = 0; i < objectList.size(); i++) {
processors[i] = objectList.get(i).createProcessor();
}
}
* * * * * * * * * * * * * * * * Здесь список ObjectWrapper
содержит список *1009* бинов, содержащих данные для конфигурации объекта (соответствует XML object
element): тип и аргументы, и он также знает, как создать процессор на основе его состояния.
Получив его, вы можете проанализировать файл XML и сохранить карту String
-> * 1014.* поэтому, основываясь на пользовательском вводе, вы можете просто написать:
configMap.get(userInputString).createProcessors()
Конечно, вы должны проверять на нулевое значение и не вызывать методы, как описано выше, но я хотел, чтобы это было как можно короче.
РЕДАКТИРОВАТЬ: было бы намного проще, если бы вы могли использовать контейнер Spring IoC в своем проекте и просто определить эти ProcessorConfig
экземпляры как бины непосредственно на карте, не анализируя XML самостоятельно.