001 /*
002 * Copyright 2005 John G. Wilson
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 *
016 */
017
018 package groovy.lang;
019
020 import java.lang.reflect.Constructor;
021 import java.lang.reflect.Method;
022 import java.util.List;
023 import java.util.Map;
024
025 import org.codehaus.groovy.ast.ClassNode;
026
027 /**
028 * @author John Wilson
029 *
030 */
031
032 public class DelegatingMetaClass extends MetaClass {
033 private final MetaClass delegate;
034 public DelegatingMetaClass(final MetaClass delegate) {
035 super(delegate.getClass());
036
037 this.delegate = delegate;
038 }
039 /* (non-Javadoc)
040 * @see groovy.lang.MetaClass#addNewInstanceMethod(java.lang.reflect.Method)
041 */
042 protected void addNewInstanceMethod(Method method) {
043 delegate.addNewInstanceMethod(method);
044 }
045 /* (non-Javadoc)
046 * @see groovy.lang.MetaClass#addNewStaticMethod(java.lang.reflect.Method)
047 */
048 protected void addNewStaticMethod(Method method) {
049 delegate.addNewStaticMethod(method);
050 }
051 /* (non-Javadoc)
052 * @see groovy.lang.MetaClass#checkInitialised()
053 */
054 protected void checkInitialised() {
055 delegate.checkInitialised();
056 }
057 /* (non-Javadoc)
058 * @see groovy.lang.MetaClass#pickMethod(java.lang.Object, java.lang.String, java.lang.Object[])
059 */
060 protected MetaMethod pickMethod(Object object, String methodName, Object[] arguments) {
061 return delegate.pickMethod(object, methodName, arguments);
062 }
063 /* (non-Javadoc)
064 * @see groovy.lang.MetaClass#pickMethod(java.lang.String, java.lang.Class[])
065 */
066 protected MetaMethod pickMethod(String methodName, Class[] arguments) {
067 return delegate.pickMethod(methodName, arguments);
068 }
069 /* (non-Javadoc)
070 * @see groovy.lang.MetaClass#getAttribute(java.lang.Object, java.lang.String)
071 */
072 public Object getAttribute(Object object, String attribute) {
073 return delegate.getAttribute(object, attribute);
074 }
075 /* (non-Javadoc)
076 * @see groovy.lang.MetaClass#getClassNode()
077 */
078 public ClassNode getClassNode() {
079 return delegate.getClassNode();
080 }
081 /* (non-Javadoc)
082 * @see groovy.lang.MetaClass#getMetaMethods()
083 */
084 public List getMetaMethods() {
085 return delegate.getMetaMethods();
086 }
087 /* (non-Javadoc)
088 * @see groovy.lang.MetaClass#getMethods()
089 */
090 public List getMethods() {
091 return delegate.getMethods();
092 }
093 /* (non-Javadoc)
094 * @see groovy.lang.MetaClass#getProperties()
095 */
096 public List getProperties() {
097 return delegate.getProperties();
098 }
099 /* (non-Javadoc)
100 * @see groovy.lang.MetaClass#getProperty(java.lang.Object, java.lang.String)
101 */
102 public Object getProperty(Object object, String property) {
103 return delegate.getProperty(object, property);
104 }
105 /* (non-Javadoc)
106 * @see groovy.lang.MetaClass#invokeConstructor(java.lang.Object[])
107 */
108 public Object invokeConstructor(Object[] arguments) {
109 return delegate.invokeConstructor(arguments);
110 }
111 /* (non-Javadoc)
112 * @see groovy.lang.MetaClass#invokeConstructorAt(java.lang.Class, java.lang.Object[])
113 */
114 public Object invokeConstructorAt(Class at, Object[] arguments) {
115 return delegate.invokeConstructorAt(at, arguments);
116 }
117 /* (non-Javadoc)
118 * @see groovy.lang.MetaClass#invokeMethod(java.lang.Object, java.lang.String, java.lang.Object)
119 */
120 public Object invokeMethod(Object object, String methodName, Object arguments) {
121 return delegate.invokeMethod(object, methodName, arguments);
122 }
123 /* (non-Javadoc)
124 * @see groovy.lang.MetaClass#invokeMethod(java.lang.Object, java.lang.String, java.lang.Object[])
125 */
126 public Object invokeMethod(Object object, String methodName, Object[] arguments) {
127 return delegate.invokeMethod(object, methodName, arguments);
128 }
129 /* (non-Javadoc)
130 * @see groovy.lang.MetaClass#invokeStaticMethod(java.lang.Object, java.lang.String, java.lang.Object[])
131 */
132 public Object invokeStaticMethod(Object object, String methodName, Object[] arguments) {
133 return delegate.invokeStaticMethod(object, methodName, arguments);
134 }
135 /* (non-Javadoc)
136 * @see groovy.lang.MetaClass#retrieveConstructor(java.lang.Class[])
137 */
138 public Constructor retrieveConstructor(Class[] arguments) {
139 return delegate.retrieveConstructor(arguments);
140 }
141 /* (non-Javadoc)
142 * @see groovy.lang.MetaClass#retrieveMethod(java.lang.Object, java.lang.String, java.lang.Object[])
143 */
144 public MetaMethod retrieveMethod(Object owner, String methodName, Object[] arguments) {
145 return delegate.retrieveMethod(owner, methodName, arguments);
146 }
147 /* (non-Javadoc)
148 * @see groovy.lang.MetaClass#retrieveMethod(java.lang.String, java.lang.Class[])
149 */
150 public MetaMethod retrieveMethod(String methodName, Class[] arguments) {
151 return delegate.retrieveMethod(methodName, arguments);
152 }
153 /* (non-Javadoc)
154 * @see groovy.lang.MetaClass#retrieveStaticMethod(java.lang.String, java.lang.Class[])
155 */
156 public MetaMethod retrieveStaticMethod(String methodName, Class[] arguments) {
157 return delegate.retrieveStaticMethod(methodName, arguments);
158 }
159 /* (non-Javadoc)
160 * @see groovy.lang.MetaClass#setAttribute(java.lang.Object, java.lang.String, java.lang.Object)
161 */
162 public void setAttribute(Object object, String attribute, Object newValue) {
163 delegate.setAttribute(object, attribute, newValue);
164 }
165 /* (non-Javadoc)
166 * @see groovy.lang.MetaClass#setProperties(java.lang.Object, java.util.Map)
167 */
168 public void setProperties(Object bean, Map map) {
169 delegate.setProperties(bean, map);
170 }
171 /* (non-Javadoc)
172 * @see groovy.lang.MetaClass#setProperty(java.lang.Object, java.lang.String, java.lang.Object)
173 */
174 public void setProperty(Object object, String property, Object newValue) {
175 delegate.setProperty(object, property, newValue);
176 }
177 /* (non-Javadoc)
178 * @see java.lang.Object#equals(java.lang.Object)
179 */
180 public boolean equals(Object obj) {
181 return delegate.equals(obj);
182 }
183 /* (non-Javadoc)
184 * @see java.lang.Object#hashCode()
185 */
186 public int hashCode() {
187 return delegate.hashCode();
188 }
189 /* (non-Javadoc)
190 * @see java.lang.Object#toString()
191 */
192 public String toString() {
193 return delegate.toString();
194 }
195 }