标签:pex public 基于 net 属性 label default category 临时文件
2)头模式:
头模式决定这段impex代码做什么样的操作,头模式有四种:INSERT,UPDATE,INSERT_UPDATE,REMOVE。
根据字面意思我们可以知道每种模式做什么样的操作,不赘述。
impex 文件的理解:
3)impex代码的结构:
Header Model typeCode;Attributes
UPDATE Type;Attribute1;Attribute2;
value1;value2;
假设有以下的Java Model的依赖关系关系
| 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
 | 
class
Person{    String
 id;    String
 name;}class
House{    String
 id    Person
 owner;    String
 address;}class
Company{    String
 id    String
 name;    List
 employee;} | 
如何使用impex创建Person,House,Company
| 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
 | 
INSERT_UPDATE
 Person;id[unique=true];name[lang=en];p00001;Test
 Name1;p00002;Test
 Name2INSERT_UPDATE
 House;id[unique=true];owner(id[unique=true],name);address;H00001;p00001:Test
 Name1;Test AddressINSERT_UPDATE
 Campany;id[unique=true];name;employee(id[unique=true],name);c0001;Test
 Company;p00001:Test Name1,p00002:Test Name2 | 
从wiki资料上来看,前面三个操作的顺序是可以改变的,hybris处理impex的文件机制是
当前操作的impex依赖的对象尚未创建时,hybris 会把当前这条impex语句保存到一个临时文件,
当impex的语句被执行完以后,再处理临时文件中的impex语句。
在对照页面模板的impex文件时,发现TypeCode,Attribute在hybris并没有相应的Java文件和属性对应,而是impex文件里对应的TypeCode在Hybris系统里对应一个编译后生成的Model文件,Hybris在生成的java文件通过一些属性和方法使impex文件TypeCode,Attributes与Mode文件里的属性对应。
e.g:
| 
 
1 
2 
3 
4 
5 
 | 
INSERT_UPDATE
 PageTemplate;catalogVersion(catalog(id[default=hybrisContentCatalog]),version[default=Online])[unique=true];uid[unique=true];name;frontendTemplateName;restrictedPageTypes(code);active[default=true]PageTemplate对应一个编译后生成的PageTemplateModelPageTemplateModel.java里有如下代码public
 final static String _TYPECODE = "PageTemplate";public
 static final String CATALOGVERSION = "catalogVersion";
  | 
标签:pex public 基于 net 属性 label default category 临时文件
原文地址:http://www.cnblogs.com/developer-ios/p/6950630.html