/**
* Դ�������ƣ�EMFAllValidateUnit.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.ui
* ����˵����JRES Studio�Ľ���չ�ֻ�����ܺͱ༭��ع���
* ����ĵ���
* ���ߣ�
*/
package com.hundsun.ares.studio.ui.editor.validate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.eclipse.emf.common.util.BasicDiagnostic;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.Diagnostician;
import com.hundsun.ares.studio.ui.editor.ARESEditorPlugin;
import com.hundsun.ares.studio.ui.validate.IProblemPool;
import com.hundsun.ares.studio.ui.validate.IValidateUnit;
/**
* @author gongyf
*
*/
public class EMFAllValidateUnit implements IValidateUnit {
List<EObject> objects;
/**
* @param objects
*/
public EMFAllValidateUnit(EObject object) {
this(Arrays.asList(object));
}
/**
* @param objects
*/
public EMFAllValidateUnit(Collection<EObject> objects) {
super();
this.objects = new ArrayList<EObject>(objects);
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.ui.validate.IValidateUnit#updateProblemPool(com.hundsun.ares.studio.jres.ui.validate.IProblemPool, java.util.Map)
*/
@Override
public void updateProblemPool(IProblemPool pool, Map<Object, Object> context)
throws Exception {
BasicDiagnostic basicDiagnostic =
new BasicDiagnostic
(Diagnostic.ERROR,
ARESEditorPlugin.PLUGIN_ID,
0,
"�������",
new Object [] { objects });
// �����������
for (EObject content : objects) {
Diagnostician.INSTANCE.validate(content, basicDiagnostic, context);
}
pool.beginChange();
pool.clear();
// ��������ռ�
for (Diagnostic child : basicDiagnostic.getChildren()) {
pool.addProblem(child);
}
pool.endChange();
}
}