/**
* Դ�������ƣ�ModifyColumnTypeCommand.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�ARES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.biz.stock.ui
* ����˵����$desc
* ����ĵ���
* ���ߣ�sundl
*/
package com.hundsun.ares.studio.jres.clearinghouse.command;
import java.util.List;
import com.hundsun.ares.studio.core.model.CoreFactory;
import com.hundsun.ares.studio.core.model.RevisionHistory;
import com.hundsun.ares.studio.jres.model.chouse.CTCTMDetail;
import com.hundsun.ares.studio.jres.model.chouse.ChangeTableColumnTypeModification;
import com.hundsun.ares.studio.jres.model.chouse.ChouseFactory;
import com.hundsun.ares.studio.jres.model.chouse.IStock3Constant;
import com.hundsun.ares.studio.jres.model.chouse.RevisionHistoryProperty;
import com.hundsun.ares.studio.jres.model.chouse.util.StockUtils;
import com.hundsun.ares.studio.jres.model.database.ColumnType;
import com.hundsun.ares.studio.jres.model.database.TableColumn;
import com.hundsun.ares.studio.jres.model.database.TableResourceData;
/**
* @author sundl
*
*/
public class ModifyColumnTypeCommand extends ColumnChangeCommand<CTCTMDetail> {
public ModifyColumnTypeCommand(TableResourceData tableData, List<CTCTMDetail> changes) {
super(tableData, changes);
}
/* (non-Javadoc)
* @see org.eclipse.emf.transaction.RecordingCommand#doExecute()
*/
@Override
protected void doExecute() {
for (CTCTMDetail change : changes) {
TableColumn c = findColumn(change, tableData);
// �DZ��ֶβ�����ֱ�����ֶ�����
if (c.getColumnType() == ColumnType.NON_STD_FIELD)
c.setDataType(change.getNewType());
changedColumns.add(c);
}
RevisionHistory rh = CoreFactory.eINSTANCE.createRevisionHistory();
RevisionHistoryProperty p = ChouseFactory.eINSTANCE.createRevisionHistoryProperty();
ChangeTableColumnTypeModification action = ChouseFactory.eINSTANCE.createChangeTableColumnTypeModification();
action.getDetails().addAll(changes);
p.setAction(action);
rh.setModified(StockUtils.getModificationDescription(tableData, action));
rh.getData2().put(IStock3Constant.HISTORY_DATA2_KEY, p);
// 2012-05-18 sundl �ļ�¼�Զ���ӵ���һ����¼
tableData.getHistories().add(0, rh);
}
}