egovframework.rte.fdl.string.EgovObjectUtil.java Source code

Java tutorial

Introduction

Here is the source code for egovframework.rte.fdl.string.EgovObjectUtil.java

Source

/*
 * Copyright 2008-2009 MOPAS(Ministry of Public Administration and Security).
 *
 * 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 egovframework.rte.fdl.string;

import java.lang.reflect.Constructor;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * ?? ? ?  ?
 * <p>
 * <b>NOTE:</b> Class  ? ? ?  ?.
 * @author   
 * @since 2009.06.01
 * @version 1.0
 * @see <pre>
 *  == ?(Modification Information) ==
 *   
 *   ?      ?           
 *  -------    --------    ---------------------------
 *   2009.06.01              ?
 * 
 * </pre>
 */
public class EgovObjectUtil {

    private static Log log = LogFactory.getLog(EgovObjectUtil.class);

    private EgovObjectUtil() {

    }

    /**
     * ? ? .
     * @param className
     * @return
     * @throws ClassNotFoundException
     * @throws Exception
     */
    public static Class<?> loadClass(String className) throws ClassNotFoundException, Exception {

        Class<?> clazz = null;
        try {
            clazz = Thread.currentThread().getContextClassLoader().loadClass(className);
        } catch (ClassNotFoundException e) {
            throw new ClassNotFoundException();
        } catch (Exception e) {
            throw new Exception(e);
        }

        if (clazz == null) {
            clazz = Class.forName(className);
        }

        return clazz;

    }

    /**
     * ? ?   ? .
     * @param className
     * @return
     * @throws ClassNotFoundException
     * @throws InstantiationException
     * @throws IllegalAccessException
     * @throws Exception
     */
    public static Object instantiate(String className)
            throws ClassNotFoundException, InstantiationException, IllegalAccessException, Exception {
        Class<?> clazz;

        try {
            clazz = loadClass(className);
            return clazz.newInstance();
        } catch (ClassNotFoundException e) {
            if (log.isErrorEnabled())
                log.error(className + " : Class is can not instantialized.");
            throw new ClassNotFoundException();
        } catch (InstantiationException e) {
            if (log.isErrorEnabled())
                log.error(className + " : Class is can not instantialized.");
            throw new InstantiationException();
        } catch (IllegalAccessException e) {
            if (log.isErrorEnabled())
                log.error(className + " : Class is not accessed.");
            throw new IllegalAccessException();
        } catch (Exception e) {
            if (log.isErrorEnabled())
                log.error(className + " : Class is not accessed.");
            throw new Exception(e);
        }
    }

    /**
     * ? ?  ?? ?? ? . ) Class <?>
     * clazz = EgovObjectUtil.loadClass(this.mapClass);
     * Constructor <?> constructor =
     * clazz.getConstructor(new Class
     * []{DataSource.class, String.class}); Object []
     * params = new Object []{getDataSource(),
     * getUsersByUsernameQuery()};
     * this.usersByUsernameMapping =
     * (EgovUsersByUsernameMapping)
     * constructor.newInstance(params);
     * @param className
     * @return
     * @throws ClassNotFoundException
     * @throws InstantiationException
     * @throws IllegalAccessException
     * @throws Exception
     */
    public static Object instantiate(String className, String[] types, Object[] values)
            throws ClassNotFoundException, InstantiationException, IllegalAccessException, Exception {
        Class<?> clazz;
        Class<?>[] classParams = new Class[values.length];
        Object[] objectParams = new Object[values.length];

        try {
            clazz = loadClass(className);

            for (int i = 0; i < values.length; i++) {
                classParams[i] = loadClass(types[i]);
                objectParams[i] = values[i];
            }

            Constructor<?> constructor = clazz.getConstructor(classParams);
            return constructor.newInstance(values);

        } catch (ClassNotFoundException e) {
            if (log.isErrorEnabled())
                log.error(className + " : Class is can not instantialized.");
            throw new ClassNotFoundException();
        } catch (InstantiationException e) {
            if (log.isErrorEnabled())
                log.error(className + " : Class is can not instantialized.");
            throw new InstantiationException();
        } catch (IllegalAccessException e) {
            if (log.isErrorEnabled())
                log.error(className + " : Class is not accessed.");
            throw new IllegalAccessException();
        } catch (Exception e) {
            if (log.isErrorEnabled())
                log.error(className + " : Class is not accessed.");
            throw new Exception(e);
        }
    }

    /**
     * ? Null ? ?.
     * @param object
     * @return Null? true / Null?  false
     */
    public static boolean isNull(Object object) {
        return ((object == null) || object.equals(null));
    }
}