/** * Դ�������ƣ�ChangeColumnTypeCommand.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�ARES Studio * ģ�����ƣ�com.hundsun.ares.studio.jres.biz.stock.ui * ����˵����$desc * ����ĵ��� * ���ߣ�sundl */ package com.hundsun.ares.studio.jres.clearinghouse.command; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; import org.eclipse.emf.transaction.RecordingCommand; import org.eclipse.emf.transaction.TransactionalEditingDomain; import com.hundsun.ares.studio.jres.model.chouse.ColumnChangeDetail; import com.hundsun.ares.studio.jres.model.database.TableColumn; import com.hundsun.ares.studio.jres.model.database.TableResourceData; /** * @author sundl * */ public abstract class ColumnChangeCommand<T extends ColumnChangeDetail> extends RecordingCommand{ protected List<TableColumn> changedColumns = new ArrayList<TableColumn>(); protected TableResourceData tableData; protected List<T> changes; public ColumnChangeCommand(TableResourceData tableData, List<T> changes) { super((TransactionalEditingDomain) AdapterFactoryEditingDomain.getEditingDomainFor(tableData)); this.tableData = tableData; this.changes = changes; } @Override public Collection<?> getAffectedObjects() { return changedColumns; } /** * �ڱ�ģ���в���change��Ӧ���� * @return */ protected static TableColumn findColumn(ColumnChangeDetail change, TableResourceData tableData) { for (TableColumn c : tableData.getColumns()) { if (EcoreUtil.equals(c, change.getSnapshot())) return c; } // ��Ӧ�÷�������� return null; } }