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

com.grosner.processor.handler.TableHandler Maven / Gradle / Ivy

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

import com.grosner.dbflow.annotation.Table;
import com.grosner.processor.definition.TableDefinition;
import com.grosner.processor.model.ProcessorManager;
import com.grosner.processor.validator.TableValidator;
import com.grosner.processor.validator.Validator;
import com.squareup.javawriter.JavaWriter;

import javax.annotation.processing.RoundEnvironment;
import javax.lang.model.element.Element;
import java.io.IOException;

/**
 * Author: andrewgrosner
 * Contributors: { }
 * Description:
 */
public class TableHandler extends BaseContainerHandler {

    private Validator definitionValidator;

    public TableHandler() {
        definitionValidator = new TableValidator();
    }

    @Override
    protected Class
getAnnotationClass() { return Table.class; } @Override protected void onProcessElement(ProcessorManager processorManager, Element element) { try { TableDefinition tableDefinition = new TableDefinition(processorManager, element); if(definitionValidator.validate(processorManager, tableDefinition)) { JavaWriter javaWriter = new JavaWriter(processorManager.getProcessingEnvironment().getFiler().createSourceFile(tableDefinition.getSourceFileName()).openWriter()); tableDefinition.write(javaWriter); javaWriter.close(); tableDefinition.writeAdapter(processorManager.getProcessingEnvironment()); processorManager.addTableDefinition(tableDefinition); } } catch (IOException e) { e.printStackTrace(); } } }