Search in sources :

Example 1 with Mvp4gConfiguration

use of com.mvp4g.rebind.config.Mvp4gConfiguration in project mvp4g by mvp4g.

the class Mvp4gGenerator method create.

private RebindResult create(TreeLogger logger, GeneratorContext context, String moduleName) throws UnableToCompleteException {
    Date start = new Date();
    String generatedClassQualifiedName;
    try {
        TypeOracle typeOracle = context.getTypeOracle();
        JClassType module = typeOracle.findType(moduleName);
        if (module == null) {
            logger.log(TreeLogger.ERROR, "Unable to find metadata for type '" + moduleName + "'", null);
            throw new UnableToCompleteException();
        }
        @SuppressWarnings("unchecked") Map<Class<? extends Annotation>, List<JClassType>> scanResult = AnnotationScanner.scan(logger, typeOracle, new Class[] { Presenter.class, History.class, Events.class, Service.class, EventHandler.class });
        Mvp4gConfiguration configuration = new Mvp4gConfiguration(logger, context);
        String suffix = "Impl" + configuration.load(module, scanResult);
        generatedClassQualifiedName = module.getParameterizedQualifiedSourceName() + suffix;
        String packageName = module.getPackage().getName();
        String originalClassName = module.getSimpleSourceName();
        String generatedClassName = originalClassName + suffix;
        // check weather there is a usual version or not.
        if (checkAlreadyGenerated(logger, context, configuration)) {
            // Log
            logger.log(TreeLogger.INFO, "Reuse already generated files", null);
            // stop generating
            return new RebindResult(RebindMode.USE_EXISTING, packageName + "." + generatedClassName);
        }
        // Log
        logger.log(TreeLogger.INFO, "Start generate files ... ", null);
        // No, there is non. Create a new one.
        SourceWriter sourceWriter = getSourceWriter(logger, context, module, packageName, generatedClassName);
        if (sourceWriter != null) {
            logger.log(TreeLogger.INFO, "Generating source for " + generatedClassQualifiedName + " ", null);
            Mvp4gConfigurationFileWriter writer = new Mvp4gConfigurationFileWriter(sourceWriter, configuration);
            writer.writeConf();
            sourceWriter.commit(logger);
        } else {
            // don't expect this to occur, but could happen if an instance was
            // recently generated but not yet committed
            new RebindResult(RebindMode.USE_EXISTING, generatedClassQualifiedName);
        }
        Date end = new Date();
        logger.log(TreeLogger.INFO, "Mvp4g Compilation: " + (end.getTime() - start.getTime()) + "ms.");
        return new RebindResult(RebindMode.USE_ALL_NEW_WITH_NO_CACHING, packageName + "." + generatedClassName);
    } catch (InvalidMvp4gConfigurationException e) {
        logger.log(TreeLogger.ERROR, e.getMessage(), e);
        throw new UnableToCompleteException();
    }
}
Also used : Mvp4gConfiguration(com.mvp4g.rebind.config.Mvp4gConfiguration) InvalidMvp4gConfigurationException(com.mvp4g.rebind.exception.InvalidMvp4gConfigurationException) SourceWriter(com.google.gwt.user.rebind.SourceWriter) Date(java.util.Date) Annotation(java.lang.annotation.Annotation) JClassType(com.google.gwt.core.ext.typeinfo.JClassType) TypeOracle(com.google.gwt.core.ext.typeinfo.TypeOracle) UnableToCompleteException(com.google.gwt.core.ext.UnableToCompleteException) List(java.util.List) RebindResult(com.google.gwt.core.ext.RebindResult)

Example 2 with Mvp4gConfiguration

use of com.mvp4g.rebind.config.Mvp4gConfiguration in project mvp4g by mvp4g.

the class AbstractMvp4gAnnotationLoaderTest method setUp.

@Before
public void setUp() {
    GeneratorContextStub context = new GeneratorContextStub();
    oracle = context.getTypeOracleStub();
    configuration = new Mvp4gConfiguration(null, context);
    loader = createLoader();
}
Also used : Mvp4gConfiguration(com.mvp4g.rebind.config.Mvp4gConfiguration) GeneratorContextStub(com.mvp4g.rebind.test_tools.GeneratorContextStub) Before(org.junit.Before)

Example 3 with Mvp4gConfiguration

use of com.mvp4g.rebind.config.Mvp4gConfiguration in project mvp4g by mvp4g.

the class Mvp4gConfigurationFileReaderTest method setUp.

@Before
public void setUp() {
    sourceWriter = new SourceWriterTestStub();
    TreeLogger tl = new UnitTestTreeLogger.Builder().createLogger();
    configuration = new Mvp4gConfiguration(tl, new GeneratorContextStub());
    writer = new Mvp4gConfigurationFileWriter(sourceWriter, configuration);
    String eventBusInterface = EventBus.class.getName();
    String eventBusClass = BaseEventBus.class.getName();
    configuration.setEventBus(new EventBusElement(eventBusInterface, eventBusClass, false));
    ViewElement view = new ViewElement();
    view.setClassName(Object.class.getName());
    view.setName("startView");
    configuration.getViews().add(view);
    PresenterElement presenter = new PresenterElement();
    presenter.setClassName(SimplePresenter01.class.getCanonicalName());
    presenter.setName("startPresenter");
    presenter.setView("startView");
    configuration.getPresenters().add(presenter);
    StartElement start = new StartElement();
    start.setPresenter("startPresenter");
    configuration.setStart(start);
    GinModuleElement ginModule = new GinModuleElement();
    ginModule.setModules(new String[] { DefaultMvp4gGinModule.class.getCanonicalName() });
    configuration.setGinModule(ginModule);
    TypeOracleStub oracle = (TypeOracleStub) configuration.getOracle();
    configuration.setModule(oracle.addClass(Mvp4gModule.class));
}
Also used : TypeOracleStub(com.google.gwt.dev.javac.typemodel.TypeOracleStub) Mvp4gConfiguration(com.mvp4g.rebind.config.Mvp4gConfiguration) Mvp4gModule(com.mvp4g.client.Mvp4gModule) UnitTestTreeLogger(com.google.gwt.dev.util.UnitTestTreeLogger) TreeLogger(com.google.gwt.core.ext.TreeLogger) UnitTestTreeLogger(com.google.gwt.dev.util.UnitTestTreeLogger) DefaultMvp4gGinModule(com.mvp4g.client.DefaultMvp4gGinModule) SimplePresenter01(com.mvp4g.rebind.test_tools.annotation.presenters.SimplePresenter01) Before(org.junit.Before)

Example 4 with Mvp4gConfiguration

use of com.mvp4g.rebind.config.Mvp4gConfiguration in project mvp4g by mvp4g.

the class EventsAnnotationsLoaderTest method setUp.

@Before
public void setUp() {
    GeneratorContextStub context = new GeneratorContextStub();
    oracle = context.getTypeOracleStub();
    configuration = new Mvp4gConfiguration(null, context);
    configuration.setModule(oracle.addClass(Mvp4gModule.class));
    loader = new EventsAnnotationsLoader();
}
Also used : Mvp4gConfiguration(com.mvp4g.rebind.config.Mvp4gConfiguration) GeneratorContextStub(com.mvp4g.rebind.test_tools.GeneratorContextStub) Mvp4gModule(com.mvp4g.client.Mvp4gModule) Before(org.junit.Before)

Aggregations

Mvp4gConfiguration (com.mvp4g.rebind.config.Mvp4gConfiguration)4 Before (org.junit.Before)3 Mvp4gModule (com.mvp4g.client.Mvp4gModule)2 GeneratorContextStub (com.mvp4g.rebind.test_tools.GeneratorContextStub)2 RebindResult (com.google.gwt.core.ext.RebindResult)1 TreeLogger (com.google.gwt.core.ext.TreeLogger)1 UnableToCompleteException (com.google.gwt.core.ext.UnableToCompleteException)1 JClassType (com.google.gwt.core.ext.typeinfo.JClassType)1 TypeOracle (com.google.gwt.core.ext.typeinfo.TypeOracle)1 TypeOracleStub (com.google.gwt.dev.javac.typemodel.TypeOracleStub)1 UnitTestTreeLogger (com.google.gwt.dev.util.UnitTestTreeLogger)1 SourceWriter (com.google.gwt.user.rebind.SourceWriter)1 DefaultMvp4gGinModule (com.mvp4g.client.DefaultMvp4gGinModule)1 InvalidMvp4gConfigurationException (com.mvp4g.rebind.exception.InvalidMvp4gConfigurationException)1 SimplePresenter01 (com.mvp4g.rebind.test_tools.annotation.presenters.SimplePresenter01)1 Annotation (java.lang.annotation.Annotation)1 Date (java.util.Date)1 List (java.util.List)1