
com.grosner.processor.handler.FlowManagerHandler Maven / Gradle / Ivy
The newest version!
package com.grosner.processor.handler;
import com.google.common.collect.Sets;
import com.grosner.dbflow.annotation.Database;
import com.grosner.processor.Classes;
import com.grosner.processor.model.ProcessorManager;
import com.grosner.processor.writer.DatabaseWriter;
import com.grosner.processor.writer.FlowManagerHolderWriter;
import com.squareup.javawriter.JavaWriter;
import javax.annotation.processing.RoundEnvironment;
import javax.lang.model.element.Element;
import javax.lang.model.element.Modifier;
import java.io.IOException;
import java.util.Set;
/**
* Author: andrewgrosner
* Contributors: { }
* Description:
*/
public class FlowManagerHandler extends BaseContainerHandler {
public static final Set FIELD_MODIFIERS = Sets.newHashSet(Modifier.PRIVATE, Modifier.FINAL);
public static final Set FIELD_MODIFIERS_STATIC = Sets.newHashSet(Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL);
public static final Set METHOD_MODIFIERS = Sets.newHashSet(Modifier.PUBLIC, Modifier.FINAL);
public static final Set METHOD_MODIFIERS_STATIC = Sets.newHashSet(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL);
public static final String MODEL_FIELD_NAME = "mModels";
public static final String MODEL_ADAPTER_MAP_FIELD_NAME = "mModelAdapters";
public static final String MODEL_CONTAINER_ADAPTER_MAP_FIELD_NAME = "mModelContainerAdapters";
public static final String TYPE_CONVERTER_MAP_FIELD_NAME = "mTypeConverters";
public static final String MODEL_VIEW_FIELD_NAME = "mModelViews";
public static final String FLOW_SQL_LITE_OPEN_HELPER_FIELD_NAME = "mHelper";
public static final String IS_RESETTING = "isResetting";
public static final String MANAGER_MAP_NAME = "mManagerMap";
public static final String MANAGER_NAME_MAP = "mManagerNameMap";
public static final String MIGRATION_FIELD_NAME = "mMigrationMap";
public static final String MODEL_VIEW_ADAPTER_MAP_FIELD_NAME = "mModelViewAdapterMap";
@Override
public void handle(ProcessorManager processorManager, RoundEnvironment roundEnvironment) {
super.handle(processorManager, roundEnvironment);
if (roundEnvironment.processingOver()) {
try {
JavaWriter staticFlowManager = new JavaWriter(processorManager.getProcessingEnvironment().getFiler()
.createSourceFile(Classes.FLOW_MANAGER_PACKAGE + "." + Classes.DATABASE_HOLDER_STATIC_CLASS_NAME).openWriter());
new FlowManagerHolderWriter(processorManager).write(staticFlowManager);
staticFlowManager.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
protected Class getAnnotationClass() {
return Database.class;
}
@Override
protected void onProcessElement(ProcessorManager processorManager, Element element) {
try {
DatabaseWriter managerWriter = new DatabaseWriter(processorManager, element);
JavaWriter javaWriter = new JavaWriter(processorManager.getProcessingEnvironment().getFiler()
.createSourceFile(managerWriter.getSourceFileName()).openWriter());
managerWriter.write(javaWriter);
javaWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy