【Java开源代码栏目提醒】:网学会员鉴于大家对Java开源代码十分关注,论文会员在此为大家搜集整理了“XmlDaoManagerBuilder.java”一文,供大家参考学习
/*
* Copyright 2004 Clinton Begin
*
* 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 per
missions and
* limitations under the License.
*/
package com.ibatis.dao.engine.builder.xml;
import com.ibatis.common.io.ReaderInputStream;
import com.ibatis.common.resources.Resources;
import com.ibatis.dao.client.Dao;
import com.ibatis.dao.client.DaoException;
import com.ibatis.dao.client.DaoManager;
import com.ibatis.dao.engine.impl.DaoContext;
import com.ibatis.dao.engine.impl.DaoImpl;
import com.ibatis.dao.engine.impl.StandardDaoManager;
import com.ibatis.dao.engine.transaction.DaoTransactionManager;
import com.ibatis.dao.engine.transaction.external.ExternalDaoTransactionManager;
import com.ibatis.dao.engine.transaction.hibernate.HibernateDaoTransactionManager;
import com.ibatis.dao.engine.transaction.jdbc.JdbcDaoTransactionManager;
import com.ibatis.dao.engine.transaction.jta.JtaDaoTransactionManager;
import com.ibatis.dao.engine.transaction.
sqlmap.SqlMapDaoTransactionManager;
import org.w3c.dom.*;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.
xml.sax.SAXParseException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Reader;
import java.lang.reflect.Constructor;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
/**
* NOT THREAD SAFE. USE SEPARATE INSTANCES PER THREAD.
*/
public class XmlDaoManagerBuilder {
private static final String DAO_CONFIG_ELEMENT = "daoConfig";
private static final String PROPERTIES_ELEMENT = "properties";
private static final String CONTEXT_ELEMENT = "context";
private static final String TRANS_MGR_ELEMENT = "transactionManager";
private static final String PROPERTY_ELEMENT = "property";
private static final String DAO_ELEMENT = "dao";
private Properties properties = null;
private boolean validationEnabled = true;
private Map typeAliases = new HashMap();
public XmlDaoManagerBuilder() {
typeAliases.put("EXTERNAL", ExternalDaoTransactionManager.class.getName());
typeAliases.put("HIBERNATE", HibernateDaoTransactionManager.class.getName());
typeAliases.put("JDBC", JdbcDaoTransactionManager.class.getName());
typeAliases.put("JTA", JtaDaoTransactionManager.class.getName());
typeAliases.put("OJB", "com.ibatis.dao.engine.transaction.ojb.OjbBrokerTransactionManager");
typeAliases.put("SQLMAP", SqlMapDaoTransactionManager.class.getName());
typeAliases.put("TOPLINK", "com.ibatis.dao.engine.transaction.toplink.ToplinkDaoTransactionManager");
}
public DaoManager buildDaoManager(Reader reader, Properties props)
throws DaoException {
properties = props;
return buildDaoManager(reader);
}
public DaoManager buildDaoManager(Reader reader)
throws DaoException {
StandardDaoManager daoManager = new StandardDaoManager();
try {
Document doc = getDoc(reader);
Element root = (Element) doc.getLastChild();
String rootname = root.getNodeName();
if (