2016-07-01 19 views
0

Я создаю код для интерфейсов, указанных в IBM Rational Rhapsody. Rhapsody неявно генерирует include заявления для других типов данных, используемых в моих интерфейсах. Но я хотел бы иметь больше контроля над операторами include, поэтому я указываю их явно как текстовые элементы в исходных артефактах компонента. Поэтому я хотел бы запретить Rhapsody генерировать сам include include. Это возможно?Как избежать неявных операторов включения в генерации кода Rhapsody

ответ

0

И наконец, я нашел свойства, позволяющие Rhapsody производить требуемый вывод: GenerateImplicitDependencies для нескольких элементов и GenerateDeclarationDependency для элементов типа. Отключение этих функций позволит избежать генерации неявных операторов include.

0

Если это можно сделать, это скорее всего с помощью свойств. В окне функций нажмите на свойства и фильтр, указав «включить», чтобы увидеть некоторых возможных кандидатов. Не все свойства имеют описания того, что именно они делают, так что удачи.

EDIT:

Я провел некоторое время, глядя через свойство, а не могли найти, чтобы получить то, что вы хотите. Вероятно, вы не можете сделать это с базовой версией Rhapsody. IBM лицензирует надстройку для настройки генерации кода, называемой «Composer Rules» (я думаю); это почти наверняка позволит вам настроить входящие, но с довольно высокой стоимостью.

Существует два других возможных подхода. В зависимости от того, как вы настраиваете операторы include, вы можете написать простой сценарий оболочки, возможно, используя sed, а затем просто запустите этот скрипт, чтобы обновлять свой код каждый раз, когда Rhapsody генерирует его.

Другим подходом было бы использовать API Rhapsody для создания плагина/инструмента, который выполняет итерации через все интерфейсы и соответственно изменяет исходные артефакты. Я сам не пробовал этот метод, но я знаю, что мои коллеги использовали API для подобных действий.

+0

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