Package cn.org.rapid_framework.generator.ext.ant

Source Code of cn.org.rapid_framework.generator.ext.ant.BaseTableConfigSetTask

package cn.org.rapid_framework.generator.ext.ant;

import java.io.File;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

import cn.org.rapid_framework.generator.ext.tableconfig.builder.TableConfigXmlBuilder;
import cn.org.rapid_framework.generator.ext.tableconfig.model.TableConfigSet;
import cn.org.rapid_framework.generator.util.StringHelper;
/**
* 如果要使用TableConfigSet的GeneratorTask,则可以继承该类
*
* @author badqiu
*
*/
public abstract class BaseTableConfigSetTask extends BaseGeneratorTask{
 
  private String tableConfigFiles;
  protected TableConfigSet tableConfigSet;
 
  private static ThreadLocal<Map> threadLocalCache = new ThreadLocal<Map>();

  @Override
  protected void executeBefore() throws Exception {
    super.executeBefore();
   
    if(tableConfigFiles == null || "".equals(tableConfigFiles.trim())) {
      throw new Exception("'tableConfigFiles' must be not null");
    }
   
    if(tableConfigSet == null) {
      Map cache = getThreadLocalCache();
      tableConfigSet = (TableConfigSet)cache.get(tableConfigFiles);
      if(tableConfigSet == null) {
        tableConfigSet = parseForTableConfigSet(getPackage(), getProject().getBaseDir().getAbsoluteFile(), tableConfigFiles);
      }
      cache.put(tableConfigFiles, tableConfigSet);
    }
  }

  public static Map getThreadLocalCache() {
    Map map = threadLocalCache.get();
    if(map == null) {
      map = new HashMap();
      threadLocalCache.set(map);
    }
    return map;
  }

  public void setTableConfigFiles(String tableConfigFiles) {
    this.tableConfigFiles = tableConfigFiles;
  }

 
    static TableConfigSet parseForTableConfigSet(String _package,File basedir,String tableConfigFiles) {
      return new TableConfigXmlBuilder().parseFromXML(_package, basedir, tableConfigFiles);
    }
}
TOP

Related Classes of cn.org.rapid_framework.generator.ext.ant.BaseTableConfigSetTask

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.