package xapi.dev.ui;
import com.github.javaparser.ast.expr.UiAttrExpr;
import com.github.javaparser.ast.expr.UiContainerExpr;
import xapi.dev.processor.AnnotationTools;
import xapi.dev.ui.ContainerMetadata.MetadataRoot;
import xapi.ui.api.Ui;
import javax.lang.model.element.TypeElement;
/**
* @author James X. Nelson (james@wetheinter.net)
* Created on 5/4/16.
*/
public interface UiGeneratorService {
ComponentBuffer runPhase(String id, ComponentBuffer component);
UiComponentGenerator getComponentGenerator(UiContainerExpr container, ContainerMetadata metadata);
UiFeatureGenerator getFeatureGenerator(UiAttrExpr container, UiComponentGenerator componentGenerator);
ContainerMetadata createMetadata(MetadataRoot root, UiContainerExpr n);
UiGeneratorVisitor createVisitor(ContainerMetadata metadata);
ComponentBuffer initialize(AnnotationTools service, TypeElement type, Ui ui, UiContainerExpr container);
void finish();
}