Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 2013-2014 sagyf Yang. The Four Group.
   */
  package com.jfinal.ext.plugin.sqlinxml;
  
 
 import java.io.File;
 import java.net.URL;
 import java.util.List;
 import java.util.Map;
 
 public class SqlKit {
 
     protected static final Logger logger = Logger.getLogger(SqlKit.class);
 
     private static final Map<StringStringSQL_MAP = Maps.newHashMap();
 
     private static final String CONFIG_SUFFIX = "sql.xml";
 
     public static String sql(String groupNameAndsqlId) {
 
         return .get(groupNameAndsqlId);
     }
 
     static void clearSqlMap() {
         .clear();
     }
 
     static void putOver(String nameString value) {
         .put(namevalue);
     }
 
 
     static void init() {
         final URL resource = SqlKit.class.getClassLoader().getResource(.);
         if (resource == null) {
             throw new NullPointerException("the resources is null.");
         }
         FluentIterable<Fileiterable = Files.fileTreeTraverser().breadthFirstTraversal(new File(resource.getFile()));
         final List<Filefiles = Lists.newArrayList();
         for (File f : iterable) {
             if (f.getName().endsWith()) {
                 files.add(f);
             }
         }
 
         SqlGroup group;
         for (File xmlfile : files) {
             group = JaxbKit.unmarshal(xmlfileSqlGroup.class);
             String name = group.name;
             if (StringUtils.isBlank(name)) {
                 name = xmlfile.getName();
             }
             for (SqlItem sqlItem : group.sqlItems) {
                 .put(name + . + sqlItem.idsqlItem.value);
             }
         }
         if (.isDebugEnabled())
             .debug("SQL_MAP" + );
         final Properties configProps = ConfigProperties.getConfigProps();
         if (BooleanUtils.toBoolean(configProps.getProperty("dev.mode".))) {
             // 启动文件监控
             runWatch();
         }
     }
 
     private static void runWatch() {
         final URL resource = SqlKit.class.getClassLoader().getResource(.);
         if (resource == null) {
             return;
         }
         // 轮询间隔 3 秒
         long interval = ..toMillis(3);
         final String path = resource.getPath();
 
         File config_file = new File(path);
         List<FileAlterationObserverobserverList = Lists.newArrayList();
         final File[] childrenfiles = config_file.listFiles();
         if (childrenfiles != null) {
             for (File child : childrenfiles) {
                 if (child.isDirectory()) {
                     final FileAlterationObserver observer = new FileAlterationObserver(
                            child.getAbsolutePath(),
                            FileFilterUtils.and(
                                    FileFilterUtils.fileFileFilter(),
                                    FileFilterUtils.suffixFileFilter()),
                            null);
                    observer.addListener(new SqlXmlFileListener());
                    observerList.add(observer);
                }
            }
        }
        final FileAlterationObserver[] observers = observerList.toArray(new FileAlterationObserver[observerList.size()]);
        FileAlterationMonitor monitor = new FileAlterationMonitor(intervalobservers);
        // 开始监控
        try {
            monitor.start();
        } catch (Exception e) {
            .error("file monitor is error!"e);
        }
    }
    static void remove(String s) {
        .remove(s);
    }
New to GrepCode? Check out our FAQ X