Java Code Examples for com.squareup.javawriter.JavaWriter#emitStatement()

The following examples show how to use com.squareup.javawriter.JavaWriter#emitStatement() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ParcelerGenerator.java    From postman with MIT License 6 votes vote down vote up
private void writeReadFromParcelMethod(JavaWriter writer) throws IOException {
    writer.emitAnnotation(Override.class);
    writer.beginMethod(elementCompressedName, "readFromParcel", Modifiers.PUBLIC, "Parcel",
                       "parcel");

    writer.emitStatement("%s object = new %s()", elementCompressedName, elementCompressedName);
    writer.emitStatement("Bundle bundle = parcel.readBundle()");
    writer.emitStatement("bundle.setClassLoader(%s.class.getClassLoader())",
                         elementCompressedName);
    for (VariableElement field : parceledFields) {
        getSaveStatementWriter(field).writeFieldReadStatement(field,
                                                              postCreateChildMethods,
                                                              writer);
    }
    writer.emitStatement("return object");
    writer.endMethod();
}
 
Example 2
Source File: ParcelerGenerator.java    From postman with MIT License 6 votes vote down vote up
private void writeWriteToParcelMethod(JavaWriter writer) throws IOException {
    List<String> parameters = new ArrayList<>(4);
    parameters.add(elementCompressedName);
    parameters.add("object");
    parameters.add("Parcel");
    parameters.add("dest");

    writer.emitAnnotation(Override.class);
    writer.beginMethod("void", "writeToParcel", Modifiers.PUBLIC, parameters, null);
    writer.emitStatement("Bundle bundle = new Bundle()");

    for (VariableElement field : parceledFields) {
        getSaveStatementWriter(field).writeFieldWriteStatement(field, writer);
    }

    writer.emitStatement("dest.writeBundle(bundle)");
    writer.endMethod();
}
 
Example 3
Source File: ParcelableSaveStatementWriter.java    From postman with MIT License 6 votes vote down vote up
@Override
public void writeFieldReadStatement(VariableElement field,
                                    Collection<ExecutableElement> postCreateChildMethods,
                                    JavaWriter writer)
        throws IOException {

    writer.emitStatement("object.%s = bundle.getParcelable(\"%s\")",
                         field.getSimpleName(),
                         field.getSimpleName());

    for (ExecutableElement method : postCreateChildMethods) {
        writer.emitStatement("object.%s(object.%s)",
                             method.getSimpleName(),
                             field.getSimpleName());
    }
}
 
Example 4
Source File: MapSaveStatementWriter.java    From postman with MIT License 6 votes vote down vote up
@Override
public void writeFieldWriteStatement(VariableElement field, JavaWriter writer)
        throws IOException {
    DeclaredType type = (DeclaredType) field.asType();
    List<? extends TypeMirror> typeArguments = type.getTypeArguments();
    TypeMirror keyType = typeArguments.get(0);
    TypeMirror valueType = typeArguments.get(1);

    writer.beginControlFlow("if (object.%s != null)", field.getSimpleName());
    writer.emitStatement(
            "%1$s.writeMapToBundle(object.%2$s, bundle, %3$s.class, %4$s.class, \"%2$s\")",
            MapBundler.class.getCanonicalName(),
            field.getSimpleName(),
            keyType,
            valueType);
    writer.endControlFlow();
}
 
Example 5
Source File: MementoProcessor.java    From memento with Apache License 2.0 5 votes vote down vote up
private void emitReaderMethod(Set<? extends Element> elements, Element hostActivity, JavaWriter writer) throws IOException {
    writer.emitEmptyLine();
    writer.emitAnnotation(Override.class);
    writer.beginMethod("void", "retain", EnumSet.of(Modifier.PUBLIC), "Activity", "source");
    final String activityClass = hostActivity.getSimpleName().toString();
    writer.emitStatement(activityClass + " activity = (" + activityClass + ") source");
    for (Element element : elements) {
        writer.emitStatement("this." + element.getSimpleName() + " = activity." + element.getSimpleName());
    }
    writer.endMethod();
}
 
Example 6
Source File: StringSaveStatementWriter.java    From postman with MIT License 5 votes vote down vote up
@Override
public void writeFieldReadStatement(VariableElement field,
                                    Collection<ExecutableElement> postCreateChildMethods,
                                    JavaWriter writer)
        throws IOException {
    writer.emitStatement("object.%s = bundle.getString(\"%s\")",
                         field.getSimpleName(),
                         field.getSimpleName());
}
 
Example 7
Source File: CollectionSaveStatementWriter.java    From postman with MIT License 5 votes vote down vote up
@Override
public void writeFieldWriteStatement(VariableElement field, JavaWriter writer)
        throws IOException {
    DeclaredType type = (DeclaredType) field.asType();
    TypeMirror itemType = type.getTypeArguments().get(0);
    TypeMirror itemTypeErasure = processingEnv.getTypeUtils().erasure(itemType);

    writer.beginControlFlow("if (object.%s != null)", field.getSimpleName());
    writer.emitStatement(
            "%1$s.writeCollectionToBundle(object.%2$s, bundle, %3$s.class, \"%2$s\")",
            CollectionBundler.class.getCanonicalName(),
            field.getSimpleName(),
            itemTypeErasure);
    writer.endControlFlow();
}
 
Example 8
Source File: SettingsBuilder.java    From revolution-irc with GNU General Public License v3.0 5 votes vote down vote up
private static void writeGetterFunc(JavaWriter writer, SettingInfo setting) throws IOException {
    String getterName = (String) setting.properties.get("getter");
    if (getterName == null)
        getterName = getGetterPrefix(setting.type) + capitalize(setting.name);

    writer.beginMethod(setting.type, getterName, EnumSet.of(Modifier.PUBLIC, Modifier.STATIC));

    switch (setting.type) {
        case "boolean":
            writeSimpleGetterFuncBody(writer, "getBoolean",
                    setting.staticMemberName, setting.defaultValue);
            break;
        case "int":
            writeSimpleGetterFuncBody(writer, "getInt",
                    setting.staticMemberName, setting.defaultValue);
            break;
        case "String":
            writeSimpleGetterFuncBody(writer, "getString",
                    setting.staticMemberName, setting.defaultValue);
            break;
        case "String[]":
            writeStringArrGetterFuncBody(writer, setting.staticMemberName,
                    setting.defaultValue, setting.properties);
            break;
        case "long":
            writer.emitStatement(
                    "return SettingsHelper.getLong(getPreferences(), %s, %s)",
                    setting.staticMemberName, setting.defaultValue);
            break;
        default:
            throw new IllegalArgumentException("Type not supported: " + setting.type);
    }

    writer.endMethod();
}
 
Example 9
Source File: MementoProcessor.java    From memento with Apache License 2.0 5 votes vote down vote up
private void emitWriterMethod(Set<? extends Element> elements, Element hostActivity, JavaWriter writer) throws IOException {
    writer.emitEmptyLine();
    writer.emitAnnotation(Override.class);
    writer.beginMethod("void", "restore", EnumSet.of(Modifier.PUBLIC), "Activity", "target");
    final String activityClass = hostActivity.getSimpleName().toString();
    writer.emitStatement(activityClass + " activity = (" + activityClass + ") target");
    for (Element element : elements) {
        writer.emitStatement("activity." + element.getSimpleName() + " = this." + element.getSimpleName());
    }
    writer.endMethod();
}
 
Example 10
Source File: SerializableSaveStatementWriter.java    From postman with MIT License 5 votes vote down vote up
@Override
public void writeFieldWriteStatement(VariableElement field, JavaWriter writer)
        throws IOException {
    writer.emitStatement("bundle.putSerializable(\"%s\", object.%s)",
                         field.getSimpleName(),
                         field.getSimpleName());
}
 
Example 11
Source File: SerializableSaveStatementWriter.java    From postman with MIT License 5 votes vote down vote up
@Override
public void writeFieldReadStatement(VariableElement field,
                                    Collection<ExecutableElement> postCreateChildMethods,
                                    JavaWriter writer)
        throws IOException {
    writer.emitStatement("object.%s = (%s) bundle.getSerializable(\"%s\")",
                         field.getSimpleName(),
                         field.asType().toString(),
                         field.getSimpleName());
    for (ExecutableElement method : postCreateChildMethods) {
        writer.emitStatement("object.%s(object.%s)",
                             method.getSimpleName(),
                             field.getSimpleName());
    }
}
 
Example 12
Source File: BoxableSaveStatementWriter.java    From postman with MIT License 5 votes vote down vote up
@Override
public void writeFieldWriteStatement(VariableElement field, JavaWriter writer)
        throws IOException {
    writer.emitStatement("bundle.put%s(\"%s\", object.%s)",
                         getSaveType(field.asType()),
                         field.getSimpleName(),
                         field.getSimpleName());
}
 
Example 13
Source File: BoxableSaveStatementWriter.java    From postman with MIT License 5 votes vote down vote up
@Override
public void writeFieldReadStatement(VariableElement field,
                                    Collection<ExecutableElement> postCreateChildMethods,
                                    JavaWriter writer)
        throws IOException {
    writer.emitStatement("object.%s = bundle.get%s(\"%s\")",
                         field.getSimpleName(),
                         getSaveType(field.asType()),
                         field.getSimpleName());
}
 
Example 14
Source File: AdapterHolderWriter.java    From Ollie with Apache License 2.0 5 votes vote down vote up
private void writeStaticInitializations(JavaWriter writer) throws IOException {
	writer.beginInitializer(true);

	List<MigrationElement> migrations = Lists.newArrayList(registry.getMigrationElements());
	if (!migrations.isEmpty()) {
		Collections.sort(migrations);
		for (MigrationElement migration : migrations) {
			writer.emitStatement("MIGRATIONS.add(new %s())",
					migration.getQualifiedName());
		}
		writer.emitEmptyLine();
	}

	List<ModelAdapterElement> modelAdapters = Lists.newArrayList(registry.getModelAdapterElements());
	if (!modelAdapters.isEmpty()) {
		Collections.sort(modelAdapters);
		for (ModelAdapterElement modelAdapter : modelAdapters) {
			writer.emitStatement("MODEL_ADAPTERS.put(%s.class, new %s())",
					modelAdapter.getModelQualifiedName(),
					modelAdapter.getQualifiedName());
		}
		writer.emitEmptyLine();
	}

	List<TypeAdapterElement> typeAdapters = Lists.newArrayList(registry.getTypeAdapterElements());
	if (!typeAdapters.isEmpty()) {
		Collections.sort(typeAdapters);
		for (TypeAdapterElement typeAdapter : typeAdapters) {
			writer.emitStatement("TYPE_ADAPTERS.put(%s.class, new %s())",
					typeAdapter.getDeserializedQualifiedName(),
					typeAdapter.getQualifiedName());
		}
	}

	writer.endInitializer();
	writer.emitEmptyLine();
}
 
Example 15
Source File: TableObject.java    From shillelagh with Apache License 2.0 4 votes vote down vote up
/** Creates the function for inserting a new value into the database */
private void emitInsert(JavaWriter javaWriter) throws IOException {
  logger.d("emitInsert");
  String tableName = getTableName();
  javaWriter.beginMethod("void", $$INSERT_OBJECT_FUNCTION, EnumSet.of(PUBLIC, STATIC),
      getTargetClass(), "element", "SQLiteDatabase", "db")
      .emitStatement("ContentValues values = new ContentValues()");
  List<TableColumn> childColumns = Lists.newLinkedList();
  for (TableColumn column : columns) {
    String columnName = column.getColumnName();
    String memberName = column.getMemberName();
    if (column.isBlob() && !column.isByteArray()) {
      javaWriter.emitStatement("values.put(\"%s\", %s(element.%s))", columnName,
          SERIALIZE_FUNCTION, memberName);
    } else if (column.isOneToOne()) {
      javaWriter.emitStatement("%s%s.%s(element.%s, db)", column.getType(), $$SUFFIX,
          INSERT_ONE_TO_ONE, column.getColumnName())
          .emitStatement("values.put(\"%s\", %s%s.%s(element.%s))", columnName, column.getType(),
              $$SUFFIX, GET_ID_FUNCTION, memberName);
    } else if (column.isDate()) {
      javaWriter.emitStatement("values.put(\"%s\", element.%s.getTime())", columnName,
          memberName);
    } else if (column.isOneToMany()) {
      childColumns.add(column);
    } else if (!column.isOneToManyChild()) {
      javaWriter.emitStatement("values.put(\"%s\", element.%s)", columnName, memberName);
    }
  }
  javaWriter.emitStatement("db.insert(\"%s\", null, values)", tableName);

  if (!childColumns.isEmpty()) {
    javaWriter.emitStatement("long id = DatabaseUtils.longForQuery(db, "
        + "\"SELECT ROWID FROM %s ORDER BY ROWID DESC LIMIT 1\", null)", tableName);
  }
  for (TableColumn childColumn : childColumns) {
    javaWriter.emitStatement("%s%s.%s(id, element.%s, db)", childColumn.getType(), $$SUFFIX,
        PARENT_INSERT_FUNCTION, childColumn.getMemberName());
  }

  javaWriter.endMethod();
}
 
Example 16
Source File: StringFogClassGenerator.java    From StringFog with Apache License 2.0 4 votes vote down vote up
public static void generate(File outputFile, String packageName, String className, String key,
                            String implementation) throws IOException {
    File outputDir = outputFile.getParentFile();
    if (!outputDir.exists() && !outputDir.mkdirs()) {
        throw new IOException("Can not mkdirs the dir: " + outputDir);
    }

    int lastIndexOfDot = implementation.lastIndexOf(".");
    String implementationSimpleClassName = lastIndexOfDot == -1 ? implementation :
            implementation.substring(implementation.lastIndexOf(".") + 1);

    JavaWriter javaWriter = new JavaWriter(new FileWriter(outputFile));
    javaWriter.emitPackage(packageName);
    javaWriter.emitEmptyLine();
    javaWriter.emitImports(implementation);
    javaWriter.emitEmptyLine();

    javaWriter.emitJavadoc("Generated code from StringFog gradle plugin. Do not modify!");
    javaWriter.beginType(className, "class", ImmutableSet.of(Modifier.PUBLIC,
            Modifier.FINAL));

    javaWriter.emitField(implementationSimpleClassName, "IMPL",
            ImmutableSet.of(Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL),
            "new " + implementationSimpleClassName + "()");

    javaWriter.emitEmptyLine();
    javaWriter.beginMethod(String.class.getSimpleName(), "encrypt",
            ImmutableSet.of(Modifier.PUBLIC, Modifier.STATIC),
            String.class.getSimpleName(), "value");
    javaWriter.emitStatement("return " + "IMPL.encrypt(value, \"" + key + "\")");
    javaWriter.endMethod();

    javaWriter.emitEmptyLine();
    javaWriter.beginMethod(String.class.getSimpleName(), "decrypt",
            ImmutableSet.of(Modifier.PUBLIC, Modifier.STATIC),
            String.class.getSimpleName(), "value");
    javaWriter.emitStatement("return " + "IMPL.decrypt(value, \"" + key + "\")");
    javaWriter.endMethod();

    javaWriter.emitEmptyLine();
    javaWriter.beginMethod(boolean.class.getSimpleName(), "overflow",
            ImmutableSet.of(Modifier.PUBLIC, Modifier.STATIC),
            String.class.getSimpleName(), "value");
    javaWriter.emitStatement("return " + "IMPL.overflow(value, \"" + key + "\")");
    javaWriter.endMethod();

    javaWriter.emitEmptyLine();
    javaWriter.endType();

    javaWriter.close();
}
 
Example 17
Source File: ModelAdapterWriter.java    From Ollie with Apache License 2.0 4 votes vote down vote up
private void writeGetModelType(JavaWriter writer, String modelSimpleName) throws IOException {
	writer.beginMethod("Class<? extends Model>", "getModelType", MODIFIERS);
	writer.emitStatement("return " + modelSimpleName + ".class");
	writer.endMethod();
	writer.emitEmptyLine();
}
 
Example 18
Source File: AdapterHolderWriter.java    From Ollie with Apache License 2.0 4 votes vote down vote up
private void writeGetTypeAdpater(JavaWriter writer) throws IOException {
	writer.beginMethod("<D, S> TypeAdapter<D, S>", "getTypeAdapter", METHOD_MODIFIERS, "Class<D>", "cls");
	writer.emitStatement("return TYPE_ADAPTERS.get(cls)");
	writer.endMethod();
}
 
Example 19
Source File: TableObject.java    From shillelagh with Apache License 2.0 4 votes vote down vote up
private void emitSingleMap(JavaWriter javaWriter) throws IOException {
  String targetClass = getTargetClass();
  javaWriter.beginMethod(targetClass, $$MAP_SINGLE_FUNCTION, EnumSet.of(PUBLIC, STATIC), "Cursor",
      "cursor", "SQLiteDatabase", "db")
      .emitStatement("%s tableObject = %s(%s.class)", targetClass, NEW_INSTANCE_FUNCTION,
          getTargetClass())
      .emitStatement("tableObject.%s = cursor.getLong(cursor.getColumnIndex(\"%s\"))",
          idColumn.getMemberName(), idColumn.getColumnName());

  for (TableColumn column : columns) {
    String columnName = column.getColumnName();
    String columnMember = column.getMemberName();
    if (column.isDate()) {
      javaWriter.emitStatement(
          "tableObject.%s = new Date(cursor.%s(cursor.getColumnIndex(\"%s\")))", columnMember,
          CursorFunctions.get(long.class.getName()), columnName);
    } else if (column.isOneToOne()) {
      javaWriter.emitStatement(
          "tableObject.%s = %s%s.%s(cursor.%s(cursor.getColumnIndex(\"%s\")), db)", columnMember,
          column.getType(), $$SUFFIX, $$GET_OBJECT_BY_ID,
          CursorFunctions.get(Long.class.getName()), columnName);
    } else if (column.isBoolean()) {
      javaWriter.emitStatement("tableObject.%s = cursor.%s(cursor.getColumnIndex(\"%s\")) == 1",
          columnMember, CursorFunctions.get(column.getType()), columnName);
    } else if (column.getSqlType() == SqliteType.BLOB) {
      if (column.isByteArray()) {
        javaWriter.emitStatement("tableObject.%s = cursor.%s(cursor.getColumnIndex(\"%s\"))",
            columnMember, CursorFunctions.get(column.getType()), columnName);
      } else {
        javaWriter.emitStatement("tableObject.%s = %s(cursor.%s(cursor.getColumnIndex(\"%s\")));",
            columnMember, DESERIALIZE_FUNCTION, CursorFunctions.get(column.getType()),
            columnName);
      }
    } else if (column.isOneToMany()) {
      javaWriter.emitStatement("Cursor childCursor = %s%s.%s(db)", column.getType(), $$SUFFIX,
          SELECT_ALL_FUNCTION)
          .emitStatement("tableObject.%s = %s%s.%s(childCursor, db)", column.getMemberName(),
              column.getType(), $$SUFFIX, $$MAP_OBJECT_FUNCTION)
          .emitStatement("childCursor.close()");
    } else if (column.isOneToManyChild()) {
      // TODO Skip and have custom mapping?
    } else {
      javaWriter.emitStatement("tableObject.%s = cursor.%s(cursor.getColumnIndex(\"%s\"))",
          columnMember, CursorFunctions.get(column.getType()), columnName);
    }
  }

  javaWriter.emitStatement("return tableObject").endMethod();
}
 
Example 20
Source File: SettingsBuilder.java    From revolution-irc with GNU General Public License v3.0 4 votes vote down vote up
private static void writeSimpleGetterFuncBody(JavaWriter writer, String type, String prefName,
                                              String defValue) throws IOException {
    writer.emitStatement("return getPreferences().%s(%s, %s)",
            type, prefName, defValue);
}