/**
*
*/
package com.google.gwt.chrome.crx.linker.emiter;
import com.google.gwt.chrome.crx.client.ContentScript;
import com.google.gwt.chrome.crx.linker.artifact.ContentScriptArtifact;
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;
/**
* {@link ContentScriptEmiter} is responsible for creation of content script and
* including it into manifest.json file.
*
* @author webdizz
*
*/
public class ContentScriptEmiter extends AbstractEmiter {
/*
* (non-Javadoc)
*
* @see
* com.google.gwt.chrome.crx.linker.emiter.Emiter#emit(com.google.gwt.core
* .ext.TreeLogger, com.google.gwt.core.ext.GeneratorContext,
* com.google.gwt.core.ext.typeinfo.JClassType, java.lang.String)
*/
@Override
public String emit(TreeLogger logger, GeneratorContext context, JClassType userType, String typeName)
throws UnableToCompleteException {
ContentScript.ManifestInfo spec = userType.getAnnotation(ContentScript.ManifestInfo.class);
Validator<ContentScript.ManifestInfo> validator;
validator = new Validator<ContentScript.ManifestInfo>(logger, ContentScript.class.getName(), typeName);
validator.ensureAnnotatedWithManifest(spec);
context.commitArtifact(logger, new ContentScriptArtifact(spec.path(), spec.whiteList(), spec.runAt()));
// should return null as we do not need to something other
return null;
}
}