Пример: У меня есть абстрактный класс «животное» и подкласс «лев» и «тигр». Имя подкласса написано в поле «Форма» NotesDocument. Как создать bean с именем animal с классом «Tiger» или «Lion» во время выполнения.Как установить класс bean во время выполнения
Мой план: Я делаю фасоль с управляемым bean-name «животным», управляемым bean-классом «AnimalFactory». Тогда где-то, где ?, Я хочу (псевдокод)
Document doc = database.getDocById("AAAA"); //from docId parameter
String animalType = doc.getItemValueString("Form");
if (animalType.equals("Lion") return makeLionInstance();
else return makeTigerInstance();
Может кто-то мне точку в правильном направлении или дать мне пример?
EDIT
Я гавань изучить любые ответы, предоставляемые ... Сделаю завтра.
Проблема заключается в том, что проект LoC 100k-300k и никто не знает, что именно он делает. Это 15 лет и имеет 30-50 разработчиков. Во всяком случае, мы решили пойти в Интернет. В java мы видим отличную возможность переписать проект в java (как многие уже сделали), удалить избыточный код, определить интерфейсы и т. Д. (И позже, когда не задействованы никакие объекты MS, замените Java-код кодом LS) ... У нас есть 6 разных (с аналогичной базой) типов doc (form) с подтипами, и каждый тип имеет 5 различных рабочих процессов, которые являются исключительными.
У меня нет знаний о том, как создать экземпляр определенного класса из notesdocument во время выполнения. Одним из способов является предоставление переменных базовому классу и их создание во время выполнения на основе поля «Форма». У меня такое чувство, этого в конечном итоге не хватит.
Как и в моем «плане», я ДУМАЮ, что у меня есть смутное представление о том, что нужно сделать. Я не знаю, где вставлять код, и то, что я должен быть осторожным.
TL: DR
Как иметь экземпляр типа, определенного на поле документа «Форма» разрешен к управляемому компоненту во время выполнения.
Есть, вероятно, много способов решения этой проблемы в Java (см ответов ниже), но я хотел бы иметь немного больше контекста. Почему вы хотите использовать управляемый компонент (они переоценены в XPages) и что вы пытаетесь сделать? Я больше не использую управляемые компоненты и, как правило, привязываю XPages, пользовательские элементы управления и/или панели к источнику данных ''. В свойстве createObject вы можете легко решить, какой класс Java использовать. См. Также http://www.slideshare.net/thimojansen/xpages-22933454 –
Не могли бы вы изменить свой вступительный абзац и вместо того, чтобы * объяснить * ваш пример, на самом деле дать пример кода? –