Как мне расширить генерацию кода Faktor-IPS для изменения сгенерированного кода

#ide-customization #faktor-ips

#ide-настройка #faktor-ips

Вопрос:

Мне нужно изменить код, сгенерированный Faktor-IPS. Я видел свойство расширения «org.faktorips.devtools.core.artefactbuilderset» и создал класс, расширяющий StandardBuilderSet.

Я создал свой собственный конструктор (MetaattributPolicyCmptClassBuilder) и расширил реализацию по умолчанию, поместив свою реализацию в карту builder, как показано ниже:

 
    @Override
    protected LinkedHashMap<IBuilderKindId, IIpsArtefactBuilder> createBuilders() throws CoreException {
        LinkedHashMap<IBuilderKindId, IIpsArtefactBuilder> builders = super.createBuilders();
        
        builders.put(BuilderKindIds.POLICY_CMPT_TYPE_IMPLEMEMENTATION, new MetaattributPolicyCmptClassBuilder(false, this, getGeneratorModelContext(), getModelService()));
        
        return builders;
    }

    
}
 

Я ожидал бы, что мой пользовательский код (помещенный в список компоновщиков в приведенном выше примере) будет выполнен, но выполняется только код стандартного набора компоновщиков. Что не так или что еще нужно сделать, чтобы это заработало?

Комментарии:

1. @SamuelLiew Не могли бы вы повторно открыть вопрос? Я (и hd42) отредактировали вопрос, чтобы сделать его более понятным. Если это еще недостаточно ясно, не могли бы вы дать несколько советов, что вы ожидаете в дополнение?

Ответ №1:

Чтобы ваш проект мог использовать пользовательский конструктор, задайте идентификатор набора конструкторов в файле .ipsproject, используя тег XML вместо «org.faktorips.devtools.stdbuilder.ipsstdbuilderset».