001
014
015 package com.liferay.portal.kernel.bean;
016
017 import java.lang.Object;
018 import java.lang.reflect.InvocationHandler;
019 import java.lang.reflect.InvocationTargetException;
020 import java.lang.reflect.Method;
021
022
025 public class ReadOnlyBeanHandler implements InvocationHandler {
026
027 public ReadOnlyBeanHandler(Object bean) {
028 _bean = bean;
029 }
030
031 public Object getBean() {
032 return _bean;
033 }
034
035 public Object invoke(Object proxy, Method method, Object[] args)
036 throws Throwable {
037
038 if (method.getName().startsWith("set")) {
039 throw new IllegalAccessException(
040 "Setter methods cannot be called on a read only bean");
041 }
042
043 try {
044 return method.invoke(_bean, args);
045 }
046 catch (InvocationTargetException ite) {
047 throw ite.getTargetException();
048 }
049 }
050
051 private Object _bean;
052
053 }