/**
* Դ�������ƣ�MetadataResValidator.java
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
* ģ�����ƣ�com.hundsun.ares.studio.jres.metadata.core
* ����˵����Ԫ����ģ�Ͷ��塢���������
* ����ĵ���
* ���ߣ�
*/
package com.hundsun.ares.studio.jres.metadata.resources.validator;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.eclipse.emf.common.util.BasicDiagnostic;
import org.eclipse.emf.ecore.util.Diagnostician;
import org.eclipse.ui.ide.IDE;
import com.hundsun.ares.studio.core.ARESModelException;
import com.hundsun.ares.studio.core.IARESProblem;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.core.validate.IAresContext;
import com.hundsun.ares.studio.core.validate.IResValidator;
import com.hundsun.ares.studio.jres.model.metadata.MetadataResourceData;
import com.hundsun.ares.studio.validate.ValidateUtil;
public class MetadataResValidator implements IResValidator {
@Override
public Collection<IARESProblem> validate(IARESResource resource, Map<String, IAresContext> contexts) {
BasicDiagnostic basicDiagnostic = new BasicDiagnostic();
Map<Object, Object> context = ValidateUtil.getValidateContext(resource);
try {
String editorID = IDE.getEditorDescriptor(resource.getElementName()).getId();
Diagnostician.INSTANCE.validate(resource.getInfo(MetadataResourceData.class), basicDiagnostic, context);
Collection<IARESProblem> problems = ValidateUtil.diagnosticChainToARESProblem(basicDiagnostic);
if(!StringUtils.isEmpty(editorID)){
for(IARESProblem problem:problems){
problem.setAttribute(IDE.EDITOR_ID_ATTR, editorID);
}
}
return problems;
} catch (ARESModelException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return Collections.EMPTY_LIST;
}
}