package com.hundsun.ares.studio.jres.model.metadata.util; import java.io.IOException; import java.util.Map; import javax.script.ScriptException; import org.apache.commons.lang.StringUtils; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Path; import com.hundsun.ares.studio.core.ARESCore; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.core.model.JRESResourceInfo; import com.hundsun.ares.studio.jres.model.metadata.Operation; import com.hundsun.ares.studio.jres.script.engin.ScriptUtils; public class MetadataScriptUtil { public static IARESResource getJSResource(String path) throws Exception { if(StringUtils.isBlank(path)){ throw new Exception("�ű�·��Ϊ�գ�"); } IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); IFile file = root.getFile(new Path(path)); return (IARESResource) ARESCore.create(file); } /** * ִ��һ��Metadata�е��û����� * @param operation �û������������ * @param mode �ű���ִ��ģʽ���ο�ScriptUtils�еij������� * @param res * @param info * @param loader * @param extContext �����context���� * @throws NoSuchMethodException * @throws ScriptException * @throws CoreException * @throws IOException */ public static void runMetadataOperation(Operation operation, int mode, IARESResource res, JRESResourceInfo info, ClassLoader loader, Map<String, Object> extContext) throws IOException, CoreException, ScriptException, NoSuchMethodException,Exception { IARESResource jsResource = getJSResource(operation.getFile()); ScriptUtils.excuteJS(mode, jsResource, res, info, loader, extContext); } }