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 @Override
035 public Object invoke(Object proxy, Method method, Object[] arguments)
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, arguments);
045 }
046 catch (InvocationTargetException ite) {
047 throw ite.getTargetException();
048 }
049 }
050
051 private Object _bean;
052
053 }