Example usage for com.google.gwt.core.ext RebindMode USE_ALL_NEW_WITH_NO_CACHING

List of usage examples for com.google.gwt.core.ext RebindMode USE_ALL_NEW_WITH_NO_CACHING

Introduction

In this page you can find the example usage for com.google.gwt.core.ext RebindMode USE_ALL_NEW_WITH_NO_CACHING.

Prototype

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

Document

Indicates only newly generated output should be used, and no output should be cached.

Usage

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