List of usage examples for com.google.gwt.core.ext RebindMode USE_EXISTING
RebindMode USE_EXISTING
To view the source code for com.google.gwt.core.ext RebindMode USE_EXISTING.
Click Source Link
From source file:com.guit.rebind.common.AbstractGenerator.java
License:Apache License
@Override public RebindResult generateIncrementally(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { saveVariables(logger, context, typeName); baseClass = getType(typeName);/* w ww. j a va 2 s . c om*/ generatedPackage = baseClass.getPackage().getName(); implName = baseClass.getSimpleSourceName() + implementationPostfix; implName = processImplName(implName); JClassType enclosingType = baseClass.getEnclosingType(); if (enclosingType != null) { implName = enclosingType.getSimpleSourceName() + implName; } RebindMode rebindMode = context.isGeneratorResultCachingEnabled() ? rebindMode() : RebindMode.USE_ALL_NEW_WITH_NO_CACHING; if (rebindMode.equals(RebindMode.USE_ALL_CACHED) || rebindMode.equals(RebindMode.USE_EXISTING)) { return new RebindResult(rebindMode, generatedPackage + "." + implName); } ClassSourceFileComposerFactory composer = createComposer(); processComposer(composer); createdClassName = composer.getCreatedClassName(); PrintWriter printWriter = createPrintWriter(); if (printWriter != null) { SourceWriter writer = composer.createSourceWriter(context, printWriter); generate(writer); writer.commit(logger); } RebindResult result = new RebindResult(rebindMode, composer.getCreatedClassName()); saveClientData(result); return result; }
From source file:com.guit.rebind.gin.GinInjectorGenerator.java
License:Apache License
@Override public RebindResult generateIncrementally(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { saveVariables(logger, context, typeName); if (typeOracle.findType(GinOracle.packageName, GinOracle.className) != null) { return new RebindResult(RebindMode.USE_EXISTING, GinOracle.packageName + "." + GinOracle.className); }/* www. j a v a2 s . c om*/ // Clear injectedClasses.clear(); providedClasses.clear(); asyncProvidedClasses.clear(); gmodules.clear(); // Call gin contributors List<String> contributors = getConfigurationProperty("app.gin.contributor").getValues(); for (String c : contributors) { GinContributor contributor = instantiateContributor(c); contributor.collaborate(this, logger, context); } // Generate the modules string StringBuilder sb = new StringBuilder(); sb.append("({"); for (Class<?> m : gmodules) { if (sb.length() > 2) { sb.append(", "); } sb.append(m.getCanonicalName() + ".class"); } sb.append("})"); GinOracle.setModules(gmodules); ClassSourceFileComposerFactory composer = new ClassSourceFileComposerFactory(GinOracle.packageName, GinOracle.className); composer.makeInterface(); composer.addImplementedInterface(Ginjector.class.getCanonicalName()); composer.addAnnotationDeclaration("@" + GinModules.class.getCanonicalName() + sb.toString()); PrintWriter printWriter = context.tryCreate(logger, GinOracle.packageName, GinOracle.className); // Convert to linked to remove possible duplicated entries injectedClasses = findClassOrLinkedInjectionKey(injectedClasses); providedClasses = findClassOrLinkedInjectionKey(providedClasses); asyncProvidedClasses = findClassOrLinkedInjectionKey(asyncProvidedClasses); if (printWriter != null) { SourceWriter writer = composer.createSourceWriter(context, printWriter); writer.println(SINGLETON_DECLARATION); for (String classType : injectedClasses) { load(classType); writer.println(classType + " " + GinOracle.getGetterMethodName(classType) + "();"); } for (String classType : providedClasses) { load(classType); writer.println(Provider.class.getCanonicalName() + "<" + classType + "> " + GinOracle.getProviderGetterMethodName(classType) + "();"); } for (String classType : asyncProvidedClasses) { load(classType); writer.println(AsyncProvider.class.getCanonicalName() + "<" + classType + "> " + GinOracle.getAsyncProviderGetterMethodName(classType) + "();"); } writer.commit(logger); } return new RebindResult(RebindMode.USE_PARTIAL_CACHED, GinOracle.packageName + "." + GinOracle.className); }
From source file:com.mvp4g.rebind.Mvp4gGenerator.java
License:Apache License
private RebindResult create(TreeLogger logger, GeneratorContext context, String moduleName) throws UnableToCompleteException { Date start = new Date(); String generatedClassQualifiedName; try {// ww w . java 2s . c om TypeOracle typeOracle = context.getTypeOracle(); JClassType module = typeOracle.findType(moduleName); if (module == null) { logger.log(TreeLogger.ERROR, "Unable to find metadata for type '" + moduleName + "'", null); throw new UnableToCompleteException(); } @SuppressWarnings("unchecked") Map<Class<? extends Annotation>, List<JClassType>> scanResult = AnnotationScanner.scan(logger, typeOracle, new Class[] { Presenter.class, History.class, Events.class, Service.class, EventHandler.class }); Mvp4gConfiguration configuration = new Mvp4gConfiguration(logger, context); String suffix = "Impl" + configuration.load(module, scanResult); generatedClassQualifiedName = module.getParameterizedQualifiedSourceName() + suffix; String packageName = module.getPackage().getName(); String originalClassName = module.getSimpleSourceName(); String generatedClassName = originalClassName + suffix; // check weather there is a usual version or not. if (checkAlreadyGenerated(logger, context, configuration)) { // Log logger.log(TreeLogger.INFO, "Reuse already generated files", null); // stop generating return new RebindResult(RebindMode.USE_EXISTING, packageName + "." + generatedClassName); } // Log logger.log(TreeLogger.INFO, "Start generate files ... ", null); // No, there is non. Create a new one. SourceWriter sourceWriter = getSourceWriter(logger, context, module, packageName, generatedClassName); if (sourceWriter != null) { logger.log(TreeLogger.INFO, "Generating source for " + generatedClassQualifiedName + " ", null); Mvp4gConfigurationFileWriter writer = new Mvp4gConfigurationFileWriter(sourceWriter, configuration); writer.writeConf(); sourceWriter.commit(logger); } else { // don't expect this to occur, but could happen if an instance was // recently generated but not yet committed new RebindResult(RebindMode.USE_EXISTING, generatedClassQualifiedName); } Date end = new Date(); logger.log(TreeLogger.INFO, "Mvp4g Compilation: " + (end.getTime() - start.getTime()) + "ms."); return new RebindResult(RebindMode.USE_ALL_NEW_WITH_NO_CACHING, packageName + "." + generatedClassName); } catch (InvalidMvp4gConfigurationException e) { logger.log(TreeLogger.ERROR, e.getMessage(), e); throw new UnableToCompleteException(); } }
From source file:com.mvp4g.rebind.Mvp4gRunAsyncGenerator.java
License:Apache License
private RebindResult create(JClassType originalType, TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { Date start = new Date(); String packageName = originalType.getPackage().getName(); String originalClassName = originalType.getSimpleSourceName(); String generatedClassName = originalClassName + "Impl"; String generatedClassQualifiedName = packageName + "." + generatedClassName; // check weather there is a usual version or not. if (checkAlreadyGenerated(logger, context, generatedClassQualifiedName)) { // Log// w w w . j a v a 2 s . co m logger.log(TreeLogger.INFO, "reuse already generated files", null); // stop generating return new RebindResult(RebindMode.USE_EXISTING, generatedClassQualifiedName); } logger.log(TreeLogger.INFO, "Generating writer for " + packageName + "." + generatedClassName, null); PrintWriter printWriter = context.tryCreate(logger, packageName, generatedClassName); ClassSourceFileComposerFactory classFactory = new ClassSourceFileComposerFactory(packageName, generatedClassName); classFactory.addImplementedInterface(originalType.getName()); String[] classesToImport = getClassesToImport(); for (String classToImport : classesToImport) { classFactory.addImport(classToImport); } if (printWriter != null) { SourceWriter sourceWriter = classFactory.createSourceWriter(context, printWriter); logger.log(TreeLogger.INFO, "Generating source for " + generatedClassQualifiedName + " ", null); writeClass(sourceWriter, getRunAsync(originalType)); sourceWriter.commit(logger); } Date end = new Date(); logger.log(TreeLogger.INFO, "Mvp4g Module Cretor: " + (end.getTime() - start.getTime()) + "ms."); return new RebindResult(RebindMode.USE_ALL_NEW_WITH_NO_CACHING, generatedClassQualifiedName); }
From source file:com.seanchenxi.gwt.storage.rebind.StorageTypeSerializerGenerator.java
License:Apache License
@Override public RebindResult generateIncrementally(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle typeOracle = context.getTypeOracle(); JClassType serializerType = typeOracle.findType(typeName); if (serializerType == null || serializerType.isInterface() == null) throw new UnableToCompleteException(); final Set<JType> serializables = StorageTypeFinder.getInstance(context, logger).findStorageTypes(); String typeSerializerClassName = serializerType.getQualifiedSourceName() + TYPE_SERIALIZER_SUFFIX; String typeSerializerSimpleName = serializerType.getSimpleSourceName() + TYPE_SERIALIZER_SUFFIX; JClassType typeSerializer = typeOracle.findType(typeSerializerClassName); SerializableTypeOracle serializationOracle = buildSerializableTypeOracle(logger, context, serializables); if (typeSerializer != null && typeSerializer.isClass() != null && isNothingChanged(logger, context, serializables, serializationOracle)) { return new RebindResult(RebindMode.USE_EXISTING, typeSerializerClassName); }/* w ww . jav a2s . c o m*/ TypeSerializerCreator tsc = new TypeSerializerCreator(logger, serializationOracle, serializationOracle, context, typeSerializerClassName, typeSerializerSimpleName); tsc.realize(logger); if (context.isGeneratorResultCachingEnabled()) { RebindResult result = new RebindResult(RebindMode.USE_PARTIAL_CACHED, typeSerializerClassName); CachedRpcTypeInformation cti = new CachedRpcTypeInformation(serializationOracle, serializationOracle, serializables, new HashSet<JType>()); result.putClientData(ProxyCreator.CACHED_TYPE_INFO_KEY, cti); return result; } else { return new RebindResult(RebindMode.USE_ALL_NEW_WITH_NO_CACHING, typeSerializerClassName); } }
From source file:org.cruxframework.crux.core.rebind.AbstractGenerator.java
License:Apache License
@Override public RebindResult generateIncrementally(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle typeOracle = context.getTypeOracle(); assert (typeOracle != null); JClassType baseIntf = typeOracle.findType(typeName); if (baseIntf == null) { logger.log(TreeLogger.ERROR, "Unable to find source for type [" + typeName + "]", null); throw new UnableToCompleteException(); }//from w w w.j a v a2 s .c om AbstractProxyCreator proxy = createProxy(logger, context, baseIntf); String returnType = proxy.create(); if (returnType == null) { return new RebindResult(RebindMode.USE_EXISTING, typeName); } else if (proxy.isCacheable()) { return new RebindResult(RebindMode.USE_PARTIAL_CACHED, returnType); } else { return new RebindResult(RebindMode.USE_ALL_NEW_WITH_NO_CACHING, returnType); } }
From source file:org.cruxframework.crux.core.rebind.rpc.CruxProxyCreator.java
License:Apache License
/** * @param logger//from w ww. j av a 2 s .co m * @param context * @param asyncServiceTypeName * @return * @throws UnableToCompleteException */ private RebindResult createAsyncWrapper(GeneratorContext context, String asyncServiceTypeName) throws UnableToCompleteException { JClassType serviceAsync = context.getTypeOracle().findType(serviceIntf.getQualifiedSourceName() + "Async"); String asyncWrapperName = getProxyWrapperQualifiedName(); if (checkAlreadyGenerated(context, asyncWrapperName)) { return new RebindResult(RebindMode.USE_EXISTING, asyncWrapperName); } SourceWriter srcWriter = getSourceWriter(logger, context, asyncServiceTypeName, asyncWrapperName); if (srcWriter == null) { return new RebindResult(RebindMode.USE_EXISTING, asyncWrapperName); } generateWrapperProxyFields(srcWriter, asyncServiceTypeName); generateWrapperProxyContructor(srcWriter); generateProxyWrapperMethods(srcWriter, serviceAsync); if (this.hasSyncTokenMethod) { generateProxyWrapperStartMethod(srcWriter); generateProxyWrapperEndMethod(srcWriter); generateProxyWrapperUpdateTokenMethod(srcWriter); generateSetServiceEntryPointMethod(srcWriter); } srcWriter.commit(logger); return new RebindResult(RebindMode.USE_ALL_NEW_WITH_NO_CACHING, asyncWrapperName); }
From source file:org.cruxframework.crux.plugin.gadget.rebind.rpc.CruxGadgetProxyCreator.java
License:Apache License
/** * @param logger/*from w w w . j av a2 s. c o m*/ * @param context * @param cruxServiceTypeName * @return * @throws UnableToCompleteException */ private RebindResult createGadgetWrapper(GeneratorContext context, String cruxServiceTypeName) throws UnableToCompleteException { SourceWriter srcWriter = getSourceWriter(logger, context, cruxServiceTypeName); String gadgetWrapperName = getGadgetProxyQualifiedName(); if (srcWriter == null) { return new RebindResult(RebindMode.USE_EXISTING, gadgetWrapperName); } generateGadgetProxyContructor(srcWriter); srcWriter.commit(logger); return new RebindResult(RebindMode.USE_ALL_NEW_WITH_NO_CACHING, gadgetWrapperName); }
From source file:org.jboss.errai.ioc.rebind.ioc.bootstrapper.FactoryGenerator.java
License:Apache License
@Override public RebindResult generateIncrementally(final TreeLogger logger, final GeneratorContext generatorContext, final String typeName) throws UnableToCompleteException { final long start = System.currentTimeMillis(); final DependencyGraph graph = assertGraphSet(); final InjectionContext injectionContext = assertInjectionContextSet(); final Injectable injectable = graph .getConcreteInjectable(typeName.substring(typeName.lastIndexOf('.') + 1)); final InjectableType factoryType = injectable.getInjectableType(); final ClassStructureBuilder<?> factoryBuilder = define(getFactorySubTypeName(typeName), parameterizedAs(Factory.class, typeParametersOf(injectable.getInjectedType()))).publicScope() .body();//ww w. j av a 2s. c o m final FactoryBodyGenerator generator = selectBodyGenerator(factoryType, typeName, injectable); final String factorySimpleClassName = getFactorySubTypeSimpleName(typeName); final PrintWriter pw = generatorContext.tryCreate(logger, GENERATED_PACKAGE, factorySimpleClassName); final RebindResult retVal; if (pw != null) { final String factorySource; if (isCacheUsable(typeName, injectable)) { log.debug("Reusing cached factory for " + typeName); factorySource = generatedSourceByFactoryTypeName.get(typeName); } else { log.debug("Generating factory for " + typeName); generator.generate(factoryBuilder, injectable, graph, injectionContext, logger, generatorContext); factorySource = factoryBuilder.toJavaString(); generatedSourceByFactoryTypeName.put(typeName, factorySource); injectablesByFactoryTypeName.put(typeName, injectable); writeToDotErraiFolder(factorySimpleClassName, factorySource); } pw.write(factorySource); generatorContext.commit(logger, pw); retVal = new RebindResult(RebindMode.USE_ALL_NEW, factoryBuilder.getClassDefinition().getFullyQualifiedName()); } else { log.debug("Reusing factory for " + typeName); retVal = new RebindResult(RebindMode.USE_EXISTING, getFactorySubTypeName(typeName)); } final long ellapsed = System.currentTimeMillis() - start; totalTime += ellapsed; log.debug("Factory for {} completed in {}ms. Total factory generation time: {}ms", typeName, ellapsed, totalTime); return retVal; }
From source file:org.jboss.errai.marshalling.rebind.MarshallerGenerator.java
License:Apache License
@Override public RebindResult generateIncrementally(final TreeLogger logger, final GeneratorContext context, final String typeName) throws UnableToCompleteException { final String fullyQualifiedTypeName = distillTargetTypeName(typeName); final MetaClass type = MetaClassFactory.get(fullyQualifiedTypeName); final String className = MarshallerGeneratorFactory.getMarshallerImplClassName(type, true); final String marshallerTypeName = packageName + "." + className; final MetaClass cachedType = cachedPortableTypes.get(fullyQualifiedTypeName); final PrintWriter printWriter = context.tryCreate(logger, packageName, className); if (printWriter != null) { if (!RebindUtils.NO_CACHE && cachedType != null && cachedType.hashContent() == type.hashContent()) { log.debug("Reusing cached marshaller for {}", fullyQualifiedTypeName); printWriter.append(cachedSourceByTypeName.get(fullyQualifiedTypeName)); context.commit(logger, printWriter); } else {//w w w.j a v a2 s . c o m log.debug("Generating marshaller for {}", fullyQualifiedTypeName); final String generatedSource = generateMarshaller(context, type, className, marshallerTypeName, logger, printWriter); cachedPortableTypes.put(fullyQualifiedTypeName, type); cachedSourceByTypeName.put(fullyQualifiedTypeName, generatedSource); } return new RebindResult(RebindMode.USE_ALL_NEW, marshallerTypeName); } else { log.debug("Reusing existing marshaller for {}", fullyQualifiedTypeName); return new RebindResult(RebindMode.USE_EXISTING, marshallerTypeName); } }