Property 클래스 추가
parent
d88985f7ee
commit
1b996ac057
@ -0,0 +1,113 @@
|
||||
package cokr.xit.foundation.data;
|
||||
|
||||
import org.apache.commons.beanutils.BeanUtils;
|
||||
import org.apache.commons.beanutils.PropertyUtils;
|
||||
|
||||
import cokr.xit.foundation.AbstractComponent;
|
||||
|
||||
/**프로퍼티 지원 유틸리티
|
||||
* @author mjkhan
|
||||
*/
|
||||
public class Property extends AbstractComponent {
|
||||
private static Property instance;
|
||||
|
||||
private static Property get() {
|
||||
if (instance == null)
|
||||
instance = new Property();
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**객체에서 지정하는 프로퍼티 값을 읽을 수 있는지 반환한다.
|
||||
* @param obj 객체
|
||||
* @param name 프로퍼티 이름
|
||||
* @return 객체에서 지정하는 프로퍼티 값을 읽을 수 있는지 여부
|
||||
*/
|
||||
public static boolean readable(Object obj, String name) {
|
||||
return get().isReadable(obj, name);
|
||||
}
|
||||
|
||||
/**객체에 지정하는 프로퍼티 값을 쓸 수 있는지 반환한다.
|
||||
* @param obj 객체
|
||||
* @param name 프로퍼티 이름
|
||||
* @return 객체에 지정하는 프로퍼티 값을 쓸 수 있는지 여부
|
||||
*/
|
||||
public static boolean writeable(Object obj, String name) {
|
||||
return get().isWritable(obj, name);
|
||||
}
|
||||
|
||||
/**객체에서 지정하는 프로퍼티 값을 읽는다.
|
||||
* @param obj 객체
|
||||
* @param name 프로퍼티 이름
|
||||
* @return 객체의 프로퍼티 값
|
||||
*/
|
||||
public static String read(Object obj, String name) {
|
||||
return get().get(obj, name);
|
||||
}
|
||||
|
||||
/**객체에 지정하는 프로퍼티 값을 쓴다.
|
||||
* @param obj 객체
|
||||
* @param name 프로퍼티 이름
|
||||
* @param val 프로퍼티 값
|
||||
*/
|
||||
public static void write(Object obj, String name, Object val) {
|
||||
get().set(obj, name, val);
|
||||
}
|
||||
|
||||
/**객체에 지정하는 프로퍼티 값을 읽을 수 있는지 반환한다.
|
||||
* @param obj 객체
|
||||
* @param name 프로퍼티 이름
|
||||
* @return 객체에서 지정하는 프로퍼티 값을 읽을 수 있는지 여부
|
||||
*/
|
||||
public boolean isReadable(Object obj, String name) {
|
||||
if (isEmpty(obj))
|
||||
return false;
|
||||
|
||||
try {
|
||||
return PropertyUtils.isReadable(obj, name);
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**객체에 지정하는 프로퍼티 값을 쓸 수 있는지 반환한다.
|
||||
* @param obj 객체
|
||||
* @param name 프로퍼티 이름
|
||||
* @return 객체에 지정하는 프로퍼티 값을 쓸 수 있는지 여부
|
||||
*/
|
||||
public boolean isWritable(Object obj, String name) {
|
||||
if (isEmpty(obj))
|
||||
return false;
|
||||
|
||||
try {
|
||||
return PropertyUtils.isWriteable(obj, name);
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**객체에서 지정하는 프로퍼티 값을 읽는다.
|
||||
* @param obj 객체
|
||||
* @param name 프로퍼티 이름
|
||||
* @return 객체의 프로퍼티 값
|
||||
*/
|
||||
public String get(Object obj, String name) {
|
||||
try {
|
||||
return BeanUtils.getProperty(obj, name);
|
||||
} catch (Exception e) {
|
||||
throw runtimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**객체에 지정하는 프로퍼티 값을 쓴다.
|
||||
* @param obj 객체
|
||||
* @param name 프로퍼티 이름
|
||||
* @param val 프로퍼티 값
|
||||
*/
|
||||
public void set(Object obj, String name, Object val) {
|
||||
try {
|
||||
BeanUtils.setProperty(obj, name, val);
|
||||
} catch (Exception e) {
|
||||
throw runtimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue