/**
* Դ�������ƣ�BizInterfaceWrap.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.biz.core
* ����˵����$desc
* ����ĵ���
* ���ߣ�sundl
*/
package com.hundsun.ares.studio.biz.script;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import com.hundsun.ares.studio.biz.BizInterface;
import com.hundsun.ares.studio.biz.Parameter;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.core.model.JRESResourceInfo;
import com.hundsun.ares.studio.core.model.util.RevisionHistoryUtil;
import com.hundsun.ares.studio.jres.script.api.biz.IBizInterfaceWrap;
import com.hundsun.ares.studio.jres.script.api.biz.IParameterWrap;
import com.hundsun.ares.studio.jres.script.base.ResourceWrapBase;
/**
* @author sundl
*
*/
public abstract class BizInterfaceWrap<T extends JRESResourceInfo> extends ResourceWrapBase<T> implements IBizInterfaceWrap{
private IParameterWrap[] inputList;
private IParameterWrap[] outputList;
public BizInterfaceWrap(IARESResource resource) {
super(resource);
}
protected abstract BizInterface getInterface();
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.script.api.biz.IBizServiceWrap#getInputParameters()
*/
@Override
public IParameterWrap[] getInputParameters() {
if (inputList == null) {
List<IParameterWrap> params = new ArrayList<IParameterWrap>();
for (Parameter p : getInterface().getInputParameters()) {
params.add(new ParameterWrap(p, this.resource));
}
inputList = (IParameterWrap[]) params.toArray(new IParameterWrap[params.size()]);
}
return inputList;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.script.api.biz.IBizServiceWrap#getOutputParameters()
*/
@Override
public IParameterWrap[] getOutputParameters() {
if (outputList == null) {
List<IParameterWrap> params = new ArrayList<IParameterWrap>();
for (Parameter p : getInterface().getOutputParameters()) {
params.add(new ParameterWrap(p, this.resource));
}
outputList = (IParameterWrap[]) params.toArray(new IParameterWrap[params.size()]);
}
return outputList;
}
@Override
public void deleteInputParameter(String id){
for (int i = 0; i < getInterface().getInputParameters().size(); i++) {
Parameter p = getInterface().getInputParameters().get(i);
if (StringUtils.equals(p.getId(), id)) {
getInterface().getInputParameters().remove(p);
return;
}
}
}
@Override
public void deleteOutputParameter(String id){
for (int i = 0; i < getInterface().getOutputParameters().size(); i++) {
Parameter p = getInterface().getOutputParameters().get(i);
if (StringUtils.equals(p.getId(), id)) {
getInterface().getOutputParameters().remove(p);
return;
}
}
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.script.api.biz.IBizServiceWrap#isInputCollection()
*/
@Override
public boolean isInputCollection() {
return getInterface().isInputCollection();
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.script.api.biz.IBizServiceWrap#isOutputCollection()
*/
@Override
public boolean isOutputCollection() {
return getInterface().isOutputCollection();
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.script.api.biz.IBizServiceWrap#getId()
*/
@Override
public String getId() {
return getOriginalInfo().getObjectId();
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.script.api.biz.IBizServiceWrap#getCName()
*/
@Override
public String getChineseName() {
return getOriginalInfo().getChineseName();
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.script.api.biz.IBizServiceWrap#getInterfaceFlag()
*/
@Override
public String getInterfaceFlag() {
return getInterface().getInterfaceFlag();
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.script.api.biz.IBizServiceWrap#getDescription()
*/
@Override
public String getDescription() {
return getOriginalInfo().getDescription();
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.script.api.biz.IBizServiceWrap#getVersion()
*/
@Override
public String getVersion() {
return RevisionHistoryUtil.getMaxVersion(getOriginalInfo().getHistories());
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.script.api.biz.IBizServiceWrap#getUpdateDate()
*/
@Override
public String getUpdateDate() {
return RevisionHistoryUtil.getLatestUpdateDate(getOriginalInfo().getHistories());
}
}