/**
*
*/
package com.google.gwt.chrome.crx.linker.emiter;
import com.google.gwt.chrome.crx.client.BrowserAction;
import com.google.gwt.chrome.crx.client.Plugin;
import com.google.gwt.chrome.crx.linker.artifact.PluginArtifact;
import com.google.gwt.core.ext.GeneratorContext;
import com.google.gwt.core.ext.TreeLogger;
import com.google.gwt.core.ext.UnableToCompleteException;
import com.google.gwt.core.ext.typeinfo.JClassType;
/**
* @author zinur
*
*/
public class PluginEmiter extends AbstractEmiter {
@Override
public String emit(TreeLogger logger, GeneratorContext context, JClassType userType, String typeName)
throws UnableToCompleteException {
Plugin.ManifestInfo spec = userType.getAnnotation(Plugin.ManifestInfo.class);
Validator<Plugin.ManifestInfo> validator;
validator = new Validator<Plugin.ManifestInfo>(logger, BrowserAction.class.getName(), typeName);
validator.ensureAnnotatedWithManifest(spec);
context.commitArtifact(logger, new PluginArtifact(spec.path(), spec.isPublic()));
return null;
}
}