Создание преобразования, Информация о выпуске

© Copyright International Business Machines Corporation 2006. Все права защищены. Ограниченные права пользователей государственных учреждений США - Использование, копирование или обнародование регламентируется Контрактом GSA ADP с IBM Corp.

Информация о выпуске

1.0 Ограничения
   1.1 Профайлы UML по умолчанию не преобразуются автоматически при создании преобразования модели в UML
   1.2 В преобразованиях модель-модель поддержка fuse доступна только для целевых моделей с расширением contentTypes
   1.3 В преобразованиях модель-модель входные или выходные модели Ecore должны иметь соответствующие базовые модели
   1.4 Необходимо указать файл как целевой контейнер в конфигурации преобразования модель-модель
   1.5 Интеграция преобразования создания с преобразованием JET не выполняется автоматически
2.0 Известные неполадки и способы их обхода
   2.1 Метамодели UML не добавляются автоматически к преобразованиям Модель-Модель
   2.2 Преобразования "туда" и "обратно" отфильтрованных свойств могут неверно отображаться в редакторе преобразования
   2.3 Удаление единственной ссылки на модель в файле карты преобразования приводит к тому, что модель удаляется из файла
   2.4 В редакторе конфигурации преобразования модель-модель можно выбрать опцию runSilent, если режим объединения - автоматический или визуальный
   2.5 Могут возникать ошибки объединения при преобразовании из модели в uml с зарегистрированным профайлом, если не используется ИД регистрации профайла
   2.6 При создании кода из моделей преобразования не воссоздаются базовые файлы проекта, включая 'plugin.xml' и 'MANIFEST.MF'

1.0 Ограничения

1.1 Профайлы UML по умолчанию не преобразуются автоматически при создании преобразования модели в UML

В преобразованиях модели в целевую модель UML 2 профайлы UML по умолчанию не преобразуются автоматически. Например, профайл UML default.epx  не преобразуется автоматически. Эти профайлы необходимо преобразовать вручную, или использовать среду UMLDefaultLibrariesAddRule. Эту среду можно добавить в преобразование вручную, если целевая модель - это модель UML EClass.

Для того чтобы добавить среду в преобразование, включите в преобразование следующий код:

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated NOT
     */
    protected void addTransformElements(Registry registry) {
 add(new UMLDefaultLibrariesAddRule());
     addGeneratedTransformElements(registry);
     // You may add more transform element after the generated ones here
     // Remember to remove the @generated tag or add NOT to it
    }

1.2 В преобразованиях модель-модель поддержка fuse доступна только для целевых моделей с расширением contentTypes

Для поддержки "fuse" в целевой модели в преобразованиях модель-модель необходим модуль с расширением "org.eclipse.core.runtime.contentTypes" в рабочей области Eclipse. Это расширение можно указать в модуле, доменное имя которого порождается от домена целевой модели. Дополнительная информация об этом расширении приведена в документации точки расширения в разделе о сравнении и объединении проекта. Это позволяет применять сложные стратегии fuse для целевой модели. Для более простой стратегии EMF можно указать следующее расширение (замените "xxx" на нужное расширение файла):

<extension
  point="org.eclipse.core.runtime.contentTypes">
  <file-association
   content-type="com.ibm.xtools.comparemerge.emf.emfContentType"
  file-extensions="xxx"/>
 </extension>

1.3 В преобразованиях модель-модель входные или выходные модели Ecore должны иметь соответствующие базовые модели

В преобразованиях модель-модель входные или выходные модели Ecore должны иметь соответствующие базовые модели. Для того чтобы создать базовые модели, используйте мастер моделей EMF. Обязательно сгенерируйте код после создания базовой модели.   Базовые модели должны быть зарегистрированы в среде разработки, или они должны быть расположены по тому же пути, что и соответствующие модели Ecore. Базовая модель должна быть сохранена в файле с расширением .genmodel, с похожим именем  в том же регистре, что и модель Ecore. В противном случае модуль преобразований не найдет базовую модель. Если модуль преобразований не найдет базовую модель, то код не будет сгенерирован.

1.4 Необходимо указать файл как целевой контейнер в конфигурации преобразования модель-модель

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

Для того чтобы создать пустую модель Ecore, на главной странице редактора конфигурации преобразования или мастера нажмите Создать новый целевой контейнер и укажите файл, имеющий расширение целевой модели.

1.5 Интеграция преобразования создания с преобразованием JET не выполняется автоматически

Для того чтобы преобразование модель-модель могло работать для преобразования JET (модели в текст), необходимо вручную добавить экземпляр среды JETRule в правила 'postProcessing' RootTransformation, относящегося к провайдеру преобразования. Ниже приведен пример кода, включаемого в класс провайдера преобразования. Замените 'xxx' на ИД преобразования JET.

    /**
     * Создать корневое преобразование. Здесь можно добавить другие правила преобразования
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param transform The root transformation
     * @generated NOT
     */
    protected RootTransformation createRootTransformation(ITransformationDescriptor descriptor) {
        return new RootTransformation(descriptor, new MainTransform()) {
                   protected void addPostProcessingRules() {
                            add(new JETRule("xxx"));
                   }
        };
   }

2.0 Известные неполадки и обходные пути

2.1 Метамодели UML не добавляются автоматически к преобразованиям модель-модель

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

Рекомендация: Добавьте мета-модель UML кнопкой Добавить модель в мастере или редакторе преобразования модель-модель.

2.2 Преобразования "туда" и "обратно" отфильтрованных свойств могут неверно отображаться в редакторе преобразования

Если пользователь переключает режим фильтрации из "Основного" в "Промежуточный" или в "Расширенный режим", создает преобразования, а затем переключается обратно в "Основной" режим фильтрации, то некоторые из конечных точек преобразования перестают быть видимы. Вследствие этого может показаться, что соединительные линии преобразований имеют концы, которые ни с чем не соединены.  Это влияет только на внешний вид отображения. Само преобразование и генерируемый исходный текст при этом не нарушаются.

Рекомендация: Представление можно исправить, переключившись обратно в тот режим фильтрации, который был включен при создании преобразований.

2.3 Удаление единственной ссылки на модель в файле карты преобразования приводит к тому, что модель удаляется из файла

Если файл преобразований не содержит больше ни одного преобразования, которое указывает на элементы из некоторой определенной модели в качестве входов или выходов, то модель "удаляется" из файла преобразований. Проверка наличия неиспользуемых моделей производится при каждом удалении входа или выхода преобразования. Отдельные списки поддерживаются в файле преобразований для входов и выходов.

Рекомендация: Необходимо добавить модель в файл преобразования перед тем, как выбирать элементы этой модели как входы или выходы преобразования. Для того чтобы добавить модель в файл, нажмите кнопку Добавить модель в редакторе преобразования.

2.4 В редакторе конфигурации преобразования модель-модель можно выбрать опцию runSilent, если режим объединения - автоматический или визуальный

В редакторе конфигурации преобразования модель-модель можно выбрать опцию runSilent в любом режиме объединения, включая автоматический и визуальный. Если выбран автоматический или визуальный режим объединения, то опция runSilent активирует неинтерактивную стратегию объединения, если в целевой модели обнаружена поддержка fuse. В противном случае используется переопределяющая стратегия объединения.

2.5 Могут возникать ошибки объединения при преобразовании из модели в uml с зарегистрированным профайлом, если не используется ИД регистрации профайла

При создании преобразования из мета-модели Ecore в мета-модель UML с профайлами необходимо проверить URI профайла, который будет использоваться в целевой модели UML. По умолчанию используется URI профайла, указанный в редакторе преобразования. Если указан URI ресурса, то он будет преобразован в аналогичный URI модуля.

Рекомендация: Можно указать другой URI в свойстве profileURI. Щелкните на корневом разделе в редакторе преобразования, чтобы открыть страницу свойств. Примечание: если используется зарегистрированный профайл, то можно указать его URI, если он отличается от профайла, применяемого автоматически. В противном случае зарегистрированный профайл может быть загружен более одного раза в наборе ресурсов, что приведет к неполадкам при объединении или слиянии.

2.6 При создании кода из моделей преобразования не воссоздаются базовые файлы проекта, включая 'plugin.xml' и 'MANIFEST.MF'

При создании кода из моделей преобразования базовые файлы проекта, включая 'plugin.xml' и 'MANIFEST.MF', воссоздаются только в том случае, если они отсутствуют. Возможно, потребуется изменить эти файлы после генерации.

Рекомендация: