List of usage examples for com.google.gwt.core.ext.typeinfo TypeOracle getType
public abstract JClassType getType(String name) throws NotFoundException;
From source file:com.ait.ext4j.rebind.TemplateGenerator.java
License:Apache License
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle oracle = context.getTypeOracle(); this.templatesInterface = oracle.findType(Name.getSourceNameForClass(Template.class)); JClassType interfaceType;// w w w . ja va 2s. c o m try { interfaceType = oracle.getType(typeName); } catch (NotFoundException e) { throw new RuntimeException(e); } if (interfaceType.isInterface() == null) { logger.log(TreeLogger.ERROR, typeName + " is not an interface type"); throw new UnableToCompleteException(); } if (!interfaceType.isAssignableTo(templatesInterface)) { logger.log(Type.ERROR, "This isn't a Template subtype..."); throw new UnableToCompleteException(); } String content = getTemplateContent(context, logger, interfaceType); String packageName = interfaceType.getPackage().getName(); String className = "Template_For_" + interfaceType.getQualifiedSourceName().replace(".", "_"); ClassSourceFileComposerFactory composer = new ClassSourceFileComposerFactory(packageName, className); composer.addImport(SafeHtml.class.getName()); composer.addImport(SafeHtmlUtils.class.getName()); composer.addImplementedInterface(Template.class.getName()); PrintWriter pw = context.tryCreate(logger, packageName, className); SourceWriter sw = composer.createSourceWriter(context, pw); sw.println(" public SafeHtml getContent(){"); sw.println(" return SafeHtmlUtils.fromSafeConstant(\"" + content + "\");"); sw.println(" }"); sw.println(""); sw.println(""); sw.println(" public SafeHtml getSafeContent(){"); sw.println(" return SafeHtmlUtils.fromString(\"" + content + "\");"); sw.println(" }"); sw.commit(logger); return composer.getCreatedClassName(); }
From source file:com.ait.toolkit.rebind.TemplateGenerator.java
License:Open Source License
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle oracle = context.getTypeOracle(); this.templatesInterface = oracle.findType(Name.getSourceNameForClass(Template.class)); JClassType interfaceType;//from ww w . j a va 2 s .co m try { interfaceType = oracle.getType(typeName); } catch (NotFoundException e) { throw new RuntimeException(e); } if (interfaceType.isInterface() == null) { logger.log(TreeLogger.ERROR, typeName + " is not an interface type"); throw new UnableToCompleteException(); } if (!interfaceType.isAssignableTo(templatesInterface)) { logger.log(Type.ERROR, "This isn't a Template subtype..."); throw new UnableToCompleteException(); } String content = getTemplateContent(context, logger, interfaceType); String packageName = interfaceType.getPackage().getName(); String className = "Tpl_For_" + interfaceType.getQualifiedSourceName().replace(".", "_") + "_Generated"; ClassSourceFileComposerFactory composer = new ClassSourceFileComposerFactory(packageName, className); composer.addImport(SafeHtml.class.getName()); composer.addImport(SafeHtmlUtils.class.getName()); composer.addImplementedInterface(Template.class.getName()); PrintWriter pw = context.tryCreate(logger, packageName, className); if (pw != null) { SourceWriter sw = composer.createSourceWriter(context, pw); sw.println(" public SafeHtml getContent(){"); sw.println(" return SafeHtmlUtils.fromSafeConstant(\"" + content + "\");"); sw.println(" }"); sw.println(""); sw.println(""); sw.println(" public SafeHtml getSafeContent(){"); sw.println(" return SafeHtmlUtils.fromString(\"" + content + "\");"); sw.println(" }"); sw.commit(logger); } return composer.getCreatedClassName(); }
From source file:com.allen_sauer.gwt.log.rebind.LogMessageFormatterGenerator.java
License:Apache License
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle typeOracle = context.getTypeOracle(); JClassType userType;//from w ww. j a v a 2 s . c om try { userType = typeOracle.getType(typeName); } catch (NotFoundException e) { logger.log(TreeLogger.ERROR, "OOPS", e); throw new UnableToCompleteException(); } String packageName = userType.getPackage().getName(); String className = userType.getName(); JClassType remoteService = typeOracle.findType(typeName); if (remoteService == null) { logger.log(TreeLogger.ERROR, "Unable to find metadata for type '" + typeName + "'", null); throw new UnableToCompleteException(); } if (remoteService.isInterface() == null) { logger.log(TreeLogger.ERROR, remoteService.getQualifiedSourceName() + " is not an interface", null); throw new UnableToCompleteException(); } ClassSourceFileComposerFactory composerFactory = new ClassSourceFileComposerFactory(packageName, className + "Impl"); composerFactory.addImplementedInterface(remoteService.getQualifiedSourceName()); composerFactory.addImport(Date.class.getName()); composerFactory.addImport(GWT.class.getName()); composerFactory.addImport(LogUtil.class.getName()); composerFactory.addImport(Duration.class.getName()); PrintWriter pw = context.tryCreate(logger, packageName, className + "Impl"); if (pw != null) { SourceWriter sw = composerFactory.createSourceWriter(context, pw); PropertyOracle propertyOracle = context.getPropertyOracle(); String logPattern; try { ConfigurationProperty logPatternProperty = propertyOracle .getConfigurationProperty(PROPERTY_LOG_PATTERN); List<String> values = logPatternProperty.getValues(); logPattern = values.get(0); } catch (BadPropertyValueException e) { logger.log(TreeLogger.ERROR, "Unable to find value for '" + PROPERTY_LOG_PATTERN + "'", e); throw new UnableToCompleteException(); } sw.println(); sw.println("private double BIG_BANG = Duration.currentTimeMillis();"); sw.println(); sw.println( "public String format(String logLevelText, String category, String message, Throwable throwable) {"); sw.indent(); sw.println("if (category == null) {"); sw.indent(); sw.println("category = \"<null category>\";"); sw.outdent(); sw.println("}"); sw.println("if (message == null) {"); sw.indent(); sw.println("message = \"<null message>\";"); sw.outdent(); sw.println("}"); sw.println(logPatternToCode(logPattern)); sw.outdent(); sw.println("}"); sw.commit(logger); } return composerFactory.getCreatedClassName(); }
From source file:com.allen_sauer.gwt.log.rebind.RemoteLoggerConfigGenerator.java
License:Apache License
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle typeOracle = context.getTypeOracle(); JClassType userType;/* w w w. j a va 2s .com*/ try { userType = typeOracle.getType(typeName); } catch (NotFoundException e) { logger.log(TreeLogger.ERROR, "OOPS", e); throw new UnableToCompleteException(); } String packageName = userType.getPackage().getName(); String className = userType.getName(); JClassType remoteService = typeOracle.findType(typeName); if (remoteService == null) { logger.log(TreeLogger.ERROR, "Unable to find metadata for type '" + typeName + "'", null); throw new UnableToCompleteException(); } if (remoteService.isInterface() == null) { logger.log(TreeLogger.ERROR, remoteService.getQualifiedSourceName() + " is not an interface", null); throw new UnableToCompleteException(); } ClassSourceFileComposerFactory composerFactory = new ClassSourceFileComposerFactory(packageName, className + "Impl"); composerFactory.addImplementedInterface(remoteService.getQualifiedSourceName()); PrintWriter pw = context.tryCreate(logger, packageName, className + "Impl"); if (pw != null) { SourceWriter sw = composerFactory.createSourceWriter(context, pw); PropertyOracle propertyOracle = context.getPropertyOracle(); String logUrl; try { ConfigurationProperty logPatternProperty = propertyOracle .getConfigurationProperty(PROPERTY_LOG_URL); List<String> values = logPatternProperty.getValues(); logUrl = values.get(0); } catch (BadPropertyValueException e) { logger.log(TreeLogger.ERROR, "Unable to find value for '" + PROPERTY_LOG_URL + "'", e); throw new UnableToCompleteException(); } sw.println(); sw.println("public String serviceEntryPointUrl() {"); sw.indent(); if (logUrl == null) { sw.println("return null;"); } else { sw.println("return \"" + logUrl.trim() + "\";"); } sw.outdent(); sw.println("}"); sw.commit(logger); } return composerFactory.getCreatedClassName(); }
From source file:com.allen_sauer.gwt.voices.crowd.rebind.GwtUserAgentProviderGenerator.java
License:Apache License
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle typeOracle = context.getTypeOracle(); JClassType userType;// ww w . j a va 2 s .c o m try { userType = typeOracle.getType(typeName); } catch (NotFoundException e) { logger.log(TreeLogger.ERROR, "OOPS", e); throw new UnableToCompleteException(); } String packageName = userType.getPackage().getName(); String className = userType.getName(); JClassType remoteService = typeOracle.findType(typeName); if (remoteService == null) { logger.log(TreeLogger.ERROR, "Unable to find metadata for type '" + typeName + "'", null); throw new UnableToCompleteException(); } if (remoteService.isInterface() == null) { logger.log(TreeLogger.ERROR, remoteService.getQualifiedSourceName() + " is not an interface", null); throw new UnableToCompleteException(); } ClassSourceFileComposerFactory composerFactory = new ClassSourceFileComposerFactory(packageName, className + "Impl"); composerFactory.addImplementedInterface(remoteService.getQualifiedSourceName()); PrintWriter pw = context.tryCreate(logger, packageName, className + "Impl"); if (pw != null) { SourceWriter sw = composerFactory.createSourceWriter(context, pw); PropertyOracle propertyOracle = context.getPropertyOracle(); String userAgent; try { SelectionProperty userAgentProperty = propertyOracle.getSelectionProperty(logger, PROPERTY_USER_AGENT); // ALWAYS RETURNS 'gecko' userAgent = userAgentProperty.getCurrentValue(); } catch (BadPropertyValueException e) { logger.log(TreeLogger.ERROR, "Unable to find value for '" + PROPERTY_USER_AGENT + "'", e); throw new UnableToCompleteException(); } sw.println(); sw.println("public String getGwtUserAgent() {"); sw.indent(); if (userAgent == null) { sw.println("return null;"); } else { sw.println("return \"" + userAgent + "\";"); } sw.outdent(); sw.println("}\n"); sw.commit(logger); } return composerFactory.getCreatedClassName(); }
From source file:com.bramosystems.oss.player.core.rebind.PlayerManagerGenerator.java
License:Apache License
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { this.logger = logger; TypeOracle typeOracle = context.getTypeOracle(); try {/*from w w w .j a v a 2s. c o m*/ // get classType and save instance variables JClassType classType = typeOracle.getType(typeName); packageName = classType.getPackage().getName(); className = classType.getSimpleSourceName() + "Impl"; // Generate class source code generateClass(logger, context); } catch (Exception e) { logger.log(TreeLogger.ERROR, "Unable to build Player Widgets!", e); } // return the fully qualifed name of the class generated return packageName + "." + className; }
From source file:com.chrome.gwt.linker.ComponentGenerator.java
License:Apache License
private static String emitComponent(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { final TypeOracle typeOracle = context.getTypeOracle(); final JClassType toolStripType = typeOracle.findType(TOOLSTRIP_USER_TYPE); assert toolStripType != null; final JClassType pageType = typeOracle.findType(PAGE_USER_TYPE); assert pageType != null; final JClassType pageActionType = typeOracle.findType(PAGEACTION_USER_TYPE); assert pageActionType != null; final JClassType browserActionType = typeOracle.findType(BROWSERACTION_USER_TYPE); assert browserActionType != null; final JClassType contentScriptType = typeOracle.findType(CONTENTSCRIPT_USER_TYPE); assert contentScriptType != null; final JClassType pluginType = typeOracle.findType(PLUGIN_USER_TYPE); assert pluginType != null; try {/* ww w .jav a2 s .com*/ final JClassType classType = typeOracle.getType(typeName); if (classType.isAssignableTo(toolStripType)) { return processToolStrip(logger, context, classType); } else if (classType.isAssignableTo(pageType)) { return processPage(logger, context, classType); } else if (classType.isAssignableTo(contentScriptType)) { processContentScript(logger, context, classType, typeName); return typeName; } else if (classType.isAssignableTo(pluginType)) { processPlugin(logger, context, classType, typeName); return typeName; } else if (classType.isAssignableTo(pageActionType)) { return processPageAction(logger, context, classType, typeName); } else if (classType.isAssignableTo(browserActionType)) { return processBrowserAction(logger, context, classType, typeName); } // TODO(knorton): Better error message. logger.log(TreeLogger.ERROR, "I can't generate one of those (" + typeName + ")"); throw new UnableToCompleteException(); } catch (NotFoundException e) { // TODO(knorton): Better error message. logger.log(TreeLogger.ERROR, "Unknown Type: " + typeName); throw new UnableToCompleteException(); } }
From source file:com.eleven.rebind.SkinBundleGenerator.java
License:Apache License
private JClassType getValidUserType(final TreeLogger logger, final String typeName, final TypeOracle typeOracle) throws UnableToCompleteException { try {/*from w w w . ja v a 2 s .c o m*/ // Get the type that the user is introducing. JClassType userType = typeOracle.getType(typeName); // Get the type this generator is designed to support. JClassType magicType = typeOracle.findType(IMAGEBUNDLE_QNAME); // Ensure it's an interface. if (userType.isInterface() == null) { logger.log(TreeLogger.ERROR, userType.getQualifiedSourceName() + " must be an interface", null); throw new UnableToCompleteException(); } // Ensure proper derivation. if (!userType.isAssignableTo(magicType)) { logger.log(TreeLogger.ERROR, userType.getQualifiedSourceName() + " must be assignable to " + magicType.getQualifiedSourceName(), null); throw new UnableToCompleteException(); } return userType; } catch (NotFoundException e) { logger.log(TreeLogger.ERROR, "Unable to find required type(s)", e); throw new UnableToCompleteException(); } }
From source file:com.google.speedtracer.generators.BuildInfoGenerator.java
License:Apache License
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { if (!typeName.equals(BUILD_INFO_QN)) { logger.log(TreeLogger.ERROR, "The type passed to GWT.create() must be " + BUILD_INFO_QN); throw new UnableToCompleteException(); }/* w ww.ja va2s. com*/ final TypeOracle typeOracle = context.getTypeOracle(); JClassType typeClass; try { typeClass = typeOracle.getType(typeName); } catch (NotFoundException e) { logger.log(TreeLogger.ERROR, "Unable to find type: " + typeName); throw new UnableToCompleteException(); } JMethod revisionMethod; try { revisionMethod = typeClass.getMethod("getBuildRevision", new JType[0]); } catch (NotFoundException e) { logger.log(TreeLogger.ERROR, typeName + " does not have a method: int " + REVISION_METHOD_NAME + "()"); throw new UnableToCompleteException(); } JMethod timeMethod; try { timeMethod = typeClass.getMethod(TIME_METHOD_NAME, new JType[0]); } catch (NotFoundException e) { logger.log(TreeLogger.ERROR, typeName + " does not have a method: int " + TIME_METHOD_NAME + "()"); throw new UnableToCompleteException(); } return emitImplClass(logger, context, typeClass, revisionMethod, timeMethod); }
From source file:com.googlecode.gwtx.rebind.PropertyDescriptorsGenerator.java
License:Apache License
public String doGenerate(TreeLogger logger, GeneratorContext context, String typeName) throws Exception { TypeOracle typeOracle = context.getTypeOracle(); JClassType type = typeOracle.getType(typeName); String packageName = type.getPackage().getName(); String simpleClassName = type.getSimpleSourceName(); String className = simpleClassName + "Introspector"; String qualifiedBeanClassName = packageName + "." + className; SourceWriter sourceWriter = getSourceWriter(logger, context, packageName, className, type); if (sourceWriter == null) { return qualifiedBeanClassName; }//from ww w . j a v a2 s . c o m write(logger, sourceWriter, type); sourceWriter.commit(logger); return qualifiedBeanClassName; }