@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(); } 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(); } }
private JClassType getSplitLayoutPanelType(UiBinderWriter writer) { try { return writer.getOracle().getType(SplitLayoutPanel.class.getName()); } catch (NotFoundException e) { throw new RuntimeException("Unexpected exception", e); } }
private void generateLookups () { TypeOracle typeOracle = context.getTypeOracle(); JPackage[] packages = typeOracle.getPackages(); for (JClassType t : p.getTypes()) { gatherTypes(t.getErasedType(), types); 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); 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); logger.log(Type.INFO, types.size() + " types reflected");
@Override public String generate(final TreeLogger logger, final GeneratorContext context, final String typeName) throws UnableToCompleteException { try { final JClassType classType = context.getTypeOracle().getType(typeName); final String packageName = classType.getPackage().getName(); final String className = classType.getSimpleSourceName() + "Impl"; // Generate class source code generateQualifierEqualityFactory(packageName, className, logger, context); // return the fully qualified name of the class generated return packageName + "." + className; } catch (Throwable e) { log.error("Error generating QualifierEqualityFactory", e); throw new UnableToCompleteException(); } }
@Override public String generate(TreeLogger logger, GeneratorContext ctx, String typeName) throws UnableToCompleteException { TypeOracle typeOracle = ctx.getTypeOracle(); assert typeOracle != null; JClassType intfType = typeOracle.findType(typeName); if (intfType == null) { logger.log(TreeLogger.ERROR, "Unable to find metadata for type '" + typeName + "'", null); throw new UnableToCompleteException(); if (intfType.isInterface() == null) { logger.log(TreeLogger.ERROR, intfType.getQualifiedSourceName() + " is not an interface", null); throw new UnableToCompleteException(); TreeLogger typeLogger = logger.branch(TreeLogger.ALL, "Generating Json SerDes powered by Gwt Jackson...", null); final SourceWriter sourceWriter = getSourceWriter(typeLogger, ctx, intfType); for (JClassType type : typeOracle.getTypes()) { Json annotation = type.getAnnotation(Json.class); if (annotation != null) { serdes.add(generateSerdes(sourceWriter, type, annotation));
private JClassType getClassType(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { try { // get the type we are looking for return context.getTypeOracle().getType(typeName); } catch (NotFoundException e) { // if we can`t get it die logger.log(TreeLogger.ERROR, "can not find type: '" + typeName + "'", e); throw new UnableToCompleteException(); } }
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle typeOracle = context.getTypeOracle(); JClassType componentExtensionManager = typeOracle.findType(typeName); if (componentExtensionManager == null) { logger.log(TreeLogger.ERROR, "Unable to find metadata for type '" + typeName + "'", null); throw new UnableToCompleteException(); if (componentExtensionManager.isInterface() == null) { logger.log(TreeLogger.ERROR, componentExtensionManager.getQualifiedSourceName() + " is not an interface", null); throw new UnableToCompleteException(); JClassType componentProvider = typeOracle.findType(ComponentProvider.class.getCanonicalName()); if (componentProvider == null) { logger.log(TreeLogger.ERROR, "Unable to find metadata for type 'ComponentProvider'", null); throw new UnableToCompleteException(); for (JClassType type : typeOracle.getTypes()) { if (type.isAnnotationPresent(ComponentExtension.class)) { if (type.isClass() == null || type.isAbstract()) { String packageName = componentExtensionManager.getPackage().getName(); String className = componentExtensionManager.getSimpleSourceName() + "Impl";
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle oracle = context.getTypeOracle(); JClassType toGenerate = oracle.findType(typeName).isInterface(); if (toGenerate == null) { logger.log(TreeLogger.ERROR, typeName + " is not an interface type"); //$NON-NLS-1$ throw new UnableToCompleteException(); } ElementIdTypeParser parser = new ElementIdTypeParser(logger, toGenerate); ElementIdStatement[] statements = parser.parseStatements(); String packageName = toGenerate.getPackage().getName(); String simpleSourceName = toGenerate.getName().replace('.', '_') + "Impl"; //$NON-NLS-1$ PrintWriter pw = context.tryCreate(logger, packageName, simpleSourceName); if (pw == null) { return packageName + "." + simpleSourceName; //$NON-NLS-1$ } JClassType superclass = oracle.findType(BaseElementIdHandler.class.getName()).isClass(); assert superclass != null : "No BaseElementIdHandler type"; //$NON-NLS-1$ ClassSourceFileComposerFactory factory = new ClassSourceFileComposerFactory( packageName, simpleSourceName); factory.setSuperclass(superclass.getQualifiedSourceName() + "<" + parser.getOwnerType().getParameterizedQualifiedSourceName() + ">"); //$NON-NLS-1$ //$NON-NLS-2$ factory.addImplementedInterface(typeName); SourceWriter sw = factory.createSourceWriter(context, pw); writeGenerateAndSetIds(sw, parser.getOwnerType(), statements); sw.commit(logger); return factory.getCreatedClassName(); }
TypeOracle oracle = context.getTypeOracle(); JClassType type = oracle.findType(typeName); if (type == null) { logger.log(Type.ERROR, "Can not find " + JClassType.class.getSimpleName() + " for " + typeName); throw new UnableToCompleteException(); JClassType cometListenerType = oracle.findType(CometSubscriber.class .getName()); if (cometListenerType == null) { logger.log(Type.ERROR, "Can not find " + JClassType.class.getSimpleName() + " for " + CometSubscriber.class.getName()); throw new UnableToCompleteException(); adapter.addImport(HashMap.class.getName()); adapter.addImport(GWT.class.getName()); PrintWriter src = context.tryCreate(logger, packageName, simpleName); if (src == null) { logger.log(Type.WARN, qualifiedName + " for " for (JClassType check : oracle.getTypes()) { if (!(check.getFlattenedSupertypeHierarchy() .contains(cometListenerType))) { logger.log(Type.DEBUG, "Type " + check.getQualifiedSourceName()
public String getOrMakeFieldFactory(TreeLogger logger, GeneratorContext ctx, com.google.gwt.core.ext.typeinfo.JField field, com.google.gwt.core.ext.typeinfo.JType classType, ReflectionManifest manifest, boolean declaredOnly) throws UnableToCompleteException { // get cached manifest for this type String clsName = classType.getQualifiedSourceName(); TypeOracle oracle = ctx.getTypeOracle(); String name = field.getName(); JClassType cls = oracle.findType(clsName); if (cls == null) { logger.log(Type.ERROR, "Unable to find enclosing class "+clsName); throw new UnableToCompleteException(); } String fieldFactoryName = getFieldFactoryName(cls, name); JClassType factory; String pkgName = field.getEnclosingType().getPackage().getName(); factory = oracle.findType(pkgName, fieldFactoryName); if (factory == null) { return generateFieldFactory(logger, ctx, field, fieldFactoryName, manifest); } else return (pkgName.length()==0?"":pkgName+".")+ fieldFactoryName; }
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { try { JClassType eventBinderType = context.getTypeOracle().getType(typeName); JClassType targetType = getTargetType(eventBinderType, context.getTypeOracle()); SourceWriter writer = createSourceWriter(logger, context, eventBinderType, targetType); if (writer != null) { // Otherwise the class was already created new EventRegistrationWriter(logger).writeGetMethods(targetType, writer); writer.commit(logger); } return new StringBuilder() .append(eventBinderType.getPackage().getName()) .append('.') .append(getSimpleGeneratedClassName(eventBinderType)) .toString(); } catch (NotFoundException e) { logger.log(Type.ERROR, "Error generating " + typeName, e); throw new UnableToCompleteException(); } }
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle oracle = context.getTypeOracle(); JClassType keyProviderIntf = oracle.findType(typeName); JClassType toGenerate = keyProviderIntf.isInterface(); if (toGenerate == null) { logger.log(TreeLogger.ERROR, typeName + " is not an interface type"); throw new UnableToCompleteException(); } String packageName = toGenerate.getPackage().getName(); simpleSourceName = toGenerate.getName().replace('.', '_') + "Impl"; PrintWriter pw = context.tryCreate(logger, packageName, simpleSourceName); if (pw == null) { return packageName + "." + simpleSourceName; } model = new StorageKeyProviderModel(logger, toGenerate); model.loadMethods(); ClassSourceFileComposerFactory factory = new ClassSourceFileComposerFactory(packageName, simpleSourceName); factory.setSuperclass(AbstractStorageKeyProvider.class.getCanonicalName()); factory.addImplementedInterface(typeName); SourceWriter sw = factory.createSourceWriter(context, pw); writeMethods(sw); sw.commit(logger); return factory.getCreatedClassName(); }
selectionProperty = generatorContext.getPropertyOracle().getSelectionProperty(logger, "acristheme"); } catch (BadPropertyValueException e) { logger.log(Type.INFO, "Acris theme property is not defined"); return typeName; for (JType type: generatorContext.getTypeOracle().getTypes()) { if (type.isClassOrInterface() != null) { JClassType classType = type.isClassOrInterface(); Theme theme = classType.getAnnotation(Theme.class); ThemeSupport themeSupport = classType.getAnnotation(ThemeSupport.class); if (theme != null) { if (themeName.equals(theme.value()) && themeSupport.widgetClass().getCanonicalName().equals(typeName)) { return classType.getPackage().getName() + "." + classType.getSimpleSourceName() + SUFFIX;
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { oracle = context.getTypeOracle(); beanModelMarkerType = oracle.findType(BeanModelMarker.class.getName()); beanModelTagType = oracle.findType(BeanModelTag.class.getName()); JClassType[] types = oracle.getTypes(); for (JClassType type : types) { if (isBeanMarker(type)) { composer.addImport(FastMap.class.getName()); PrintWriter pw = context.tryCreate(logger, genPackageName, genClassName); sw.print(" else "); sw.println("if (" + bean.getQualifiedSourceName() + ".class.getName().equals(n)) {"); sw.indentln("m" + i + "();"); sb.append(" m.put(" + bean.getQualifiedSourceName() + ".class.getName(), new " + factory + "());\n"); sb.append("}\n"); logger.log(TreeLogger.ERROR, "Class " + typeName + " not found.", e); throw new UnableToCompleteException();
@Override public void createFields(TreeLogger logger, ResourceContext context, ClientBundleFields fields) throws UnableToCompleteException { data.append(']'); StringBuffer wrappedData = new StringBuffer(); if (shouldUseJsonp(context, logger)) { wrappedData.append(JSONP_CALLBACK_PREFIX); wrappedData.append(getMd5HashOfData()); wrappedData.append(".onSuccess(\n"); wrappedData.append(data.toString()); wrappedData.append(")"); } else { wrappedData = data; } urlExpression = context.deploy( context.getClientBundleType().getQualifiedSourceName().replace('.', '_') + "_jsonbundle.txt", "text/plain", Util.getBytes(wrappedData.toString()), true); TypeOracle typeOracle = context.getGeneratorContext().getTypeOracle(); JClassType stringType = typeOracle.findType(String.class.getName()); assert stringType != null; externalTextUrlIdent = fields.define(stringType, "externalTextUrl", urlExpression, true, true); JClassType textResourceType = typeOracle.findType(TextResource.class.getName()); assert textResourceType != null; JType textResourceArrayType = typeOracle.getArrayType(textResourceType); externalTextCacheIdent = fields.define(textResourceArrayType, "externalTextCache", "new " + TextResource.class.getName() + "[" + currentIndex + "]", true, true); }
PropertyOracle propertyOracle = context.getGeneratorContext().getPropertyOracle(); requirements.addConfigurationProperty(KEY_CONVERSION_MODE); } catch (BadPropertyValueException e) { logger.log(TreeLogger.ERROR, "Unable to query module property", e); throw new UnableToCompleteException(); TypeOracle typeOracle = context.getGeneratorContext().getTypeOracle(); JClassType cssResourceInterface = typeOracle.findType(CssResource.class.getCanonicalName()); JClassType resourcePrototypeInterface = typeOracle.findType(ResourcePrototype.class .getCanonicalName()); getTextMethod = cssResourceInterface.getMethod("getText", new JType[0]); ensuredInjectedMethod = cssResourceInterface.getMethod("ensureInjected", new JType[0]); getNameMethod = resourcePrototypeInterface.getMethod("getName", new JType[0]); } catch (NotFoundException e) { logger.log(TreeLogger.ERROR, "Unable to lookup methods from CssResource and " + "ResourcePrototype interface", e); throw new UnableToCompleteException();
context.getGeneratorContext().getPropertyOracle(), logger); if (gssOptions.isEnabled()) { gssEnabled = true; try { PropertyOracle propertyOracle = context.getGeneratorContext().getPropertyOracle(); ConfigurationProperty styleProp = propertyOracle.getConfigurationProperty(KEY_STYLE); requirements.addConfigurationProperty(KEY_OBFUSCATION_PREFIX); } catch (BadPropertyValueException e) { logger.log(TreeLogger.ERROR, "Unable to query module property", e); throw new UnableToCompleteException(); TypeOracle typeOracle = context.getGeneratorContext().getTypeOracle(); JClassType superInterface = typeOracle.findType(getSuperclassInterfaceName()); JClassType baseInterface = typeOracle.findType(getBaseclassInterfaceName()); for (JMethod m : superInterface.getInheritableMethods()) { ignoredMethods.add(m.getName());
RemoteServiceAsyncValidator(TreeLogger logger, TypeOracle typeOracle) throws UnableToCompleteException { try { asyncCallbackClass = typeOracle.getType(AsyncCallback.class.getName()); requestType = typeOracle.getType(Request.class.getCanonicalName()); requestBuilderType = typeOracle.getType(RequestBuilder.class.getCanonicalName()); } catch (NotFoundException e) { logger.log(TreeLogger.ERROR, null, e); throw new UnableToCompleteException(); } }
protected List<Subtype> getPossibleTypesForClass(GeneratorContext context, JClassType classType, Id id, boolean isLeaf, TreeLogger logger, Collection<JsonSubTypes.Type> types) throws UnableToCompleteException { List<Subtype> possibleTypes = Lists.newArrayList(); List<JClassType> resolvedSubtypes = Lists.newArrayList(); if (types != null && !types.isEmpty()) { for (JsonSubTypes.Type type : types) { JClassType typeClass = BaseSourceCreator.find(type.value(), logger, context); if (!isLeaf || classType.equals(typeClass)) { resolvedSubtypes.add(typeClass); } } } else { for (JClassType typeClass : context.getTypeOracle().getTypes()) { if (!typeClass.isAbstract() && typeClass.isAssignableTo(classType)) { resolvedSubtypes.add(typeClass); } } } for (JClassType typeClass : resolvedSubtypes) { possibleTypes.add( new Subtype(id == Id.CLASS ? typeClass.getQualifiedSourceName() : "." + typeClass.getSimpleSourceName(), typeClass)); } return possibleTypes; }
@Override public String createAssignment(TreeLogger logger, ResourceContext context, JMethod method) throws UnableToCompleteException { JClassType gwtType = context.getGeneratorContext().getTypeOracle().findType( GWT.class.getName()); assert gwtType != null; return gwtType.getQualifiedSourceName() + ".create(" + method.getReturnType().getQualifiedSourceName() + ".class)"; } }