List of usage examples for com.google.gwt.user.rebind SourceWriter indent
void indent();
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("}-*/;"); } }