/* * Copyright 2018 Jobsz ([email protected]) * * 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 com.jfinal.ext.plugin.sqlinxml; import java.io.File; import java.io.FileFilter; import java.util.HashMap; import java.util.Map; import com.jfinal.ext.kit.JaxbKit; import com.jfinal.kit.PathKit; import com.jfinal.log.Log; public class SqlInXmlKit { protected static final Log LOG = Log.getLog(SqlInXmlKit.class); private static Map<String, String> sqlMap; public static String sql(String groupNameAndsqlId) { if (sqlMap == null) { throw new NullPointerException("SqlInXmlPlugin not start"); } return sqlMap.get(groupNameAndsqlId); } static void clearSqlMap() { sqlMap.clear(); } static void init() { sqlMap = new HashMap<String, String>(); File file = new File(PathKit.getRootClassPath()); File[] files = file.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { if (pathname.getName().endsWith("sql.xml")) { return true; } return false; } }); for (File xmlfile : files) { SqlGroup group = JaxbKit.unmarshal(xmlfile, SqlGroup.class); String name = group.name; if (name == null || name.trim().equals("")) { name = xmlfile.getName(); } for (SqlItem sqlItem : group.sqlItems) { sqlMap.put(name + "." + sqlItem.id, sqlItem.value); } } LOG.debug("sqlMap" + sqlMap); } }