📄 objectstreamclasscorbaext.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 + -