All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.grosner.processor.writer.DeleteWriter Maven / Gradle / Ivy

The newest version!
package com.grosner.processor.writer;

import com.google.common.collect.Sets;
import com.grosner.processor.definition.TableDefinition;
import com.grosner.processor.utils.ModelUtils;
import com.grosner.processor.utils.WriterUtils;
import com.squareup.javawriter.JavaWriter;

import javax.lang.model.element.Modifier;
import java.io.IOException;

/**
 * Author: andrewgrosner
 * Contributors: { }
 * Description:
 */
public class DeleteWriter implements FlowWriter {

    private final boolean isModelContainer;
    private TableDefinition tableDefinition;

    public DeleteWriter(TableDefinition tableDefinition, boolean isModelContainer) {
        this.isModelContainer = isModelContainer;
        this.tableDefinition = tableDefinition;
    }


    @Override
    public void write(JavaWriter javaWriter) throws IOException {
        javaWriter.emitEmptyLine();
        javaWriter.emitAnnotation(Override.class);
        WriterUtils.emitMethod(javaWriter, new FlowWriter() {
            @Override
            public void write(JavaWriter javaWriter) throws IOException {
                javaWriter.emitStatement("%1s.delete(%1s, this, %1s)",
                        ModelUtils.getUtils(isModelContainer),
                        ModelUtils.getVariable(isModelContainer), "async");
            }
        }, "void", "delete", Sets.newHashSet(Modifier.PUBLIC),
                "boolean", "async",
                ModelUtils.getParameter(isModelContainer, tableDefinition.getModelClassName()),
                ModelUtils.getVariable(isModelContainer));
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy