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:org.rapla.rest.gwtjsonrpc.rebind.SerializerCreator.java

License:Apache License

private void generateGetSets(final SourceWriter w) {
    for (final JField f : sortFields(targetType)) {
        if (f.isPrivate()) {
            w.print("private static final native ");
            w.print(f.getType().getQualifiedSourceName());
            w.print(" objectGet_" + f.getName());
            w.print("(");
            w.print(targetType.getQualifiedSourceName() + " instance");
            w.print(")");
            w.println("/*-{ ");
            w.indent();

            w.print("return instance.@");
            w.print(targetType.getQualifiedSourceName());
            w.print("::");/*from w w w.  j  a va2  s  .  c om*/
            w.print(f.getName());
            w.println(";");

            w.outdent();
            w.println("}-*/;");

            w.print("private static final native void ");
            w.print(" objectSet_" + f.getName());
            w.print("(");
            w.print(targetType.getQualifiedSourceName() + " instance, ");
            w.print(f.getType().getQualifiedSourceName() + " value");
            w.print(")");
            w.println("/*-{ ");
            w.indent();

            w.print("instance.@");
            w.print(targetType.getQualifiedSourceName());
            w.print("::");
            w.print(f.getName());
            w.println(" = value;");

            w.outdent();
            w.println("}-*/;");
        }

        if (f.getType() == JPrimitiveType.CHAR || isBoxedCharacter(f.getType())) {
            w.print("private static final native String");
            w.print(" jsonGet0_" + f.getName());
            w.print("(final JavaScriptObject instance)");
            w.println("/*-{ ");
            w.indent();
            w.print("return instance.");
            w.print(f.getName());
            w.println(";");
            w.outdent();
            w.println("}-*/;");

            w.print("private static final ");
            w.print(f.getType() == JPrimitiveType.CHAR ? "char" : "Character");
            w.print(" jsonGet_" + f.getName());
            w.print("(JavaScriptObject instance)");
            w.println(" {");
            w.indent();
            w.print("return ");
            w.print(JsonSerializer.class.getName());
            w.print(".toChar(");
            w.print("jsonGet0_" + f.getName());
            w.print("(instance)");
            w.println(");");
            w.outdent();
            w.println("}");
        } else {
            w.print("private static final native ");
            if (f.getType().isArray() != null) {
                w.print("JavaScriptObject");
            } else if (isJsonPrimitive(f.getType())) {
                w.print(f.getType().getQualifiedSourceName());
            } else if (isBoxedPrimitive(f.getType())) {
                w.print(boxedTypeToPrimitiveTypeName(f.getType()));
            } else {
                w.print("Object");
            }
            w.print(" jsonGet_" + f.getName());
            w.print("(JavaScriptObject instance)");
            w.println("/*-{ ");
            w.indent();

            w.print("return instance.");
            w.print(f.getName());
            w.println(";");

            w.outdent();
            w.println("}-*/;");
        }

        w.println();
    }
}

From source file:org.rapla.rest.gwtjsonrpc.rebind.SerializerCreator.java

License:Apache License

private void generateEnumFromJson(final SourceWriter w) {
    w.print("public ");
    w.print(targetType.getQualifiedSourceName());
    w.println(" fromJson(Object in) {");
    w.indent();
    w.print("return in != null");
    w.print(" ? " + targetType.getQualifiedSourceName() + ".valueOf((String)in)");
    w.print(" : null");
    w.println(";");
    w.outdent();/*from w ww.  j a  va 2s.  c o  m*/
    w.println("}");
    w.println();
}

From source file:org.rapla.rest.gwtjsonrpc.rebind.SerializerCreator.java

License:Apache License

private void generatePrintJson(final SourceWriter w) {
    final JField[] fieldList = sortFields(targetType);
    w.print("protected int printJsonImpl(int fieldCount, StringBuilder sb, ");
    w.println("Object instance) {");
    w.indent();

    w.print("final ");
    w.print(targetType.getQualifiedSourceName());
    w.print(" src = (");
    w.print(targetType.getQualifiedSourceName());
    w.println(")instance;");

    if (needsSuperSerializer(targetType)) {
        w.print("fieldCount = super.printJsonImpl(fieldCount, sb, (");
        w.print(targetType.getSuperclass().getQualifiedSourceName());
        w.println(")src);");
    }/*  w ww .  j  a va  2 s. c  o m*/

    final String docomma = "if (fieldCount++ > 0) sb.append(\",\");";
    for (final JField f : fieldList) {
        final String doget;
        if (f.isPrivate()) {
            doget = "objectGet_" + f.getName() + "(src)";
        } else {
            doget = "src." + f.getName();
        }

        final String doname = "sb.append(\"\\\"" + f.getName() + "\\\":\");";
        if (f.getType() == JPrimitiveType.CHAR || isBoxedCharacter(f.getType())) {
            w.println(docomma);
            w.println(doname);
            w.println("sb.append(\"\\\"\");");
            w.println("sb.append(" + JsonSerializer.class.getSimpleName() + ".escapeChar(" + doget + "));");
            w.println("sb.append(\"\\\"\");");
        } else if (isJsonString(f.getType())) {
            w.println("if (" + doget + " != null) {");
            w.indent();
            w.println(docomma);
            w.println(doname);
            w.println("sb.append(" + JsonSerializer.class.getSimpleName() + ".escapeString(" + doget + "));");
            w.outdent();
            w.println("}");
            w.println();
        } else if (f.getType().isPrimitive() != null) {
            w.println(docomma);
            w.println(doname);
            w.println("sb.append(" + doget + ");");
            w.println();
        } else if (isJsonPrimitive(f.getType()) || isBoxedPrimitive(f.getType())) {
            w.println("if (" + doget + " != null) {");
            w.println(docomma);
            w.println(doname);
            w.println("sb.append(" + doget + ");");
            w.println();
            w.println("}");
        } else {
            w.println("if (" + doget + " != null) {");
            w.indent();
            w.println(docomma);
            w.println(doname);
            if (needsTypeParameter(f.getType())) {
                w.print("ser_" + f.getName());
            } else {
                w.print(serializerFor(f.getType()) + ".INSTANCE");
            }
            w.println(".printJson(sb, " + doget + ");");
            w.outdent();
            w.println("}");
            w.println();
        }
    }

    w.println("return fieldCount;");
    w.outdent();
    w.println("}");
    w.println();
}

From source file:org.rapla.rest.gwtjsonrpc.rebind.SerializerCreator.java

License:Apache License

private void generateFromJson(final SourceWriter w) {
    w.print("public ");
    w.print(targetType.getQualifiedSourceName());
    w.println(" fromJson(Object in) {");
    w.indent();
    if (targetType.isAbstract()) {
        w.println("throw new UnsupportedOperationException();");
    } else {//www  .ja v  a  2 s.c  o m
        w.println("if (in == null) return null;");
        w.println("final JavaScriptObject jso = (JavaScriptObject)in;");
        w.print("final ");
        w.print(targetType.getQualifiedSourceName());
        w.print(" dst = new ");
        w.println(targetType.getQualifiedSourceName() + "();");
        w.println("fromJsonImpl(jso, dst);");
        w.println("return dst;");
    }
    w.outdent();
    w.println("}");
    w.println();

    w.print("protected void fromJsonImpl(JavaScriptObject jso,");
    w.print(targetType.getQualifiedSourceName());
    w.println(" dst) {");
    w.indent();

    if (needsSuperSerializer(targetType)) {
        w.print("super.fromJsonImpl(jso, (");
        w.print(targetType.getSuperclass().getQualifiedSourceName());
        w.println(")dst);");
    }

    for (final JField f : sortFields(targetType)) {
        final String doget = "jsonGet_" + f.getName() + "(jso)";
        final String doset0, doset1;

        if (f.isPrivate()) {
            doset0 = "objectSet_" + f.getName() + "(dst, ";
            doset1 = ")";
        } else {
            doset0 = "dst." + f.getName() + " = ";
            doset1 = "";
        }

        JType type = f.getType();
        if (type.isArray() != null) {
            final JType ct = type.isArray().getComponentType();
            w.println("if (" + doget + " != null) {");
            w.indent();

            w.print("final ");
            w.print(ct.getQualifiedSourceName());
            w.print("[] tmp = new ");
            w.print(ct.getQualifiedSourceName());
            w.print("[");
            w.print(ObjectArraySerializer.class.getName());
            w.print(".size(" + doget + ")");
            w.println("];");

            w.println("ser_" + f.getName() + ".fromJson(" + doget + ", tmp);");

            w.print(doset0);
            w.print("tmp");
            w.print(doset1);
            w.println(";");

            w.outdent();
            w.println("}");

        } else if (isJsonPrimitive(type)) {
            w.print(doset0);
            w.print(doget);
            w.print(doset1);
            w.println(";");

        } else if (isBoxedPrimitive(type)) {
            w.print(doset0);
            w.print("( " + doget + " != null) ? ");
            //w.print("new " + type.getQualifiedSourceName() + "(");
            w.print(doget);
            //w.print(")");
            w.print(":null");
            w.print(doset1);
            w.println(";");

        } else {
            w.print(doset0);
            if (needsTypeParameter(type)) {
                w.print("ser_" + f.getName());
            } else {
                String serializerFor = serializerFor(type);
                w.print(serializerFor + ".INSTANCE");
            }
            w.print(".fromJson(" + doget + ")");
            w.print(doset1);
            w.println(";");
        }
    }

    w.outdent();
    w.println("}");
    w.println();
}

From source file:org.rstudio.core.rebind.command.CommandBundleGenerator.java

License:Open Source License

private void emitShortcuts(SourceWriter writer) throws UnableToCompleteException {
    writer.println("private void __registerShortcuts() {");
    writer.indent();
    NodeList nodes = getConfigDoc("/commands/shortcuts");
    for (int i = 0; i < nodes.getLength(); i++) {
        NodeList groups = nodes.item(i).getChildNodes();
        for (int j = 0; j < groups.getLength(); j++) {
            if (groups.item(j).getNodeType() != Node.ELEMENT_NODE)
                continue;
            String groupName = ((Element) groups.item(j)).getAttribute("name");
            new ShortcutsEmitter(logger_, groupName, (Element) groups.item(j)).generate(writer);
        }// www.  ja  v  a 2s  . co  m
    }
    writer.outdent();
    writer.println("}");
}

From source file:org.rstudio.core.rebind.command.CommandBundleGenerator.java

License:Open Source License

private void emitCommandAccessors(SourceWriter writer) {
    for (JMethod method : commandMethods_) {
        String name = method.getName();
        writer.println("public AppCommand " + name + "() {");
        writer.indent();
        writer.println("return " + name + "_;");
        writer.outdent();//from  w  ww . j  a v  a  2 s .  com
        writer.println("}");
    }
}

From source file:org.rstudio.core.rebind.command.MenuEmitter.java

License:Open Source License

private void emitMethod(SourceWriter writer) throws UnableToCompleteException {
    writer.println("public void createMenu(MenuCallback callback) {");
    writer.indent();

    writer.println("callback.beginMainMenu();");
    // Vertical defaults to true
    emitMenu(writer, menuEl_);//from w ww  .j  ava 2s  .  c o  m
    writer.println("callback.endMainMenu();");

    writer.outdent();
    writer.println("}");
}

From source file:org.rstudio.core.rebind.command.ShortcutsEmitter.java

License:Open Source License

private void printShortcut(SourceWriter writer, String condition, String shortcutValue, String command,
        String shortcutGroup, String title, String disableModes) throws UnableToCompleteException {
    String[] chunks = shortcutValue.split("\\+");
    int modifiers = KeyboardShortcut.NONE;
    boolean cmd = false;
    for (int i = 0; i < chunks.length - 1; i++) {
        String m = chunks[i];/*from w  ww  . ja  v  a 2  s .  c o m*/
        if (m.equals("Ctrl"))
            modifiers += KeyboardShortcut.CTRL;
        else if (m.equals("Meta"))
            modifiers += KeyboardShortcut.META;
        else if (m.equals("Alt"))
            modifiers += KeyboardShortcut.ALT;
        else if (m.equals("Shift"))
            modifiers += KeyboardShortcut.SHIFT;
        else if (m.equals("Cmd"))
            cmd = true;
        else {
            logger_.log(Type.ERROR, "Invalid shortcut " + shortcutValue);
            throw new UnableToCompleteException();
        }
    }

    String key = toKey(chunks[chunks.length - 1]);
    if (key == null) {
        logger_.log(Type.ERROR,
                "Invalid shortcut " + shortcutValue + ", only " + "modified alphanumeric characters, enter, "
                        + "left, right, up, down, pageup, pagedown, " + "and tab are valid");
        throw new UnableToCompleteException();
    }

    if (!condition.isEmpty()) {
        writer.println("if (" + condition + ") {");
        writer.indent();
    }

    if (cmd) {
        writer.println("ShortcutManager.INSTANCE.register(" + (modifiers | KeyboardShortcut.CTRL) + ", " + key
                + ", " + command + ", " + "\"" + shortcutGroup + "\", " + "\"" + title + "\", " + "\""
                + disableModes + "\");");
        writer.println("ShortcutManager.INSTANCE.register(" + (modifiers | KeyboardShortcut.META) + ", " + key
                + ", " + command + ", " + "\"" + shortcutGroup + "\", " + "\"" + title + "\", " + "\""
                + disableModes + "\");");
    } else {
        writer.println("ShortcutManager.INSTANCE.register(" + modifiers + ", " + key + ", " + command + ", "
                + "\"" + shortcutGroup + "\", " + "\"" + title + "\", " + "\"" + disableModes + "\");");
    }

    if (!condition.isEmpty()) {
        writer.outdent();
        writer.println("}");
    }
}

From source file:org.rstudio.core.rebind.JavaScriptSerializerGenerator.java

License:Open Source License

private void printSerializers(List<JClassType> classes, SourceWriter w) {
    // print the method that dispatches to the appropriate serializer
    w.println("public <T> JavaScriptObject serialize(T source)");
    w.println("{");
    w.indent();
    for (JClassType classType : classes) {
        if (classType.isAbstract())
            continue;
        w.println();//from  w ww .  j av a  2 s.c  om
        w.println("if (source.getClass().getName() == " + classType.getQualifiedSourceName()
                + ".class.getName())");
        w.println("{");
        w.indent();
        w.println("return serializeJso((" + classType.getQualifiedSourceName() + ") source);");
        w.outdent();
        w.println("}");
        w.println();
    }
    w.println("return null;");
    w.outdent();
    w.println("}");
    // print individual serializers
    for (JClassType classType : classes) {
        w.print("private final native JavaScriptObject serializeJso(");
        w.println(classType.getQualifiedSourceName() + " source) /*-{");
        w.indent();
        w.println("return {");
        w.indent();
        w.println("\"class_name\":\"" + classType.getQualifiedSourceName() + "\",");
        w.println("\"class_data\": {");
        w.indent();
        JField[] fields = classType.getFields();
        for (int i = 0; i < fields.length; i++) {
            JField field = fields[i];
            if (!field.isStatic()) {
                w.print("\"" + field.getName() + "\": ");
                if (isAnnotatedSerializable(field)) {
                    w.print("this.@" + genPackageName + "." + genClassName + "::serializeJso(L");
                    w.print(field.getType().getQualifiedSourceName().replace(".", "/"));
                    w.print(";)(");
                }
                w.println("source.@" + classType.getQualifiedSourceName() + "::" + field.getName());
                if (isAnnotatedSerializable(field)) {
                    w.print(")");
                }
                if (i < (fields.length - 1))
                    w.print(", ");
                w.println();
            }
        }
        w.outdent();
        w.println("}");
        w.outdent();
        w.println("};");
        w.outdent();
        w.println("}-*/;");
        w.println();
    }
}

From source file:org.rstudio.core.rebind.JavaScriptSerializerGenerator.java

License:Open Source License

private void printDeserializers(List<JClassType> classes, SourceWriter w) {
    w.println("private final native String classFromJso(" + "JavaScriptObject jso) /*-{");
    w.indent();
    w.println("return jso.class_name;");
    w.outdent();//from   w  w w  . j av  a  2  s.  c o  m
    w.println("}-*/;");
    w.println();

    // print the method that dispatches to the appropriate deserializer
    w.println("public <T> T deserialize (JavaScriptObject jso)");
    w.println("{");
    w.indent();
    for (JClassType classType : classes) {
        // ignore abstract classes
        if (classType.isAbstract())
            continue;

        // determine class name from string
        w.println();
        w.println("if (classFromJso(jso) == \"" + classType.getQualifiedSourceName() + "\")");
        w.println("{");
        w.indent();
        w.println(classType.getQualifiedSourceName() + " ret = new " + classType.getQualifiedSourceName()
                + "();");
        w.println("deserializeJso(ret, jso);");
        w.println("return (T) ret;");
        w.outdent();
        w.println("}");
        w.println();
    }
    w.println("return null;");
    w.outdent();
    w.println("}");

    // emit individual deserializer methods (overloads)
    for (JClassType classType : classes) {
        if (classType.isAbstract())
            continue;
        w.println();
        w.println("private final native void deserializeJso(" + classType.getQualifiedSourceName() + " dest, "
                + "JavaScriptObject source) /*-{");
        w.indent();
        for (JField field : classType.getFields()) {
            if (!field.isStatic()) {
                w.print("dest.@" + classType.getQualifiedSourceName() + "::");
                w.print(field.getName() + " = ");
                if (isAnnotatedSerializable(field)) {
                    w.print("this.@" + genPackageName + "." + genClassName + "::deserialize(");
                    w.print("Lcom/google/gwt/core/client/JavaScriptObject;)(");
                }
                w.print("source.class_data[\"" + field.getName() + "\"]");
                if (isAnnotatedSerializable(field))
                    w.print(")");
                w.println(";");
            }
        }
        w.outdent();
        w.println("}-*/;");
    }
}