package com.hundsun.ares.studio.jres.obj.ui.refactor;
import org.apache.commons.lang.StringUtils;
import org.eclipse.ltk.core.refactoring.Change;
import com.hundsun.ares.studio.biz.ARESObject;
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.ui.refactoring.AresResourceChange;
/**
* ������������Ķ������͵����Ը����õ�Change.
* @author sundl
*
*/
public class ObjectPropertyObjNameChange extends AresResourceChange {
private String oldObjName;
private String newObjName;
public ObjectPropertyObjNameChange(IARESResource element, String oldName, String newName) {
super(element);
}
@Override
protected Class<?> getInfoClassType() {
return ARESObject.class;
}
@Override
protected Change createUndoChange() {
return new ObjectPropertyObjNameChange(resource, newObjName, oldObjName);
}
@Override
protected void modifyInfo(Object info) {
ARESObject obj = (ARESObject) info;
for (Parameter p : obj.getProperties()) {
if (p.getParamType() == ParamType.OBJECT && StringUtils.equals(p.getType(), oldObjName)) {
p.setType(newObjName);
}
}
}
}