EProxy URI не разрешается в модели ecore
В моей модели Ecore все типы, которые поступают извне текущей модели, не разрешаются их прокси. Все поля объекта возвращены getType()
являются null
и только URI типа хранилища заполняется во время выполнения.
Вот выдержка из моей модели:
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http:///model.ecore" nsPrefix="model">
<eSubpackages name="general" nsURI="http:///model/general.ecore" nsPrefix="model.general">
<eClassifiers xsi:type="ecore:EClass" name="Address">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="street" ordered="false" lowerBound="1"
eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"/>
</eClassifiers>
</eSubpackages>
</ecore:EPackage>
В настоящее время, если я сделаю
Address a = <address item from model>
Type t = a.getType();
все поля t
будет null
и toString()
возвращает что-то вроде:
org.eclipse.uml2.uml.internal.impl.PrimitiveTypeImpl@6e315086 (eProxyURI:
platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String)
1 ответ
Решение
Измените URI прокси с platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String
содержать NS URI пакета, который содержит тип данных: http://www.eclipse.org/uml2/4.0.0/Types#//String
,
Обратите внимание, что это изменение может быть сделано только в текстовом редакторе.