1 /**
2 *
3 * Copyright 2004 The Apache Software Foundation
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17 package org.apache.geronimo.kernel;
18
19 import org.apache.geronimo.gbean.DynamicGBean;
20 import org.apache.geronimo.gbean.GBeanInfo;
21 import org.apache.geronimo.gbean.GBeanInfoBuilder;
22 import org.apache.geronimo.gbean.DynamicGAttributeInfo;
23
24 /**
25 * @version $Rev: 109314 $ $Date: 2004-12-01 00:01:37 -0800 (Wed, 01 Dec 2004) $
26 */
27 public class MockDynamicGBean implements DynamicGBean {
28
29 private static final GBeanInfo GBEAN_INFO;
30
31 public static final String MUTABLE_INT_ATTRIBUTE_NAME = "MutableInt";
32
33 private int mutableInt;
34
35 public Object getAttribute(String name) throws Exception {
36 if (MUTABLE_INT_ATTRIBUTE_NAME.equals(name)) {
37 return new Integer(mutableInt);
38 }
39 return null;
40 }
41
42 public void setAttribute(String name, Object value) throws Exception {
43 if (MUTABLE_INT_ATTRIBUTE_NAME.equals(name)) {
44 mutableInt = ((Integer) value).intValue();
45 return;
46 }
47 throw new IllegalArgumentException(name + " attribute not supported");
48 }
49
50 public Object invoke(String name, Object[] arguments, String[] types) throws Exception {
51 return null;
52 }
53
54 /**
55 * @return GBeanInfo of this GBean
56 */
57 public static GBeanInfo getGBeanInfo() {
58 return GBEAN_INFO;
59 }
60
61 static {
62 GBeanInfoBuilder infoFactory = new GBeanInfoBuilder("MockDynamicGBean", MockDynamicGBean.class);
63 infoFactory.addAttribute(new DynamicGAttributeInfo("mutableInt", Integer.class.getName(), false, true, true));
64 GBEAN_INFO = infoFactory.getBeanInfo();
65 }
66 }