Example #1
0
  private SourceWriter getSourceWriter(
      TreeLogger logger, GeneratorContextExt ctx, JClassType serviceAsync) {
    JPackage serviceIntfPkg = serviceAsync.getPackage();
    String packageName = serviceIntfPkg == null ? "" : serviceIntfPkg.getName();
    PrintWriter printWriter = ctx.tryCreate(logger, packageName, getProxySimpleName());
    if (printWriter == null) {
      return null;
    }

    ClassSourceFileComposerFactory composerFactory =
        new ClassSourceFileComposerFactory(packageName, getProxySimpleName());

    String[] imports =
        new String[] {
          getProxySupertype().getCanonicalName(),
          getStreamWriterClass().getCanonicalName(),
          SerializationStreamWriter.class.getCanonicalName(),
          GWT.class.getCanonicalName(),
          ResponseReader.class.getCanonicalName(),
          SerializationException.class.getCanonicalName(),
          RpcToken.class.getCanonicalName(),
          RpcTokenException.class.getCanonicalName(),
          Impl.class.getCanonicalName(),
          RpcStatsContext.class.getCanonicalName()
        };
    for (String imp : imports) {
      composerFactory.addImport(imp);
    }

    composerFactory.setSuperclass(getProxySupertype().getSimpleName());
    composerFactory.addImplementedInterface(serviceAsync.getErasedType().getQualifiedSourceName());

    return composerFactory.createSourceWriter(ctx, printWriter);
  }
  /** @return a sourceWriter for the proxy class */
  @Override
  protected SourcePrinter getSourcePrinter() {
    JPackage pkg = baseIntf.getPackage();
    String packageName = pkg == null ? "" : pkg.getName();
    PrintWriter printWriter = context.tryCreate(logger, packageName, getProxySimpleName());

    if (printWriter == null) {
      return null;
    }

    ClassSourceFileComposerFactory composerFactory =
        new ClassSourceFileComposerFactory(packageName, getProxySimpleName());

    String[] imports = getImports();
    for (String imp : imports) {
      composerFactory.addImport(imp);
    }
    composerFactory.setSuperclass(WSQLAbstractDatabase.class.getCanonicalName());
    composerFactory.addImplementedInterface(baseIntf.getQualifiedSourceName());

    return new SourcePrinter(composerFactory.createSourceWriter(context, printWriter), logger);
  }