Example usage for com.google.gwt.user.rebind SourceWriter indent

List of usage examples for com.google.gwt.user.rebind SourceWriter indent

Introduction

In this page you can find the example usage for com.google.gwt.user.rebind SourceWriter indent.

Prototype

void indent();

Source Link

Usage

From source file:com.kk_electronic.gwt.rebind.FlexInjectorGenerator.java

License:Open Source License

private void writeFragment(SourceWriter sw, JClassType j) {
    sw.println("fragmentMap.put(" + j.getQualifiedSourceName() + ".class, new FlexInjector() {");
    sw.indent();
    sw.println("@Override");
    sw.println("public <E> void create(Class<? extends E> type, AsyncCallback<E> callback) {");
    sw.indentln(// ww  w  . j  av a 2s  . com
            "callback.onSuccess((E)injector.create$" + j.getQualifiedSourceName().replace('.', '$') + "());");
    sw.println("}");
    sw.outdent();
    sw.println("});");
}

From source file:com.kk_electronic.gwt.rebind.FlexInjectorGenerator.java

License:Open Source License

private void writeGateways(SourceWriter sw) throws UnableToCompleteException {
    for (String key : getClasses().keySet()) {
        if (key == null)
            continue;
        sw.println("private final class fragment$" + key + " implements FlexInjector {");
        sw.indent();
        sw.println();/* w w  w  .  ja va 2  s. co  m*/
        sw.println("@Override");
        sw.println("public <T> void create(final Class<? extends T> type, final AsyncCallback<T> callback) {");
        sw.indent();
        sw.println("GWT.runAsync(new RunAsyncCallback() {");
        sw.indent();
        sw.println("@Override");
        sw.println("public void onSuccess() {");
        for (JClassType j : getClasses().get(key)) {
            writeFragment(sw, j);
        }
        sw.indent();
        sw.println(className + ".this.create(type, callback);");
        sw.outdent();
        sw.println("}");
        sw.println("public void onFailure(Throwable reason) {");
        sw.indent();
        for (JClassType j : getClasses().get(key)) {
            sw.println("fragmentMap.remove(" + j.getQualifiedSourceName() + ".class);");
        }
        sw.println("callback.onFailure(reason);");
        sw.outdent();
        sw.println("}");
        sw.outdent();
        sw.println("});");
        sw.outdent();
        sw.println("}");
        sw.outdent();
        sw.println("}");
    }
}

From source file:com.kk_electronic.gwt.rebind.FlexInjectorGenerator.java

License:Open Source License

private void writeConstructor(SourceWriter sw) throws UnableToCompleteException {
    sw.println();//  w  w  w. j ava 2s .c  o m
    sw.println("@SuppressWarnings(\"unchecked\")");
    sw.println("public " + className + "() {");
    sw.indent();
    sw.println("FlexInjector fragment;");
    for (String key : getClasses().keySet()) {
        if (key != null) {
            sw.println("fragment = new fragment$" + key + "();");
            for (JClassType j : getClasses().get(key)) {
                sw.println("fragmentMap.put(" + j.getQualifiedSourceName() + ".class, fragment);");
            }
        } else {
            for (JClassType j : getClasses().get(key)) {
                writeFragment(sw, j);
            }
        }
    }
    sw.outdent();
    sw.println("}");
}

From source file:com.kk_electronic.gwt.rebind.FlexInjectorGenerator.java

License:Open Source License

private void writeStatic(SourceWriter sw) throws UnableToCompleteException {
    modules.toString();/*  w w  w . ja  v a2  s .  com*/
    sw.print("@GinModules(");
    for (Class<? extends GinModule> s : modules.value()) {
        sw.print(s.getCanonicalName());
        sw.print(".class");
    }
    sw.println(")");
    sw.println("static interface Injector extends Ginjector {");
    sw.indent();
    Set<JType> set = new HashSet<JType>();
    for (Vector<JClassType> group : getClasses().values()) {
        set.addAll(group);
    }
    for (JMethod method : classType.getMethods()) {
        set.add(method.getReturnType());
    }
    for (JType j : set) {
        sw.println(
                j.getQualifiedSourceName() + " create$" + j.getQualifiedSourceName().replace('.', '$') + "();");
    }
    //      for(Vector<JClassType> group : getClasses().values()){
    //         for(JClassType j : group){
    //            sw.println(j.getQualifiedSourceName() + " create$" + j.getQualifiedSourceName().replace('.', '$') + "();");
    //         }
    //      }
    sw.outdent();
    sw.println("}");
    sw.println();
    sw.println("private final Injector injector = GWT.create(Injector.class);");
    sw.println("private Map<Class<?>, FlexInjector> fragmentMap = new HashMap<Class<?>, FlexInjector>();");
    sw.println();
    sw.println("@Override");
    sw.println("public <T> void create(Class<? extends T> type, AsyncCallback<T> callback) {");
    sw.println("   FlexInjector x = fragmentMap.get(type);");
    sw.println("   if (x != null){");
    sw.println("      x.create(type, callback);");
    sw.println("   } else {");
    //      sw.println("      callback.onFailure(new ClassNotFoundException());");
    sw.println("      callback.onFailure(null);");
    sw.println("      GWT.log(\"Class Creation of \" + type + \" failed\");");
    sw.println("   }");
    sw.println("}");
}

From source file:com.kk_electronic.gwt.rebind.JsonEncoderGenerator.java

License:Open Source License

private void writeHelperClass(SourceWriter sw) {
    //Write variables
    sw.println("private HashMap<Class<?>, JsonValue<?>> map = new HashMap<Class<?>, JsonValue<?>>();");
    sw.println(); // Empty line for style

    //Write constructor
    sw.println("public " + className + "() {");
    sw.indent();
    for (Entry<String, String> entry : map.entrySet()) {
        sw.println("map.put(" + entry.getKey() + ".class, new " + entry.getValue() + "());");
    }//from w ww .j  a  v  a 2s  . co  m
    sw.outdent();
    sw.println("}");
    sw.println(); // Empty line for style

    //Write functions
    sw.println("@Override");
    sw.println("public Map<Class<?>, JsonValue<?>> getGeneratedMap() {");
    sw.indent();
    sw.println("return map;");
    sw.outdent();
    sw.println("}");
}

From source file:com.kk_electronic.gwt.rebind.ModuleTypeInfoHelperGenerator.java

License:Open Source License

private void writeClass(SourceWriter sw) {
    sw.println("@Override");
    sw.println("public void insertData(hasAddModuleTypeInfo provider) {");
    sw.indent();
    for (JClassType j : getClasses()) {
        Integer id = getModuleID(j);
        String name = getModuleName(j);
        sw.println("provider.add(" + j.getQualifiedSourceName() + ".class," + id + "," + name + ");");
    }/*from  w  ww. ja v a  2s.co m*/
    sw.outdent();
    sw.println("}");
}

From source file:com.kk_electronic.gwt.rebind.RemoteServiceGenerator.java

License:Open Source License

private void writeConstructor(SourceWriter sw) {
    sw.println("protected " + Dispatcher.class.getSimpleName() + " dispatcher;");
    sw.println();/*from  w w w  .j  a va2s  . c  o m*/
    sw.println("public " + className + "() {");
    sw.indent();
    sw.println("final DelayingDispatcher d = new DelayingDispatcher();");
    sw.println("this.dispatcher = d;");
    sw.println("Injection.create(" + dispatcher.getSimpleName() + ".class, new AsyncCallback<"
            + dispatcher.getSimpleName() + ">() {");
    sw.indent();
    sw.println("@Override");
    sw.println("public void onFailure(Throwable caught) {");
    sw.println(
            "   GWT.log(\"Failed to load dispatcher for " + escape(classType.getSimpleSourceName()) + "\");");
    sw.println("}");
    sw.println("");
    sw.println("@Override");
    sw.println("public void onSuccess(" + dispatcher.getSimpleName() + " result) {");
    sw.println("   d.setDispatcher(result);");
    sw.println("   dispatcher = result;");
    sw.println("}");
    sw.outdent();
    sw.println("});");
    sw.outdent();
    sw.println("}");
}

From source file:com.kk_electronic.gwt.rebind.VersionGenerator.java

License:Open Source License

private void writeGetSHA1(SourceWriter sourceWriter) {
    sourceWriter.println("public String getSHA1(){");
    sourceWriter.indent();
    sourceWriter.print("return \"");
    String result = executeCommand("git rev-parse HEAD");
    if (result != null) {
        sourceWriter.print(escape(result));
    }//from w  w w.  ja va2s.c om
    sourceWriter.println("\";");
    sourceWriter.outdent();
    sourceWriter.println("}");
}

From source file:com.kk_electronic.gwt.rebind.VersionGenerator.java

License:Open Source License

private void writeGetTag(SourceWriter sourceWriter) {
    sourceWriter.println("public String getTag(){");
    sourceWriter.indent();
    sourceWriter.print("return \"");
    String result = executeCommand("git describe --tags --always HEAD");
    if (result != null) {
        sourceWriter.print(escape(result));
    }/*  w  ww.ja v  a2s .  c  o m*/
    sourceWriter.println("\";");
    sourceWriter.outdent();
    sourceWriter.println("}");
}

From source file:com.msco.mil.server.com.sencha.gxt.explorer.rebind.SampleGenerator.java

License:sencha.com license

@Override
public String generate(TreeLogger logger, GeneratorContext context, String typeName)
        throws UnableToCompleteException {
    // Get access to metadata about the type to be generated
    TypeOracle oracle = context.getTypeOracle();
    JClassType toGenerate = oracle.findType(typeName).isClass();

    // Get the name of the new type
    String packageName = toGenerate.getPackage().getName();
    String simpleSourceName = toGenerate.getName().replace('.', '_') + "Impl";
    PrintWriter pw = context.tryCreate(logger, packageName, simpleSourceName);
    if (pw == null) {
        return packageName + "." + simpleSourceName;
    }/*w w  w .j ava2  s  .  c o m*/

    // Generate an HTML file resource for every example and write the source
    JClassType[] types = oracle.getTypes();

    // Build a ResourceOracle capable of reading java files
    sourceOracle = new ResourceOracleImpl(logger.branch(Type.DEBUG, "Gathering sources"));

    // Clean up these prefixes to not have filters
    PathPrefixSet prefixes = ((ResourceOracleImpl) context.getResourcesOracle()).getPathPrefixes();
    sourceOracle.setPathPrefixes(new PathPrefixSet());
    for (PathPrefix p : prefixes.values()) {
        sourceOracle.getPathPrefixes().add(new PathPrefix(p.getPrefix(), null));
    }
    ResourceOracleImpl.refresh(logger, sourceOracle);

    // Load the header and footer HTML content
    try {
        String slashyPackageName = getClass().getPackage().getName().replace('.', '/');
        javaHeader = Utility.getFileFromClassPath(slashyPackageName + "/header.html");
        footer = Utility.getFileFromClassPath(slashyPackageName + "/footer.html");
    } catch (IOException e) {
        logger.log(Type.ERROR, "Header or Footer failed to be read", e);
        throw new UnableToCompleteException();
    }

    // Find all examples, annotated with @Detail
    Set<ExampleDetailModel> examples = new HashSet<ExampleDetailModel>();
    Map<String, List<ExampleDetailModel>> hierarchy = new HashMap<String, List<ExampleDetailModel>>();

    Set<SourceModel> exampleSources = new HashSet<SourceModel>();
    for (JClassType type : types) {
        Example.Detail detail = type.getAnnotation(Example.Detail.class);
        if (detail != null) {
            ExampleDetailModel example = new ExampleDetailModel(logger, context, type, detail);

            // Collect sources to be built into html
            exampleSources.addAll(example.getAllSources());

            List<ExampleDetailModel> exampleList = hierarchy.get(detail.category());
            if (exampleList == null) {
                exampleList = new ArrayList<ExampleDetailModel>();
                hierarchy.put(detail.category(), exampleList);
            }
            examples.add(example);
            exampleList.add(example);
        }
    }

    // Sort folders, sort within those folders
    List<String> folders = new ArrayList<String>(hierarchy.keySet());
    Collections.sort(folders);
    for (List<ExampleDetailModel> contents : hierarchy.values()) {
        Collections.sort(contents);
    }

    // Actually build source for each type
    for (SourceModel type : exampleSources) {
        TreeLogger l = logger.branch(Type.DEBUG, "Writing HTML file for " + type.getName());

        // attempt to create the output file
        if (type.getType() == FileType.JAVA) {
            writeTypeToHtml(l, context, type.getJClassType());
        } else {
            writeFileToHtml(l, context, type.getPath());
        }
    }

    // Start making the class, with basic imports
    ClassSourceFileComposerFactory factory = new ClassSourceFileComposerFactory(packageName, simpleSourceName);
    factory.setSuperclass(typeName);
    factory.addImport(Name.getSourceNameForClass(Category.class));
    factory.addImport(Name.getSourceNameForClass(ImageResource.class));
    factory.addImport(Name.getSourceNameForClass(GWT.class));
    factory.addImport(Name.getSourceNameForClass(Example.class));
    factory.addImport(Name.getSourceNameForClass(Source.class));
    factory.addImport(Name.getSourceNameForClass(Source.FileType.class));
    SourceWriter sw = factory.createSourceWriter(context, pw);

    // Write the ctor
    sw.println("public %1$s() {", simpleSourceName);
    sw.indent();
    // Declare variables that will be used
    sw.println("Category c;");
    sw.println("ImageResource icon;");
    sw.println("Example e;");
    sw.println("Source dir;");
    Set<String> names = new HashSet<String>();
    Map<JClassType, String> bundles = new HashMap<JClassType, String>();
    for (String folder : folders) {
        // TODO escape name
        sw.println("c = new Category(\"%1$s\");", folder);
        for (ExampleDetailModel example : hierarchy.get(folder)) {
            // make sure the bundle to be used exists
            if (!bundles.containsKey(example.getClientBundleType())) {
                String bundleName = getNextName("bundle", names);
                sw.println("%1$s %2$s = GWT.create(%1$s.class);",
                        example.getClientBundleType().getQualifiedSourceName(), bundleName);

                bundles.put(example.getClientBundleType(), bundleName);
            }

            // write out the example, adding it to the current category
            writeExample(sw, bundles.get(example.getClientBundleType()), example);
        }
        sw.println("categories.add(c);");
    }
    sw.outdent();
    sw.println("}");// end ctor

    sw.commit(logger);

    return factory.getCreatedClassName();
}