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