/**
*
*/
package com.hundsun.ares.studio.jres.metadata.core.script.impl;
import java.util.ArrayList;
import java.util.List;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.jres.model.metadata.MetadataFactory;
import com.hundsun.ares.studio.jres.model.metadata.StandardField;
import com.hundsun.ares.studio.jres.model.metadata.StandardFieldList;
import com.hundsun.ares.studio.jres.model.metadata.decrypt.DeStandardField;
import com.hundsun.ares.studio.jres.model.metadata.util.MetadataUtil;
import com.hundsun.ares.studio.jres.script.api.metadata.IStandardFieldScriptWrap;
import com.hundsun.ares.studio.jres.script.api.wrap.IMetadataItemScriptWrap;
/**
* @author yanwj06282
*
*/
public class StandardFieldResScriptWrapImpl extends MetadataResScriptWrapImpl {
public StandardFieldResScriptWrapImpl(StandardFieldList dict, IARESResource resource, boolean includeRequiredBundles) {
super(dict, resource, includeRequiredBundles);
}
@Override
public StandardFieldList getOriginalInfo() {
return (StandardFieldList) super.getOriginalInfo();
}
@Override
public IMetadataItemScriptWrap[] getItems() {
List<IStandardFieldScriptWrap> items = new ArrayList<IStandardFieldScriptWrap>();
// 2014-3-28 sundl �������˴������ù��̵������Ϊ�˷���ͳһ�ڸ����ﴦ�����������Ϊ����super.getItems()
for (IMetadataItemScriptWrap item : super.getItems()) {
MetadataItemScriptWrapImpl metadataItem = (MetadataItemScriptWrapImpl) item;
StandardField standardField = (StandardField) metadataItem.getOriginalInfo();
items.add(new StandardFieldScriptWrapImpl(MetadataUtil.decrypt(standardField, metadataItem.getResource()), metadataItem.getResource()));
}
return items.toArray(new IMetadataItemScriptWrap[items.size()]);
}
@Override
public IStandardFieldScriptWrap[] getNotCateItems() {
List<IStandardFieldScriptWrap> items = new ArrayList<IStandardFieldScriptWrap>();
// 2014-3-28 sundl �������˴������ù��̵������Ϊ�˷���ͳһ�ڸ����ﴦ�����������Ϊ����super.getNotCateItems()
for (IMetadataItemScriptWrap item : super.getNotCateItems()) {
MetadataItemScriptWrapImpl metadataItem = (MetadataItemScriptWrapImpl) item;
StandardField standardField = (StandardField) metadataItem.getOriginalInfo();
items.add(new StandardFieldScriptWrapImpl(MetadataUtil.decrypt(standardField, metadataItem.getResource()), metadataItem.getResource()));
}
return items.toArray(new IStandardFieldScriptWrap[items.size()]);
}
public IStandardFieldScriptWrap addItem(){
StandardField std = MetadataFactory.eINSTANCE.createStandardField();
getOriginalInfo().getItems().add(std);
return new StandardFieldScriptWrapImpl(MetadataUtil.decrypt(std, resource),resource);
}
@Override
public void removeItem(IMetadataItemScriptWrap item) {
if (item instanceof StandardFieldScriptWrapImpl) {
StandardFieldScriptWrapImpl stdfield = (StandardFieldScriptWrapImpl) item;
DeStandardField de = (DeStandardField) stdfield.getProxy();
getOriginalInfo().getItems().remove(de.getProxyItem());
}
}
}