package com.hundsun.ares.studio.jres.service.ui.refactor; import org.apache.commons.lang.StringUtils; import org.eclipse.ltk.core.refactoring.Change; import com.hundsun.ares.studio.biz.ParamType; import com.hundsun.ares.studio.biz.Parameter; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.jres.service.Service; import com.hundsun.ares.studio.ui.refactoring.AresResourceChange; /** * ����ӿ��ж������͵IJ������ı����ȫ����Change���� * @author sundl * */ public class ServiceParameterObjectChange extends AresResourceChange{ private String oldObjName; private String newObjName; public ServiceParameterObjectChange(IARESResource resource, String oldObjName, String newObjName) { super(resource); this.oldObjName = oldObjName; this.newObjName = newObjName; } @Override protected Class<?> getInfoClassType() { return Service.class; } @Override protected Change createUndoChange() { return new ServiceParameterObjectChange(resource, newObjName, oldObjName); } @Override protected void modifyInfo(Object info) { Service service = (Service) info; for(Parameter p : service.getInterface().getInputParameters()) { if (p.getParamType() == ParamType.OBJECT && StringUtils.equals(p.getType(), oldObjName)) { p.setType(newObjName); } } for(Parameter p : service.getInterface().getOutputParameters()) { if (p.getParamType() == ParamType.OBJECT && StringUtils.equals(p.getType(), oldObjName)) { p.setType(newObjName); } } } }