/** * Դ�������ƣ�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; } }