/* * (c) Copyright 2010-2011 AgileBirds * * This file is part of OpenFlexo. * * OpenFlexo is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * OpenFlexo is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with OpenFlexo. If not, see <http://www.gnu.org/licenses/>. * */ package org.openflexo.generator; import java.util.Vector; import java.util.logging.Logger; import javax.annotation.Nonnull; import org.apache.cayenne.access.SQLGenerator; import org.openflexo.foundation.CodeType; import org.openflexo.foundation.FlexoModelObject; import org.openflexo.foundation.cg.CGRepository; import org.openflexo.foundation.rm.cg.CGRepositoryFileResource; import org.openflexo.generator.utils.AntUserFrameworks; import org.openflexo.generator.utils.ApplicationConfGenerator; import org.openflexo.generator.utils.ApplicationConfProdGenerator; import org.openflexo.generator.utils.BuildPropertiesGenerator; import org.openflexo.generator.utils.BuildXmlGenerator; import org.openflexo.generator.utils.ConfigGenerator; import org.openflexo.generator.utils.ConstantsGenerator; import org.openflexo.generator.utils.CustomComponentGenerator; import org.openflexo.generator.utils.DefaultApplicationConfGenerator; import org.openflexo.generator.utils.DirectActionGenerator; import org.openflexo.generator.utils.DotClasspathGenerator; import org.openflexo.generator.utils.DotProjectGenerator; import org.openflexo.generator.utils.HeaderFooterGenerator; import org.openflexo.generator.utils.HelpPopupGenerator; import org.openflexo.generator.utils.LocalizedStringGenerator; import org.openflexo.generator.utils.PopupHeaderFooterGenerator; import org.openflexo.generator.utils.ResourceGenerator; import org.openflexo.generator.utils.UserServiceGenerator; import org.openflexo.generator.utils.UtilGenerator; import org.openflexo.generator.utils.WOApplicationGenerator; import org.openflexo.generator.utils.WODirectActionGenerator; import org.openflexo.generator.utils.WOMainGenerator; import org.openflexo.generator.utils.WOSessionGenerator; import org.openflexo.logging.FlexoLogger; /** * @author gpolet * */ public class UtilsGenerator extends MetaGenerator<FlexoModelObject, CGRepository> { private static final Logger logger = FlexoLogger.getLogger(ResourceGenerator.class.getPackage().getName()); private HeaderFooterGenerator headerFooterGenerator; private DirectActionGenerator directActionGenerator; private ConfigGenerator configGenerator; private ConstantsGenerator constantsGenerator; private UtilGenerator utilGenerator; private DefaultApplicationConfGenerator defaultApplicationConfGenerator; private ApplicationConfGenerator applicationConfGenerator; private ApplicationConfProdGenerator applicationConfProdGenerator; private DotClasspathGenerator dotClasspathGenerator; private DotProjectGenerator dotProjectGenerator; private BuildXmlGenerator buildXmlGenerator; private CustomComponentGenerator customComponentGenerator; private WOApplicationGenerator woApplicationGenerator; private WODirectActionGenerator woDirectActionGenerator; private WOMainGenerator woMainGenerator; private HelpPopupGenerator helpPopupGenerator; private LocalizedStringGenerator localizedStringGenerator; private WOSessionGenerator woSessionGenerator; private UserServiceGenerator userServiceGenerator; private SQLGenerator sqlGenerator; private SQLGenerator sqlGenerator2; private AntUserFrameworks antUserFrameworksGenerator; private BuildPropertiesGenerator buildPropertiesGenerator; private PopupHeaderFooterGenerator popupHeaderFooterGenerator; @Override public Logger getGeneratorLogger() { return logger; } public UtilsGenerator(@Nonnull ProjectGenerator projectGenerator) { super(projectGenerator, null); headerFooterGenerator = new HeaderFooterGenerator(projectGenerator); popupHeaderFooterGenerator = new PopupHeaderFooterGenerator(projectGenerator); directActionGenerator = new DirectActionGenerator(projectGenerator); configGenerator = new ConfigGenerator(projectGenerator); utilGenerator = new UtilGenerator(projectGenerator); defaultApplicationConfGenerator = new DefaultApplicationConfGenerator(projectGenerator); applicationConfGenerator = new ApplicationConfGenerator(projectGenerator); applicationConfProdGenerator = new ApplicationConfProdGenerator(projectGenerator); dotClasspathGenerator = new DotClasspathGenerator(projectGenerator); dotProjectGenerator = new DotProjectGenerator(projectGenerator); buildXmlGenerator = new BuildXmlGenerator(projectGenerator); buildPropertiesGenerator = new BuildPropertiesGenerator(projectGenerator); customComponentGenerator = new CustomComponentGenerator(projectGenerator); woApplicationGenerator = new WOApplicationGenerator(projectGenerator); woDirectActionGenerator = new WODirectActionGenerator(projectGenerator); woMainGenerator = new WOMainGenerator(projectGenerator); if (projectGenerator.getTarget() == CodeType.PROTOTYPE && !projectGenerator.getRepository().includeReader()) { helpPopupGenerator = new HelpPopupGenerator(projectGenerator); } localizedStringGenerator = new LocalizedStringGenerator(projectGenerator); woSessionGenerator = new WOSessionGenerator(projectGenerator); userServiceGenerator = new UserServiceGenerator(projectGenerator); constantsGenerator = new ConstantsGenerator(projectGenerator); antUserFrameworksGenerator = new AntUserFrameworks(projectGenerator); if (projectGenerator.getTarget() != CodeType.PROTOTYPE) { sqlGenerator = new SQLGenerator(projectGenerator, false); sqlGenerator2 = new SQLGenerator(projectGenerator, true); } } @Override public void buildResourcesAndSetGenerators(CGRepository repository, Vector<CGRepositoryFileResource> resources) { resetSecondaryProgressWindow(25); headerFooterGenerator.buildResourcesAndSetGenerators(repository, resources); // OK popupHeaderFooterGenerator.buildResourcesAndSetGenerators(repository, resources); // OK configGenerator.buildResourcesAndSetGenerators(repository, resources); // OK utilGenerator.buildResourcesAndSetGenerators(repository, resources); // A voir directActionGenerator.buildResourcesAndSetGenerators(repository, resources); // A voir defaultApplicationConfGenerator.buildResourcesAndSetGenerators(repository, resources); applicationConfGenerator.buildResourcesAndSetGenerators(repository, resources); applicationConfProdGenerator.buildResourcesAndSetGenerators(repository, resources); dotClasspathGenerator.buildResourcesAndSetGenerators(repository, resources); dotProjectGenerator.buildResourcesAndSetGenerators(repository, resources); buildXmlGenerator.buildResourcesAndSetGenerators(repository, resources); customComponentGenerator.buildResourcesAndSetGenerators(repository, resources); woApplicationGenerator.buildResourcesAndSetGenerators(repository, resources); // A voir woDirectActionGenerator.buildResourcesAndSetGenerators(repository, resources); // A voir woMainGenerator.buildResourcesAndSetGenerators(repository, resources); // OK if (projectGenerator.getTarget() == CodeType.PROTOTYPE && !projectGenerator.getRepository().includeReader() && helpPopupGenerator != null) { helpPopupGenerator.buildResourcesAndSetGenerators(repository, resources); // OK } localizedStringGenerator.buildResourcesAndSetGenerators(repository, resources); // OK woSessionGenerator.buildResourcesAndSetGenerators(repository, resources); // A voir userServiceGenerator.buildResourcesAndSetGenerators(repository, resources); // A voir constantsGenerator.buildResourcesAndSetGenerators(repository, resources); // A voir??? antUserFrameworksGenerator.buildResourcesAndSetGenerators(repository, resources); // A voir??? buildPropertiesGenerator.buildResourcesAndSetGenerators(repository, resources); if (projectGenerator.getTarget() != CodeType.PROTOTYPE) { if (sqlGenerator == null) { sqlGenerator = new SQLGenerator((ProjectGenerator) projectGenerator, false); } sqlGenerator.buildResourcesAndSetGenerators(repository, resources); // A voir if (sqlGenerator2 == null) { sqlGenerator2 = new SQLGenerator((ProjectGenerator) projectGenerator, true); } sqlGenerator2.buildResourcesAndSetGenerators(repository, resources); // A voir } } public DirectActionGenerator getDirectActionGenerator() { return directActionGenerator; } public AntUserFrameworks getAntUserFrameworksGenerator() { return antUserFrameworksGenerator; } public ApplicationConfGenerator getApplicationConfGenerator() { return applicationConfGenerator; } public BuildXmlGenerator getBuildXmlGenerator() { return buildXmlGenerator; } public ConfigGenerator getConfigGenerator() { return configGenerator; } public ConstantsGenerator getConstantsGenerator() { return constantsGenerator; } public CustomComponentGenerator getCustomComponentGenerator() { return customComponentGenerator; } public DefaultApplicationConfGenerator getDefaultApplicationConfGenerator() { return defaultApplicationConfGenerator; } public DotClasspathGenerator getDotClasspathGenerator() { return dotClasspathGenerator; } public DotProjectGenerator getDotProjectGenerator() { return dotProjectGenerator; } public HeaderFooterGenerator getHeaderFooterGenerator() { return headerFooterGenerator; } public HelpPopupGenerator getHelpPopupGenerator() { return helpPopupGenerator; } public LocalizedStringGenerator getLocalizedStringGenerator() { return localizedStringGenerator; } public SQLGenerator getSqlGenerator() { return sqlGenerator; } public SQLGenerator getSqlGenerator2() { return sqlGenerator2; } public UserServiceGenerator getUserServiceGenerator() { return userServiceGenerator; } public UtilGenerator getUtilGenerator() { return utilGenerator; } public WOApplicationGenerator getWoApplicationGenerator() { return woApplicationGenerator; } public WODirectActionGenerator getWoDirectActionGenerator() { return woDirectActionGenerator; } public WOMainGenerator getWoMainGenerator() { return woMainGenerator; } public WOSessionGenerator getWoSessionGenerator() { return woSessionGenerator; } }