All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nuiton.eugene.Template Maven / Gradle / Ivy

There is a newer version: 3.0
Show newest version
/*
 * #%L
 * EUGene :: EUGene
 * 
 * $Id: Template.java 1124 2011-12-19 22:23:28Z tchemit $
 * $HeadURL: http://svn.nuiton.org/svn/eugene/tags/eugene-2.6.1/eugene/src/main/java/org/nuiton/eugene/Template.java $
 * %%
 * Copyright (C) 2004 - 2010 CodeLutin
 * %%
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as 
 * published by the Free Software Foundation, either version 3 of the 
 * License, or (at your option) any later version.
 * 
 * This program 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 Lesser Public License for more details.
 * 
 * You should have received a copy of the GNU General Lesser Public 
 * License along with this program.  If not, see
 * .
 * #L%
 */

package org.nuiton.eugene;

import org.apache.commons.lang3.StringUtils;
import org.nuiton.eugene.models.Model;
import org.nuiton.eugene.writer.WriterReport;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;

/**
 * Template. TODO javadoc
 * 

* Created: 5 août 2004 * * @author Cedric Pineau * @param Model associated to the generator (input model) */ public abstract class Template implements TemplateConfiguration { protected TemplateConfiguration configuration; protected List excludeTemplates; /** * List of package to allow generation. *

* If {@code null} or empty, generate all packages. */ protected List generatedPackages; /** Model */ protected M model; public abstract void applyTemplate(M model, File destDir) throws IOException; public TemplateConfiguration getConfiguration() { if (configuration == null) { configuration = new DefaultTemplateConfiguration(); } return configuration; } public void setConfiguration(TemplateConfiguration configuration) { this.configuration = configuration; } /** * @return {@code true} if must overwrite ouput * @deprecated since 2.0.2, prefer use the {@link #isOverwrite()} method */ @Deprecated public boolean getOverwrite() { return isOverwrite(); } @Override public boolean isOverwrite() { return getConfiguration().isOverwrite(); } @Override public boolean isVerbose() { return getConfiguration().isVerbose(); } @Override public String getEncoding() { return getConfiguration().getEncoding(); } @Override public ClassLoader getClassLoader() { return getConfiguration().getClassLoader(); } @Override public long getLastModifiedSource() { return getConfiguration().getLastModifiedSource(); } @Override public Properties getProperties() { return getConfiguration().getProperties(); } @Override public V getProperty(String key, Class type) { return getConfiguration().getProperty(key, type); } public String getProperty(String key) { return getConfiguration().getProperty(key); } @Override public WriterReport getWriterReport() { return getConfiguration().getWriterReport(); } @Override public void setProperty(String key, Object value) { getConfiguration().setProperty(key, value); if (PROP_GENERATED_PACKAGES.equals(key)) { // reset cache value generatedPackages = null; } else if (PROP_EXCLUDE_TEMPLATES.equals(key)) { // reset cache value excludeTemplates = null; } } protected List getGeneratedPackages() { if (generatedPackages == null) { generatedPackages = new ArrayList(); String genPackages = getProperty(PROP_GENERATED_PACKAGES); if (!StringUtils.isEmpty(genPackages)) { //TC-20091125 avoid manual array copy generatedPackages.addAll(Arrays.asList(genPackages.split(","))); } } return generatedPackages; } public List getExcludeTemplates() { if (excludeTemplates == null) { excludeTemplates = new ArrayList(); String excludes = getProperty(PROP_EXCLUDE_TEMPLATES); if (!StringUtils.isEmpty(excludes)) { //TC-20091125 avoid manual array copy excludeTemplates.addAll(Arrays.asList(excludes.split(","))); } } return excludeTemplates; } public M getModel() { return model; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy