List of usage examples for com.google.gwt.core.ext.typeinfo TypeOracle findType
public abstract JClassType findType(String name);
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;/*from ww w .j av a 2 s . 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 w ww. j a v a2 s . com*/ 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 2s. co 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()); 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 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()); 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;//from ww w . j a v a 2 s. 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 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.artemis.gwtref.gen.ReflectionCacheGenerator.java
License:Apache License
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle oracle = context.getTypeOracle(); assert (oracle != null); JClassType type = oracle.findType(typeName); if (type == null) { logger.log(ERROR, "Couldn't find type '" + typeName + "'"); throw new UnableToCompleteException(); }//from w ww .java 2s.c om if (type.isInterface() == null) { logger.log(ERROR, "Type '" + typeName + "' must be an interface"); throw new UnableToCompleteException(); } ReflectionCacheSourceCreator source = new ReflectionCacheSourceCreator(logger, context, type); return source.create(); }
From source file:com.artemis.gwtref.gen.ReflectionCacheSourceCreator.java
License:Apache License
private void generateLookups() { p("Map<String, Type> types = new HashMap<String, Type>();"); TypeOracle typeOracle = context.getTypeOracle(); JPackage[] packages = typeOracle.getPackages(); // gather all types from wanted packages for (JPackage p : packages) { for (JClassType t : p.getTypes()) { gatherTypes(t.getErasedType(), types); }//from ww w . j a v a 2 s . c o m } gatherTypes(typeOracle.findType("java.util.List").getErasedType(), types); gatherTypes(typeOracle.findType("java.util.ArrayList").getErasedType(), types); gatherTypes(typeOracle.findType("java.util.HashMap").getErasedType(), types); gatherTypes(typeOracle.findType("java.util.Map").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.String").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Boolean").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Byte").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Long").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Character").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Short").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Integer").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Float").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.CharSequence").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Double").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Object").getErasedType(), types); // sort the types so the generated output will be stable between runs Collections.sort(types, new Comparator<JType>() { public int compare(JType o1, JType o2) { return o1.getQualifiedSourceName().compareTo(o2.getQualifiedSourceName()); } }); // generate Type lookup generator methods. int id = 0; for (JType t : types) { String typeGen = createTypeGenerator(t); p("private void c" + (id++) + "() {"); p(typeGen); p("}\n"); } // generate constructor that calls all the type generators // that populate the map. p("public " + simpleName + "() {"); for (int i = 0; i < id; i++) { p("c" + i + "();"); } p("}"); // sort the stubs so the generated output will be stable between runs Collections.sort(setterGetterStubs, new Comparator<SetterGetterStub>() { @Override public int compare(SetterGetterStub o1, SetterGetterStub o2) { return new Integer(o1.setter).compareTo(o2.setter); } }); // generate field setters/getters for (SetterGetterStub stub : setterGetterStubs) { String stubSource = generateSetterGetterStub(stub); if (stubSource.equals("")) stub.unused = true; p(stubSource); } // sort the stubs so the generated output will be stable between runs Collections.sort(methodStubs, new Comparator<MethodStub>() { @Override public int compare(MethodStub o1, MethodStub o2) { return new Integer(o1.methodId).compareTo(o2.methodId); } }); // generate methods for (MethodStub stub : methodStubs) { String stubSource = generateMethodStub(stub); if (stubSource.equals("")) stub.unused = true; p(stubSource); } logger.log(Type.INFO, types.size() + " types reflected"); }
From source file:com.badlogic.gwtref.gen.ReflectionCacheSourceCreator.java
License:Apache License
private void generateLookups() { TypeOracle typeOracle = context.getTypeOracle(); JPackage[] packages = typeOracle.getPackages(); // gather all types from wanted packages for (JPackage p : packages) { for (JClassType t : p.getTypes()) { gatherTypes(t.getErasedType(), types); }/*w w w. j ava 2 s . c o m*/ } // gather all types from explicitly requested packages try { ConfigurationProperty prop = context.getPropertyOracle() .getConfigurationProperty("gdx.reflect.include"); for (String s : prop.getValues()) { JClassType type = typeOracle.findType(s); if (type != null) gatherTypes(type.getErasedType(), types); } } catch (BadPropertyValueException e) { } gatherTypes(typeOracle.findType("java.util.List").getErasedType(), types); gatherTypes(typeOracle.findType("java.util.ArrayList").getErasedType(), types); gatherTypes(typeOracle.findType("java.util.HashMap").getErasedType(), types); gatherTypes(typeOracle.findType("java.util.Map").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.String").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Boolean").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Byte").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Long").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Character").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Short").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Integer").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Float").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.CharSequence").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Double").getErasedType(), types); gatherTypes(typeOracle.findType("java.lang.Object").getErasedType(), types); // sort the types so the generated output will be stable between runs Collections.sort(types, new Comparator<JType>() { public int compare(JType o1, JType o2) { return o1.getQualifiedSourceName().compareTo(o2.getQualifiedSourceName()); } }); // generate Type lookup generator methods. for (JType t : types) { p(createTypeGenerator(t)); } // generate reusable parameter objects parameterInitialization(); // sort the stubs so the generated output will be stable between runs Collections.sort(setterGetterStubs, new Comparator<SetterGetterStub>() { @Override public int compare(SetterGetterStub o1, SetterGetterStub o2) { return new Integer(o1.setter).compareTo(o2.setter); } }); // generate field setters/getters for (SetterGetterStub stub : setterGetterStubs) { String stubSource = generateSetterGetterStub(stub); if (stubSource.equals("")) stub.unused = true; p(stubSource); } // sort the stubs so the generated output will be stable between runs Collections.sort(methodStubs, new Comparator<MethodStub>() { @Override public int compare(MethodStub o1, MethodStub o2) { return new Integer(o1.methodId).compareTo(o2.methodId); } }); // generate methods for (MethodStub stub : methodStubs) { String stubSource = generateMethodStub(stub); if (stubSource.equals("")) stub.unused = true; p(stubSource); } logger.log(Type.INFO, types.size() + " types reflected"); }
From source file:com.cgxlib.xq.rebind.BrowserGenerator.java
License:Apache License
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle oracle = context.getTypeOracle(); PropertyOracle propOracle = context.getPropertyOracle(); String ua = null;/*from w w w.j a v a 2 s.co m*/ try { ua = propOracle.getSelectionProperty(logger, "user.agent").getCurrentValue(); } catch (BadPropertyValueException e) { logger.log(TreeLogger.ERROR, "Can not resolve user.agent property", e); throw new UnableToCompleteException(); } JClassType clz = oracle.findType(typeName); String pName = clz.getPackage().getName(); String cName = clz.getName() + "_" + ua; PrintWriter pWriter = context.tryCreate(logger, pName, cName); if (pWriter != null) { ClassSourceFileComposerFactory cFact = new ClassSourceFileComposerFactory(pName, cName); cFact.setSuperclass(pName + "." + clz.getName()); SourceWriter writer = cFact.createSourceWriter(context, pWriter); writer.println("protected boolean isWebkit() {return " + "safari".equals(ua) + ";}"); writer.println("protected boolean isSafari() {return " + "safari".equals(ua) + ";}"); writer.println("protected boolean isOpera() {return " + "opera".equals(ua) + ";}"); writer.println("protected boolean isMozilla() {return " + ua.contains("gecko") + ";}"); writer.println("protected boolean isMsie() {return " + ua.contains("ie") + ";}"); writer.println("protected boolean isIe6() {return " + "ie6".equals(ua) + ";}"); writer.println("protected boolean isIe8() {return " + "ie8".equals(ua) + ";}"); writer.println("protected boolean isIe9() {return " + "ie9".equals(ua) + ";}"); writer.println("protected boolean isIe10() {return " + "ie10".equals(ua) + ";}"); writer.println("protected boolean isIe11() {return " + "gecko1_8".equals(ua) + ";}"); writer.println("public String toString() {return \"Browser:\"" + " + \" webkit=\" + webkit" + " + \" mozilla=\" + mozilla" + " + \" opera=\" + opera" + " + \" msie=\" + msie" + " + \" ie6=\" + ie6" + " + \" ie8=\" + ie8" + " + \" ie9=\" + ie9" + ";}"); writer.commit(logger); } return pName + "." + cName; }
From source file:com.cgxlib.xq.rebind.JsniBundleGenerator.java
License:Apache License
public String generate(TreeLogger logger, GeneratorContext context, String requestedClass) throws UnableToCompleteException { TypeOracle oracle = context.getTypeOracle(); JClassType clazz = oracle.findType(requestedClass); String packageName = clazz.getPackage().getName(); String className = clazz.getName().replace('.', '_') + "_Impl"; String fullName = packageName + "." + className; PrintWriter pw = context.tryCreate(logger, packageName, className); if (pw != null) { ClassSourceFileComposerFactory fact = new ClassSourceFileComposerFactory(packageName, className); if (clazz.isInterface() != null) { fact.addImplementedInterface(requestedClass); } else {//from w w w . j a v a 2 s . c o m fact.setSuperclass(requestedClass); } SourceWriter sw = fact.createSourceWriter(context, pw); if (sw != null) { for (JMethod method : clazz.getMethods()) { LibrarySource librarySource = method.getAnnotation(LibrarySource.class); String value, prepend, postpend; String replace[]; if (librarySource != null) { value = librarySource.value(); prepend = librarySource.prepend(); postpend = librarySource.postpend(); replace = librarySource.replace(); } else { MethodSource methodSource = method.getAnnotation(MethodSource.class); if (methodSource != null) { value = methodSource.value(); prepend = methodSource.prepend(); postpend = methodSource.postpend(); replace = methodSource.replace(); } else { continue; } } try { // Read the javascript content String content = getContent(logger, packageName.replace(".", "/"), value); // Adjust javascript so as we can introduce it in a JSNI comment block without // breaking java syntax. String jsni = parseJavascriptSource(content); for (int i = 0; i < replace.length - 1; i += 2) { jsni = jsni.replaceAll(replace[i], replace[i + 1]); } pw.println(method.toString().replace("abstract", "native") + "/*-{"); pw.println(prepend); pw.println(jsni); pw.println(postpend); pw.println("}-*/;"); } catch (Exception e) { logger.log(TreeLogger.ERROR, "Error parsing javascript source: " + value + " " + e.getMessage()); throw new UnableToCompleteException(); } } } sw.commit(logger); } return fullName; }