/**
* <p>Copyright: Copyright (c) 2012</p>
* <p>Company: �������ӹɷ�����˾</p>
*/
package com.hundsun.ares.studio.jres.basicdata.ui.util;
import org.apache.commons.lang.StringUtils;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.ltk.core.refactoring.Change;
import org.eclipse.ltk.core.refactoring.resource.ResourceChange;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.core.model.Reference;
import com.hundsun.ares.studio.jres.basicdata.constant.IBasicDataEpacakgeConstant;
import com.hundsun.ares.studio.jres.basicdata.core.basicdata.EpacakgeDefineList;
/**
* @author lvgao
*
*/
public class EPackageDefineTableChange extends ResourceChange{
IARESResource resource;
String oldName;
String newName;
public EPackageDefineTableChange(IARESResource resource,String oldName, String newName){
this.resource = resource;
this.oldName = oldName;
this.newName = newName;
}
/* (non-Javadoc)
* @see org.eclipse.ltk.core.refactoring.Change#getName()
*/
@Override
public String getName() {
return "�����������ݿ�������ع�";
}
/* (non-Javadoc)
* @see org.eclipse.ltk.core.refactoring.resource.ResourceChange#getModifiedResource()
*/
@Override
protected IResource getModifiedResource() {
return resource.getResource();
}
/* (non-Javadoc)
* @see org.eclipse.ltk.core.refactoring.Change#perform(org.eclipse.core.runtime.IProgressMonitor)
*/
@Override
public Change perform(IProgressMonitor pm) throws CoreException {
try {
EpacakgeDefineList defineList= resource.getInfo(EpacakgeDefineList.class);
for(Reference refer:defineList.getReferences()){
if(StringUtils.equals(refer.getValue(), oldName) && StringUtils.equals(refer.getType(), IBasicDataEpacakgeConstant.MODLE_TYPE_DATABASE)){
refer.setValue(newName);
}
}
resource.save(defineList, true, new NullProgressMonitor());
} catch (Exception e) {
}
return new EPackageDefineTableChange(resource, newName, oldName);
}
}