/* * Copyright 2014 cruxframework.org. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package org.cruxframework.crux.core.rebind.context; import org.cruxframework.crux.core.client.Legacy; import org.cruxframework.crux.core.declarativeui.screen.ScreenLoader; import org.cruxframework.crux.core.rebind.context.loader.ScreenRebindLoader; import org.cruxframework.crux.core.rebind.context.scanner.ControllerScanner; import org.cruxframework.crux.core.rebind.context.scanner.ConverterScanner; import org.cruxframework.crux.core.rebind.context.scanner.DataObjectScanner; import org.cruxframework.crux.core.rebind.context.scanner.DataSourceScanner; import org.cruxframework.crux.core.rebind.context.scanner.FormatterScanner; import org.cruxframework.crux.core.rebind.context.scanner.MessageScanner; import org.cruxframework.crux.core.rebind.context.scanner.ResourceScanner; import com.google.gwt.core.ext.GeneratorContext; import com.google.gwt.core.ext.TreeLogger; import com.google.gwt.dev.cfg.ModuleDef; /** * @author Thiago da Rosa de Bustamante * */ public class RebindContext { private ControllerScanner controllersScanner; private ConverterScanner converterScanner; private DataObjectScanner dataObjectScanner; private DataSourceScanner dataSourceScanner; private FormatterScanner formatterScanner; private MessageScanner messageScanner; private GeneratorContext generatorContext; private JClassScanner jClassScanner; private TreeLogger logger; private ResourceScanner resourcesScanner; private ScreenLoader screenLoader; private ModuleDef currentModule; public RebindContext(GeneratorContext generatorContext, TreeLogger logger) { this.generatorContext = generatorContext; this.logger = logger; } public JClassScanner getClassScanner() { if (jClassScanner == null) { jClassScanner = new JClassScanner(generatorContext); } return jClassScanner; } public MessageScanner getMessages() { if (messageScanner == null) { messageScanner = new MessageScanner(getClassScanner()); } return messageScanner; } public ControllerScanner getControllers() { if (controllersScanner == null) { controllersScanner = new ControllerScanner(getClassScanner()); } return controllersScanner; } public ConverterScanner getConverters() { if (converterScanner == null) { converterScanner = new ConverterScanner(getClassScanner()); } return converterScanner; } @Deprecated @Legacy public DataSourceScanner getDataSources() { if (dataSourceScanner == null) { dataSourceScanner = new DataSourceScanner(getClassScanner()); } return dataSourceScanner; } @Deprecated @Legacy public FormatterScanner getFormatters() { if (formatterScanner == null) { formatterScanner = new FormatterScanner(getClassScanner()); } return formatterScanner; } public DataObjectScanner getDataObjects() { if (dataObjectScanner == null) { dataObjectScanner = new DataObjectScanner(getClassScanner()); } return dataObjectScanner; } public GeneratorContext getGeneratorContext() { return generatorContext; } public TreeLogger getLogger() { return logger; } public ResourceScanner getResources() { if (resourcesScanner == null) { resourcesScanner = new ResourceScanner(getClassScanner()); } return resourcesScanner; } public ScreenLoader getScreenLoader() { if (screenLoader == null) { screenLoader = new ScreenRebindLoader(this); } return screenLoader; } public ModuleDef getCurrentModule() { if (currentModule == null) { currentModule = ContextUtil.getCurrentModule(generatorContext); } return currentModule; } }