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

The following examples show how to use com.squareup.javawriter.JavaWriter#close() . 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
public void generateParceler() throws IOException {

        JavaFileObject sourceFile = processingEnv.getFiler().createSourceFile(parcelerName);
        JavaWriter writer = new JavaWriter(sourceFile.openWriter());

        writer.emitPackage(processingEnv.getElementUtils().getPackageOf(
                elementToParcel).getQualifiedName().toString());

        writer.emitImports(getImports());
        writer.emitEmptyLine();
        elementCompressedName = writer.compressType(elementToParcel.getQualifiedName().toString());
        writer.beginType(parcelerName, "class", EnumSet.of(Modifier.PUBLIC, Modifier.FINAL), null,
                         JavaWriter.type(Parceler.class, elementCompressedName));
        writer.emitEmptyLine();

        writeWriteToParcelMethod(writer);
        writer.emitEmptyLine();
        writeReadFromParcelMethod(writer);
        writer.emitEmptyLine();
        writeNewArrayMethod(writer);
        writer.emitEmptyLine();

        writer.endType();
        writer.close();
    }
 
Example 2
Source File: MementoProcessor.java    From memento with Apache License 2.0 6 votes vote down vote up
private void generateMemento(Set<? extends Element> elements, Element hostActivity, TypeElement activityType)
        throws IOException {
    PackageElement packageElement = processingEnv.getElementUtils().getPackageOf(hostActivity);
    final String simpleClassName = hostActivity.getSimpleName() + "$Memento";
    final String qualifiedClassName = packageElement.getQualifiedName() + "." + simpleClassName;

    log("writing class " + qualifiedClassName);
    JavaFileObject sourceFile = processingEnv.getFiler().createSourceFile(
            qualifiedClassName, elements.toArray(new Element[elements.size()]));

    JavaWriter writer = new JavaWriter(sourceFile.openWriter());

    emitClassHeader(packageElement, activityType, writer);

    writer.beginType(qualifiedClassName, "class", EnumSet.of(Modifier.PUBLIC, Modifier.FINAL),
            "Fragment", LIB_PACKAGE + ".MementoMethods");

    emitFields(elements, writer);
    emitConstructor(simpleClassName, writer);
    emitReaderMethod(elements, hostActivity, writer);
    emitWriterMethod(elements, hostActivity, writer);

    writer.endType();
    writer.close();
}
 
Example 3
Source File: DialogNewClass.java    From javaide with GNU General Public License v3.0 4 votes vote down vote up
private void createNewClass() {
    String className = mEditName.getText().toString();
    if (className.isEmpty()) {
        mEditName.setError(getString(R.string.enter_name));
        return;
    }
    if (!className.matches(PatternFactory.IDENTIFIER.pattern())) {
        mEditName.setError(getString(R.string.invalid_name));
        return;
    }
    String currentPackage = mPackage.getText().toString();
    if (currentPackage.trim().isEmpty()) {
        mPackage.setError(getString(R.string.enter_package));
        return;
    }
    if (!currentPackage.matches(PatternFactory.PACKAGE_NAME.pattern())) {
        mPackage.setError(getString(R.string.invalid_name));
        return;
    }

    Set<javax.lang.model.element.Modifier> modifiers = new ArraySet<>();
    if ((mVisibility.getCheckedRadioButtonId() == R.id.rad_public)) {
        modifiers.add(javax.lang.model.element.Modifier.PUBLIC);
    }

    int checkedRadioButtonId = mModifiers.getCheckedRadioButtonId();
    if (checkedRadioButtonId == R.id.rad_abstract) {
        modifiers.add(javax.lang.model.element.Modifier.ABSTRACT);
    } else if (checkedRadioButtonId == R.id.rad_final) {
        modifiers.add(javax.lang.model.element.Modifier.FINAL);
    }
    String kind = mKind.getSelectedItem().toString();
    try {
        StringWriter out = new StringWriter();
        JavaWriter writer = new JavaWriter(out);
        writer.emitPackage(currentPackage)
                .beginType(className, kind, modifiers)
                .emitEmptyLine();
        if (mCreateMainFunc.isChecked()) {
            //public static void main
            modifiers.clear();
            modifiers.add(Modifier.PUBLIC);
            modifiers.add(Modifier.STATIC);
            writer.beginMethod("void", "main", modifiers, "String[]", "args")
                    .emitEmptyLine()
                    .endMethod()
                    .emitEmptyLine();
        }
        writer.endType();
        writer.close();

        String content = out.toString();
        File clazz = project.createClass(currentPackage, className, content);
        if (listener != null) {
            listener.onFileCreated(clazz);
            Toast.makeText(getContext(), "success!", Toast.LENGTH_SHORT).show();
            this.dismiss();
        }
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(getContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
    }

}
 
Example 4
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();
}