KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > geronimo > security > remoting > jmx > InvocationSupport


1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. 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
18 package org.apache.geronimo.security.remoting.jmx;
19 import java.io.ObjectStreamException JavaDoc;
20 import java.io.Serializable JavaDoc;
21 import java.net.URI JavaDoc;
22
23 import org.apache.geronimo.interceptor.Invocation;
24 import org.apache.geronimo.interceptor.InvocationKey;
25
26 /**
27  * @version $Rev: 476049 $ $Date: 2006-11-16 23:35:17 -0500 (Thu, 16 Nov 2006) $
28  */

29 public final class InvocationSupport implements Serializable JavaDoc, InvocationKey {
30
31     private static final long serialVersionUID = 3690191053600796981L;
32
33     // Be careful here. If you change the ordinals, this class must be changed on evey client.
34
private static int MAX_ORDINAL = 2;
35     private static final InvocationSupport[] values = new InvocationSupport[MAX_ORDINAL + 1];
36     private static final InvocationSupport REMOTE_URI = new InvocationSupport("REMOTE_URI", 0);
37     private static final InvocationSupport INVOCATION_TYPE = new InvocationSupport("INVOCATION_TYPE", 1);
38
39     public static URI JavaDoc getRemoteURI(Invocation invocation) {
40         return (URI JavaDoc) invocation.get(REMOTE_URI);
41     }
42     public static void putRemoteURI(Invocation invocation, URI JavaDoc remoteURI) {
43         invocation.put(REMOTE_URI, remoteURI);
44     }
45     public static InvocationType getInvocationType(Invocation invocation) {
46         return (InvocationType) invocation.get(INVOCATION_TYPE);
47     }
48     public static void putInvocationType(Invocation invocation, InvocationType type) {
49         invocation.put(INVOCATION_TYPE, type);
50     }
51
52     private final transient String JavaDoc name;
53     private final int ordinal;
54
55     private InvocationSupport(String JavaDoc name, int ordinal) {
56         assert ordinal < MAX_ORDINAL;
57         assert values[ordinal] == null;
58         this.name = name;
59         this.ordinal = ordinal;
60         values[ordinal] = this;
61     }
62
63     public String JavaDoc toString() {
64         return name;
65     }
66
67     Object JavaDoc readResolve() throws ObjectStreamException JavaDoc {
68         return values[ordinal];
69     }
70
71     static public boolean isAncestor(ClassLoader JavaDoc parent, ClassLoader JavaDoc child) {
72         // Root child? ancestor must be root too.
73
if (child == null)
74             return parent == null;
75         // Root parent is the ancestor of all classloaders.
76
if (parent == null)
77             return true;
78
79         while (child != null) {
80             if (child.equals(parent))
81                 return true;
82             child = child.getParent();
83         }
84         return false;
85     }
86
87     /**
88      * @see org.apache.geronimo.interceptor.InvocationKey#isTransient()
89      */

90     public boolean isTransient() {
91         return true;
92     }
93
94 }
95
Popular Tags