01: /**
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * 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: */package org.apache.geronimo.gbean.runtime;
17:
18: import java.util.Map;
19:
20: /**
21: * The raw invoker provides a raw (fast) access invoke operations, get attribute values, and set
22: * attribute values on a GBean. This class should only be use by GBean proxy generators or carefully
23: * crafted container code, because this class maintains a hard reference to a gbeanInstance which has a huge
24: * potential for memory leaks. USE WITH CAUTION
25: *
26: * @version $Rev: 476049 $ $Date: 2006-11-16 20:35:17 -0800 (Thu, 16 Nov 2006) $
27: */
28: public final class RawInvoker {
29: private final GBeanInstance gbeanInstance;
30: private final Map attributeIndex;
31: private final Map operationIndex;
32:
33: public RawInvoker(GBeanInstance gbean) {
34: this .gbeanInstance = gbean;
35: attributeIndex = gbean.getAttributeIndex();
36: operationIndex = gbean.getOperationIndex();
37: }
38:
39: public Map getAttributeIndex() {
40: return attributeIndex;
41: }
42:
43: public Map getOperationIndex() {
44: return operationIndex;
45: }
46:
47: public Object getAttribute(final int index) throws Exception {
48: return gbeanInstance.getAttribute(index);
49: }
50:
51: public void setAttribute(final int index, final Object value)
52: throws Exception {
53: gbeanInstance.setAttribute(index, value);
54: }
55:
56: public Object invoke(final int index, final Object[] args)
57: throws Exception {
58: return gbeanInstance.invoke(index, args);
59: }
60: }
|