kr.co.hit.live.util
Class ObjectHelper

java.lang.Object
  extended by kr.co.hit.live.util.ObjectHelper

public class ObjectHelper
extends Object

Object 관련 Live Framework의 Helper Class

아래 Method들은 모두 static으로 선언 되었기 때문에 유념하기 바란다.

Since:
3.0
Version:
$Revision: 1.1 $ $Date: 2006/09/26 08:20:11 $
Author:
노준훈

Constructor Summary
protected ObjectHelper()
           ObjectHelper의 default 컨스트럭터(Constructor).
 
Method Summary
static Class<?> classForName(String className)
           Class의 String Name만을 이용하여 SystemHelper의 getClassLoader를 이용하여 ClassLoader에서 load한다.
protected static void configure()
           static 초기화 함수
static Object convertType(Object from, Class<?> to)
          from 객체를 to 클래스로 변환하여 반환한다.
static Class<?>[] getAllInterfacesOf(Class<?> clazz)
          해당 클래스가 구현하는 모든 Interface들을 찾아서 배열로 반환한다.
static int getCount(Object obj, int n)
          obj 가 담고 있는 데이터의 건수를 n 단계까지 탐색하여 반환한다.
static int getLength(Object[] source)
           오브젝트 Array의 길이 Object[] source = null; ...
static Method getMethod(Class<?> clazz, String methodName, Object[] argValues, boolean force)
          Class.getMethod()를 사용하면 입력 파라메터 타입이 정확히 일치되는 메소드만 찾아준다.
static Class<?> getPrimitiveClass(String primitiveName)
          primitive type 명을 지정하면 해당 primitve type의 클래스 객체를 리턴한다.
static Class<?> getWrapperType(Class<?> primitiveClass)
          primitive type의 클래스를 지정하면 그 Wrapper 클래스 객체를 리턴한다.
static Class<?> getWrapperType(String primitiveName)
          primitive type 명을 지정하면 그 Wrapper 클래스 객체를 리턴한다.
static Object instantiate(Class<?> clazz)
           임의로 로드된 Class을 이용하여 인스턴스로 만든다.
static Object instantiate(Class<?> clazz, Class<?>[] argTypes, Object[] argValues)
           임의로 로드된 Class를 이용하여 인스턴스로 만든다.
static Object instantiate(Class<?> clazz, Object[] argValues)
           임의로 로드된 Class를 이용하여 인스턴스로 만든다.
static Object instantiate(String className)
           임의로 로드된 Class이름만을 이용하여 인스턴스로 만든다.
static Object instantiate(String className, Class<?>[] argTypes, Object[] argValues)
           임의로 로드된 Class이름을 이용하여 인스턴스로 만든다.
static Object instantiate(String className, Object[] argValues)
           임의로 로드된 Class이름을 이용하여 인스턴스로 만든다.
static Object invoke(Class<?> clazz, Object obj, String methodName, Class<?>[] argTypes, Object[] argValues)
          reflection을 사용하여 Object의 메소드 호출을 수행한다.
static Object invoke(Class<?> clazz, Object obj, String methodName, Class<?>[] argTypes, Object[] argValues, boolean force)
          reflection을 사용하여 Object의 메소드 호출을 수행한다.
static Object invoke(Object obj, String methodName, Class<?>[] argTypes, Object[] argValues)
          reflection을 사용하여 Object의 메소드 호출을 수행한다.
static Object invoke(String className, Object obj, String methodName, Class<?>[] argTypes, Object[] argValues)
          reflection을 사용하여 Object의 메소드 호출을 수행한다.
static Object invokeWithTransaction(Class<?> clazz, Object obj, String methodName, Class<?>[] argTypes, Object[] argValues, boolean force, long timeout)
          Object 메소드를 호출시 Transaction을 생성한 후 메소드를 호출하고 메소드 호출 후 해당 Transaction을 commit() 또는 rollback() 처리한다.
static boolean isAssignable(Object from, Class<?> to, boolean force)
          from 클래스가 to 클래스로 변환이 가능한지 여부를 반환한다.
static boolean isNull(Object source)
           오브젝트의 null 여부
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ObjectHelper

protected ObjectHelper()

ObjectHelper의 default 컨스트럭터(Constructor).

Method Detail

configure

protected static void configure()

static 초기화 함수


getWrapperType

public static Class<?> getWrapperType(Class<?> primitiveClass)
primitive type의 클래스를 지정하면 그 Wrapper 클래스 객체를 리턴한다. 해당 Wrapper가 없으면 null 을 리턴한다.
 Class wrapper = ObjectHelper.getWrapperType(int.class);
 

Parameters:
primitiveClass -
Returns:
primitiveClass의 Wrapper 클래스

getWrapperType

public static Class<?> getWrapperType(String primitiveName)
primitive type 명을 지정하면 그 Wrapper 클래스 객체를 리턴한다. 해당 Wrapper가 없으면 null 을 리턴한다.
 Class wrapper = ObjectHelper.getWrapperType("int");
 

Parameters:
primitiveClassName -
Returns:
primitiveClass의 Wrapper 클래스

getPrimitiveClass

public static Class<?> getPrimitiveClass(String primitiveName)
primitive type 명을 지정하면 해당 primitve type의 클래스 객체를 리턴한다. primitive type이 아니라면 null 을 리턴한다.

Parameters:
primitiveName -
Returns:

isNull

public static boolean isNull(Object source)

오브젝트의 null 여부

Parameters:
source - 체크하고자 하는 오브젝트
Returns:
null 여부

getLength

public static int getLength(Object[] source)

오브젝트 Array의 길이

 Object[] source = null;
 ...
 if(isNull(source)){
     System.out.println("NULL 이다!");
 }
 

Parameters:
source - 길이를 알고 싶은 오브젝트 Array
Returns:
해당 오브젝트 Array의 길이

classForName

public static Class<?> classForName(String className)
                             throws ClassNotFoundException

Class의 String Name만을 이용하여 SystemHelper의 getClassLoader를 이용하여 ClassLoader에서 load한다. 그래서 해당 Class는 Classpath에 적용되어 있어야 한다.

 String className = "kr.co.hit.live.XXXXX";

 Class clazz = ObjectHelper.classForName(className);
 

Parameters:
className - 로드할 클래스 이름
Returns:
로드된 Class 오브젝트
Throws:
ClassNotFoundException - 로드할 Class를 Classpath로 적용되어 있지 않아 찾을 수 없는 경우

instantiate

public static Object instantiate(String className)
                          throws ClassNotFoundException,
                                 InstantiationException,
                                 IllegalAccessException

임의로 로드된 Class이름만을 이용하여 인스턴스로 만든다.

 String className = "kr.co.hit.live.XXXXX";
 Object obj = ObjectHelper.instantiate(className);
 

Parameters:
className - - 인스턴스화 하기 위한 class의 이름
Returns:
class의 인스턴스
Throws:
ClassNotFoundException - 해당 class를 찾지 못할 경우
InstantiationException - 해당 class를 인스턴스화 하지 못할 경우
IllegalAccessException - 해당 class의 컨스트럭쳐가 public으로 선언되어 있지 않거나, 접근이 불가 할 경우

instantiate

public static Object instantiate(Class<?> clazz)
                          throws InstantiationException,
                                 IllegalAccessException

임의로 로드된 Class을 이용하여 인스턴스로 만든다.

 String className = "kr.co.hit.live.XXXXX";
 Class clazz = ObjectHelper.instantiate(className);
 Object obj = ObjectHelper.instantiate(clazz);
 

Parameters:
clazz - - 인스턴스화 하기 위한 class
Returns:
class의 인스턴스
Throws:
InstantiationException - 해당 class를 인스턴스화 하지 못할 경우
IllegalAccessException - 해당 class의 컨스트럭쳐가 public으로 선언되어 있지 않거나, 접근이 불가 할 경우

instantiate

public static Object instantiate(String className,
                                 Class<?>[] argTypes,
                                 Object[] argValues)
                          throws ClassNotFoundException,
                                 NoSuchMethodException,
                                 InstantiationException,
                                 IllegalAccessException,
                                 IllegalArgumentException,
                                 InvocationTargetException

임의로 로드된 Class이름을 이용하여 인스턴스로 만든다. 인스턴스 생성시 argTypes에 해당되는 파라메터를 같는 생성자를 찾아서 여기에 argValues를 파라메터로 하여 인스턴스를 생성한다. argTypes 인자가 null 인 경우에는 argValues 인자의 getClass() 메소드를 호출하여 얻은 Class 오브젝트가 사용된다.

 String className = "kr.co.hit.live.XXXXX";
 Object obj = ObjectHelper.instantiate(className,new Class[]{String.class}, new Object[] {"aaa"} );
 

Parameters:
className - - 인스턴스화 하기 위한 class의 이름
argTypes - - 생성자의 파라메터 타입
argValues - - 생성자로 인스턴스를 생성할 때 사용할 넘겨줄 파라메터
Returns:
class의 인스턴스
Throws:
ClassNotFoundException - 해당 class를 찾지 못할 경우
InstantiationException - 해당 class를 인스턴스화 하지 못할 경우
IllegalAccessException - 해당 class의 컨스트럭쳐가 public으로 선언되어 있지 않거나, 접근이 불가 할 경우
NoSuchMethodException - 파라메터 타입에 해당되는 생성자가 존재하지 않는 경우
IllegalArgumentException - 파라메터 타입과 파라메터 값의 개수나 타입이 상이할 경우
InvocationTargetException

instantiate

public static Object instantiate(Class<?> clazz,
                                 Class<?>[] argTypes,
                                 Object[] argValues)
                          throws NoSuchMethodException,
                                 InstantiationException,
                                 IllegalAccessException,
                                 IllegalArgumentException,
                                 InvocationTargetException

임의로 로드된 Class를 이용하여 인스턴스로 만든다. 인스턴스 생성시 argTypes에 해당되는 파라메터를 같는 생성자를 찾아서 여기에 argValues를 파라메터로 하여 인스턴스를 생성한다. argTypes 인자가 null 인 경우에는 argValues 인자의 getClass() 메소드를 호출하여 얻은 Class 오브젝트가 사용된다.

 String className = "kr.co.hit.live.XXXXX";
 Class clazz = ObjectHelper.classForName(className);
 Object obj = ObjectHelper.instantiate(clazz,new Class[]{String.class}, new Object[] {"aaa"} );
 

Parameters:
clazz - - 인스턴스화 하기 위한 class 객체
argTypes - - 생성자의 파라메터 타입
argValues - - 생성자로 인스턴스를 생성할 때 사용할 넘겨줄 파라메터
Returns:
class의 인스턴스
Throws:
ClassNotFoundException - 해당 class를 찾지 못할 경우
InstantiationException - 해당 class를 인스턴스화 하지 못할 경우
IllegalAccessException - 해당 class의 컨스트럭쳐가 public으로 선언되어 있지 않거나, 접근이 불가 할 경우
NoSuchMethodException - 파라메터 타입에 해당되는 생성자가 존재하지 않는 경우
IllegalArgumentException - 파라메터 타입과 파라메터 값의 개수나 타입이 상이할 경우
InvocationTargetException

instantiate

public static Object instantiate(String className,
                                 Object[] argValues)
                          throws ClassNotFoundException,
                                 NoSuchMethodException,
                                 InstantiationException,
                                 IllegalAccessException,
                                 IllegalArgumentException,
                                 InvocationTargetException

임의로 로드된 Class이름을 이용하여 인스턴스로 만든다. 이때 argValues 인자의 클래스를 사용하여 생성자를 찾아서 인스턴스를 생성한다.

 String className = "kr.co.hit.live.XXXXX";
 Object obj = ObjectHelper.instantiate(className, new Object[] {"aaa"} );
 

Parameters:
className - - 인스턴스화 하기 위한 class의 이름
argValues - - 생성자로 인스턴스를 생성할 때 사용할 넘겨줄 파라메터
Returns:
class의 인스턴스
Throws:
ClassNotFoundException - 해당 class를 찾지 못할 경우
InstantiationException - 해당 class를 인스턴스화 하지 못할 경우
IllegalAccessException - 해당 class의 컨스트럭쳐가 public으로 선언되어 있지 않거나, 접근이 불가 할 경우
NoSuchMethodException - 파라메터 타입에 해당되는 생성자가 존재하지 않는 경우
IllegalArgumentException - 파라메터 타입과 파라메터 값의 개수나 타입이 상이할 경우
InvocationTargetException

instantiate

public static Object instantiate(Class<?> clazz,
                                 Object[] argValues)
                          throws NoSuchMethodException,
                                 InstantiationException,
                                 IllegalAccessException,
                                 IllegalArgumentException,
                                 InvocationTargetException

임의로 로드된 Class를 이용하여 인스턴스로 만든다. 이때 argValues 인자의 클래스를 사용하여 생성자를 찾아서 인스턴스를 생성한다.

 String className = "kr.co.hit.live.XXXXX";
 Class clazz = ObjectHelper.classForName(className);
 Object obj = ObjectHelper.instantiate(clazz, new Object[] {"aaa"} );
 

Parameters:
clazz - - 인스턴스화 하기 위한 class 객체
argValues - - 생성자로 인스턴스를 생성할 때 사용할 넘겨줄 파라메터
Returns:
class의 인스턴스
Throws:
ClassNotFoundException - 해당 class를 찾지 못할 경우
InstantiationException - 해당 class를 인스턴스화 하지 못할 경우
IllegalAccessException - 해당 class의 컨스트럭쳐가 public으로 선언되어 있지 않거나, 접근이 불가 할 경우
NoSuchMethodException - 파라메터 타입에 해당되는 생성자가 존재하지 않는 경우
IllegalArgumentException - 파라메터 타입과 파라메터 값의 개수나 타입이 상이할 경우
InvocationTargetException

getAllInterfacesOf

public static Class<?>[] getAllInterfacesOf(Class<?> clazz)
해당 클래스가 구현하는 모든 Interface들을 찾아서 배열로 반환한다.

Parameters:
clazz -
Returns:

invokeWithTransaction

public static Object invokeWithTransaction(Class<?> clazz,
                                           Object obj,
                                           String methodName,
                                           Class<?>[] argTypes,
                                           Object[] argValues,
                                           boolean force,
                                           long timeout)
                                    throws Throwable
Object 메소드를 호출시 Transaction을 생성한 후 메소드를 호출하고 메소드 호출 후 해당 Transaction을 commit() 또는 rollback() 처리한다.

Parameters:
clazz -
obj -
methodName -
argTypes -
argValues -
force -
timeout - Transaction의 timeout 값을 지정, 0 이면 default 설정값을 사용
Returns:
Throws:
Throwable

invoke

public static Object invoke(String className,
                            Object obj,
                            String methodName,
                            Class<?>[] argTypes,
                            Object[] argValues)
                     throws Throwable
reflection을 사용하여 Object의 메소드 호출을 수행한다.

Parameters:
className -
obj -
methodName -
argTypes -
argValues -
Returns:
Throws:
Throwable

invoke

public static Object invoke(Object obj,
                            String methodName,
                            Class<?>[] argTypes,
                            Object[] argValues)
                     throws Throwable
reflection을 사용하여 Object의 메소드 호출을 수행한다.

Parameters:
obj -
methodName -
argTypes -
argValues -
Returns:
Throws:
Throwable

invoke

public static Object invoke(Class<?> clazz,
                            Object obj,
                            String methodName,
                            Class<?>[] argTypes,
                            Object[] argValues)
                     throws Throwable
reflection을 사용하여 Object의 메소드 호출을 수행한다.

Parameters:
clazz -
obj -
methodName -
argTypes -
argValues -
Returns:
Throws:
Throwable

invoke

public static Object invoke(Class<?> clazz,
                            Object obj,
                            String methodName,
                            Class<?>[] argTypes,
                            Object[] argValues,
                            boolean force)
                     throws Throwable
reflection을 사용하여 Object의 메소드 호출을 수행한다. force가 true 인 경우 파라메터 타입이 다르더라도 강제적인 변환을 시도하여 변환이 가능한 경우 그 메소드를 호출한다.

Parameters:
clazz -
obj -
methodName -
argTypes -
argValues -
force -
Returns:
Throws:
Throwable

getMethod

public static Method getMethod(Class<?> clazz,
                               String methodName,
                               Object[] argValues,
                               boolean force)
Class.getMethod()를 사용하면 입력 파라메터 타입이 정확히 일치되는 메소드만 찾아준다. 파라메터가 다르더라도 casting이 가능한 타입이라면 reflection으로 메소드 호출하는데 문제가 없으므로 파라메터간의 casting 가능여부를 고려하여 메소드를 찾아주는 기능을 제공한다.

Parameters:
clazz -
methodName -
argTypes -
force - 강제적인 타입변환 여부까지 확인할 지 여부
Returns:

convertType

public static Object convertType(Object from,
                                 Class<?> to)
from 객체를 to 클래스로 변환하여 반환한다.

Parameters:
from -
to -
Returns:
ClassCastException 변환이 불가능한 경우

isAssignable

public static boolean isAssignable(Object from,
                                   Class<?> to,
                                   boolean force)
from 클래스가 to 클래스로 변환이 가능한지 여부를 반환한다. force 파라메터가 false이면 implicity conversion 가능여부만 판단하며, force 파라메터가 true이면 impllicity conversion이 불가능해도 몇가지 변환을 시도하여 그 가능 여부를 반환한다.

Parameters:
from - 변환하고자할 객체
to - 변환하고자할 타입
force - 강제 변환 여부
Returns:

getCount

public static int getCount(Object obj,
                           int n)
obj 가 담고 있는 데이터의 건수를 n 단계까지 탐색하여 반환한다.

Parameters:
obj -
Returns:


Copyright © 2014. All Rights Reserved.