List of usage examples for com.google.gwt.core.ext RebindMode USE_ALL_NEW_WITH_NO_CACHING
RebindMode USE_ALL_NEW_WITH_NO_CACHING
To view the source code for com.google.gwt.core.ext RebindMode USE_ALL_NEW_WITH_NO_CACHING.
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 w w . ja 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.common.AbstractGenerator.java
License:Apache License
protected RebindMode rebindMode() { return RebindMode.USE_ALL_NEW_WITH_NO_CACHING; }
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 {//w w w . ja v a 2 s. c o m 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//from w w w.j a v a 2 s.c om 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); }//from w ww. j a v a 2s . 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.atmosphere.extensions.gwtwrapper.rebind.SerializerGenerator.java
License:Apache License
@Override public RebindResult generateIncrementally(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle typeOracle = context.getTypeOracle(); // Create the CometSerializer impl String packageName = "comet"; String className = typeName.replace('.', '_') + "Impl"; PrintWriter printWriter = context.tryCreate(logger, packageName, className); if (printWriter != null) { try {//from w ww . j av a2 s.c om JClassType type = typeOracle.getType(typeName); GwtSerialTypes annotation = type.getAnnotation(GwtSerialTypes.class); if (annotation == null) { logger.log(TreeLogger.ERROR, "No SerialTypes annotation on CometSerializer type: " + typeName); throw new UnableToCompleteException(); } SerializableTypeOracleBuilder typesSentToBrowserBuilder = new SerializableTypeOracleBuilder(logger, context.getPropertyOracle(), context); SerializableTypeOracleBuilder typesSentFromBrowserBuilder = new SerializableTypeOracleBuilder( logger, context.getPropertyOracle(), context); List<Class<?>> serializableTypes = new ArrayList(); Collections.addAll(serializableTypes, annotation.value()); for (Class<?> serializable : serializableTypes) { int rank = 0; if (serializable.isArray()) { while (serializable.isArray()) { serializable = (Class<?>) serializable.getComponentType(); rank++; } } JType resolvedType = typeOracle.getType(serializable.getCanonicalName()); while (rank > 0) { resolvedType = typeOracle.getArrayType(resolvedType); rank--; } typesSentToBrowserBuilder.addRootType(logger, resolvedType); typesSentFromBrowserBuilder.addRootType(logger, resolvedType); } // Create a resource file to receive all of the serialization information // computed by STOB and mark it as private so it does not end up in the // output. OutputStream pathInfo = context.tryCreateResource(logger, typeName + ".rpc.log"); PrintWriter writer = new PrintWriter(new OutputStreamWriter(pathInfo)); writer.write("====================================\n"); writer.write("Types potentially sent from server:\n"); writer.write("====================================\n\n"); writer.flush(); typesSentToBrowserBuilder.setLogOutputWriter(writer); SerializableTypeOracle typesSentToBrowser = typesSentToBrowserBuilder.build(logger); writer.write("===================================\n"); writer.write("Types potentially sent from browser:\n"); writer.write("===================================\n\n"); writer.flush(); typesSentFromBrowserBuilder.setLogOutputWriter(writer); SerializableTypeOracle typesSentFromBrowser = typesSentFromBrowserBuilder.build(logger); writer.close(); if (pathInfo != null) { context.commitResource(logger, pathInfo).setPrivate(true); } // Create the serializer final String modifiedTypeName = typeName.replace('.', '_'); TypeSerializerCreator tsc = new TypeSerializerCreator(logger, typesSentFromBrowser, typesSentToBrowser, context, "comet." + modifiedTypeName, modifiedTypeName); String realize = tsc.realize(logger); // Create the CometSerializer impl ClassSourceFileComposerFactory composerFactory = new ClassSourceFileComposerFactory(packageName, className); composerFactory.addImport(Serializer.class.getName()); composerFactory.addImport(SerializationException.class.getName()); composerFactory.addImport(Serializable.class.getName()); composerFactory.setSuperclass(typeName); // TODO is the SERIALIZER required for DE RPC? SourceWriter sourceWriter = composerFactory.createSourceWriter(context, printWriter); sourceWriter.print("private Serializer SERIALIZER = new " + realize + "();"); sourceWriter.print("protected Serializer getRPCSerializer() {return SERIALIZER;}"); sourceWriter.commit(logger); } catch (NotFoundException e) { logger.log(TreeLogger.ERROR, "", e); throw new UnableToCompleteException(); } } return new RebindResult(RebindMode.USE_ALL_NEW_WITH_NO_CACHING, packageName + '.' + className); }
From source file:org.atmosphere.gwt20.rebind.SerializerGenerator.java
License:Apache License
@Override public RebindResult generateIncrementally(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle typeOracle = context.getTypeOracle(); // Create the CometSerializer impl String packageName = "comet"; String className = typeName.replace('.', '_') + "Impl"; PrintWriter printWriter = context.tryCreate(logger, packageName, className); if (printWriter != null) { try {/*from w w w. j a v a 2 s . c o m*/ JClassType type = typeOracle.getType(typeName); GwtRpcSerialTypes annotation = type.getAnnotation(GwtRpcSerialTypes.class); if (annotation == null) { logger.log(TreeLogger.ERROR, "No SerialTypes annotation on CometSerializer type: " + typeName); throw new UnableToCompleteException(); } SerializableTypeOracleBuilder typesSentToBrowserBuilder = new SerializableTypeOracleBuilder(logger, context.getPropertyOracle(), context); SerializableTypeOracleBuilder typesSentFromBrowserBuilder = new SerializableTypeOracleBuilder( logger, context.getPropertyOracle(), context); List<Class<?>> serializableTypes = new ArrayList(); Collections.addAll(serializableTypes, annotation.value()); for (Class<?> serializable : serializableTypes) { int rank = 0; if (serializable.isArray()) { while (serializable.isArray()) { serializable = (Class<?>) serializable.getComponentType(); rank++; } } JType resolvedType = typeOracle.getType(serializable.getCanonicalName()); while (rank > 0) { resolvedType = typeOracle.getArrayType(resolvedType); rank--; } typesSentToBrowserBuilder.addRootType(logger, resolvedType); typesSentFromBrowserBuilder.addRootType(logger, resolvedType); } // Create a resource file to receive all of the serialization information // computed by STOB and mark it as private so it does not end up in the // output. OutputStream pathInfo = context.tryCreateResource(logger, typeName + ".rpc.log"); PrintWriter writer = new PrintWriter(new OutputStreamWriter(pathInfo)); writer.write("====================================\n"); writer.write("Types potentially sent from server:\n"); writer.write("====================================\n\n"); writer.flush(); typesSentToBrowserBuilder.setLogOutputWriter(writer); SerializableTypeOracle typesSentToBrowser = typesSentToBrowserBuilder.build(logger); writer.write("===================================\n"); writer.write("Types potentially sent from browser:\n"); writer.write("===================================\n\n"); writer.flush(); typesSentFromBrowserBuilder.setLogOutputWriter(writer); SerializableTypeOracle typesSentFromBrowser = typesSentFromBrowserBuilder.build(logger); writer.close(); if (pathInfo != null) { context.commitResource(logger, pathInfo).setPrivate(true); } // Create the serializer final String modifiedTypeName = typeName.replace('.', '_'); TypeSerializerCreator tsc = new TypeSerializerCreator(logger, typesSentFromBrowser, typesSentToBrowser, context, "comet." + modifiedTypeName, modifiedTypeName); String realize = tsc.realize(logger); // Create the CometSerializer impl ClassSourceFileComposerFactory composerFactory = new ClassSourceFileComposerFactory(packageName, className); composerFactory.addImport(Serializer.class.getName()); composerFactory.addImport(SerializationException.class.getName()); composerFactory.addImport(Serializable.class.getName()); composerFactory.setSuperclass(typeName); SourceWriter sourceWriter = composerFactory.createSourceWriter(context, printWriter); sourceWriter.print("private Serializer SERIALIZER = new " + realize + "();"); sourceWriter.print("protected Serializer getRPCSerializer() {return SERIALIZER;}"); sourceWriter.commit(logger); } catch (NotFoundException e) { logger.log(TreeLogger.ERROR, "", e); throw new UnableToCompleteException(); } } return new RebindResult(RebindMode.USE_ALL_NEW_WITH_NO_CACHING, packageName + '.' + className); }
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 ava 2s. 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// w ww.j a v a 2 s. com * @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 www . ja v a 2 s.c om*/ * @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); }