⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 objectstreamclasscorbaext.java

📁 java jdk 1.4的源码
💻 JAVA
字号:
/* * @(#)ObjectStreamClassCorbaExt.java	1.3 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.corba.se.internal.io;import java.security.AccessController;import java.security.PrivilegedExceptionAction;import java.security.PrivilegedActionException;import java.security.PrivilegedAction;import java.lang.reflect.Modifier;import java.lang.reflect.Array;import java.lang.reflect.Field;import java.lang.reflect.Member;import java.lang.reflect.Method;// This file contains some utility methods that// originally were in the OSC in the RMI-IIOP// code delivered by IBM.  They don't make// sense there, and hence have been put// here so that they can be factored out in// an attempt to eliminate redundant code from// ObjectStreamClass.  Eventually the goal is// to move to java.io.ObjectStreamClass, and// java.io.ObjectStreamField.// class is package private for security reasonsclass ObjectStreamClassCorbaExt {    static final boolean isAbstractInterface(Class cl) {        Method[] method = ObjectStreamClassCorbaExt.getDeclaredMethods(cl);        // Test for abstractness (used under rmi/iiop when determining whether        // to call read/write_Abstract        if (!cl.isInterface()) {            return false;        }        if (method.length == 0) {            return false;        }        boolean isAbstractInterface = false;        for (int im = method.length -1 ; (im > -1); im--) {            Class exceptions[] = method[im].getExceptionTypes();            if (exceptions.length == 0) {                return false;            }                           // Set abstractness to false and flip to true only if the 	    // method has at least one good exception            for (int ime = exceptions.length -1; (ime > -1) && (isAbstractInterface == false); ime--) {                if ((java.rmi.RemoteException.class == exceptions[ime]) ||                    (java.lang.Throwable.class == exceptions[ime]) ||                    (java.lang.Exception.class == exceptions[ime]) ||                    (java.io.IOException.class == exceptions[ime])) {                    isAbstractInterface = true;                }            }        }	Class superclass = cl.getSuperclass();        isAbstractInterface = (isAbstractInterface && ((superclass == null) || ( ObjectStreamClassCorbaExt.isAbstractInterface(superclass))));	return isAbstractInterface;    }    /*     *  Returns TRUE if type is 'any'.     */    static final boolean isAny(String typeString) {	int isAny = 0;	if ( (typeString != null) &&	    (typeString.equals("Ljava/lang/Object;") ||	     typeString.equals("Ljava/io/Serializable;") ||	     typeString.equals("Ljava/io/Externalizable;")) )                isAny = 1;        return (isAny==1);    }    private static final Method[] getDeclaredMethods(final Class clz) {        return (Method[]) AccessController.doPrivileged(new PrivilegedAction() {            public Object run() {                return clz.getDeclaredMethods();            }        });    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -