Packages and Factories
package和factory类帮助你访问模型的metadata,或者创建模型的实例。
通过package可以轻松的获得模型的EClass对象,如:

EMF的一些总结(1)——关于Packages and FactoriesEClass purchaseOrderClass = epo2Package.getPurchaseORder();
例外还有一种方法也可以通过package类对象获得model的EClass对象,如:
EMF的一些总结(1)——关于Packages and FactoriesEClass purchaseOrderClass =
EMF的一些总结(1)——关于Packages and Factories  (EClass)epo2Package.getEClassifier(
"PurchaseOrder");
可以通过类似的方法访问模型的属性、引用还有其他更多的信息。
tip: EEnum是EDataType的子类
获得package对象的方法:
1.通过加载外部.ecore文件,从加载的Resource对象中获取,如:
EMF的一些总结(1)——关于Packages and FactoriesResourceSet resourceSet = new ResourceSetImpl();
EMF的一些总结(1)——关于Packages and FactoriesURI fileURI 
= URI.createURI("EMF的一些总结(1)——关于Packages and Factories/ExtendedPO2.ecore");
EMF的一些总结(1)——关于Packages and FactoriesResource resource 
= resourceSet.getResource(fileURI, true);
EMF的一些总结(1)——关于Packages and FactoriesEPackage epo2Package 
= (EPackage)resource.getContents().get(0);
EMF的一些总结(1)——关于Packages and Factories
2.通过package registry来访问,package registry提供了namespace URIs到EPackage的映射关系。如果是插件方式的开发,通过定义扩展点可以在插件加载的时候把package对象注册到registry中,如:
EMF的一些总结(1)——关于Packages and Factories<extension point="org.eclipse.emf.ecore.generated_package">
EMF的一些总结(1)——关于Packages and Factories  
<package
EMF的一些总结(1)——关于Packages and Factories     uri 
= "http:///com/example/epo2.ecore"
EMF的一些总结(1)——关于Packages and Factories     
class = "com.example.epo2.EPO2Package" />
EMF的一些总结(1)——关于Packages and Factories
</extension>
EMF的一些总结(1)——关于Packages and Factories
如果不是插件开发方式,可以功过构造函数来将package注册到Registry实例中,如:
注册后可以功过下面代码获得package对象:
EMF的一些总结(1)——关于Packages and FactoriesEPackage.Registry.INSTANCE.getEPackage() 

相关文章:

  • 2021-04-19
  • 2021-05-26
  • 2021-11-27
  • 2021-11-20
  • 2022-02-18
  • 2022-01-04
  • 2021-07-26
猜你喜欢
  • 2021-07-14
  • 2021-07-09
  • 2022-12-23
  • 2021-07-26
  • 2021-07-19
  • 2021-07-18
  • 2021-09-27
相关资源
相似解决方案