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