Example usage for com.google.gwt.core.ext.typeinfo TypeOracle getType

List of usage examples for com.google.gwt.core.ext.typeinfo TypeOracle getType

Introduction

In this page you can find the example usage for com.google.gwt.core.ext.typeinfo TypeOracle getType.

Prototype

public abstract JClassType getType(String name) throws NotFoundException;

Source Link

Document

Finds a type given its fully qualified name.

Usage

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;
}