You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
219 lines
6.2 KiB
219 lines
6.2 KiB
/* |
|
* Javassist, a Java-bytecode translator toolkit. |
|
* Copyright (C) 1999- Shigeru Chiba. All Rights Reserved. |
|
* |
|
* The contents of this file are subject to the Mozilla Public License Version |
|
* 1.1 (the "License"); you may not use this file except in compliance with |
|
* the License. Alternatively, the contents of this file may be used under |
|
* the terms of the GNU Lesser General Public License Version 2.1 or later, |
|
* or the Apache License Version 2.0. |
|
* |
|
* Software distributed under the License is distributed on an "AS IS" basis, |
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
|
* for the specific language governing rights and limitations under the |
|
* License. |
|
*/ |
|
|
|
package com.fr.third.javassist; |
|
|
|
import com.fr.third.javassist.bytecode.AccessFlag; |
|
|
|
/** |
|
* The Modifier class provides static methods and constants to decode |
|
* class and member access modifiers. The constant values are equivalent |
|
* to the corresponding values in <code>javassist.bytecode.AccessFlag</code>. |
|
* |
|
* <p>All the methods/constants in this class are compatible with |
|
* ones in <code>java.lang.reflect.Modifier</code>. |
|
* |
|
* @see CtClass#getModifiers() |
|
*/ |
|
public class Modifier { |
|
public static final int PUBLIC = AccessFlag.PUBLIC; |
|
public static final int PRIVATE = AccessFlag.PRIVATE; |
|
public static final int PROTECTED = AccessFlag.PROTECTED; |
|
public static final int STATIC = AccessFlag.STATIC; |
|
public static final int FINAL = AccessFlag.FINAL; |
|
public static final int SYNCHRONIZED = AccessFlag.SYNCHRONIZED; |
|
public static final int VOLATILE = AccessFlag.VOLATILE; |
|
public static final int VARARGS = AccessFlag.VARARGS; |
|
public static final int TRANSIENT = AccessFlag.TRANSIENT; |
|
public static final int NATIVE = AccessFlag.NATIVE; |
|
public static final int INTERFACE = AccessFlag.INTERFACE; |
|
public static final int ABSTRACT = AccessFlag.ABSTRACT; |
|
public static final int STRICT = AccessFlag.STRICT; |
|
public static final int ANNOTATION = AccessFlag.ANNOTATION; |
|
public static final int ENUM = AccessFlag.ENUM; |
|
|
|
/** |
|
* Returns true if the modifiers include the <tt>public</tt> |
|
* modifier. |
|
*/ |
|
public static boolean isPublic(int mod) { |
|
return (mod & PUBLIC) != 0; |
|
} |
|
|
|
/** |
|
* Returns true if the modifiers include the <tt>private</tt> |
|
* modifier. |
|
*/ |
|
public static boolean isPrivate(int mod) { |
|
return (mod & PRIVATE) != 0; |
|
} |
|
|
|
/** |
|
* Returns true if the modifiers include the <tt>protected</tt> |
|
* modifier. |
|
*/ |
|
public static boolean isProtected(int mod) { |
|
return (mod & PROTECTED) != 0; |
|
} |
|
|
|
/** |
|
* Returns true if the modifiers do not include either |
|
* <tt>public</tt>, <tt>protected</tt>, or <tt>private</tt>. |
|
*/ |
|
public static boolean isPackage(int mod) { |
|
return (mod & (PUBLIC | PRIVATE | PROTECTED)) == 0; |
|
} |
|
|
|
/** |
|
* Returns true if the modifiers include the <tt>static</tt> |
|
* modifier. |
|
*/ |
|
public static boolean isStatic(int mod) { |
|
return (mod & STATIC) != 0; |
|
} |
|
|
|
/** |
|
* Returns true if the modifiers include the <tt>final</tt> |
|
* modifier. |
|
*/ |
|
public static boolean isFinal(int mod) { |
|
return (mod & FINAL) != 0; |
|
} |
|
|
|
/** |
|
* Returns true if the modifiers include the <tt>synchronized</tt> |
|
* modifier. |
|
*/ |
|
public static boolean isSynchronized(int mod) { |
|
return (mod & SYNCHRONIZED) != 0; |
|
} |
|
|
|
/** |
|
* Returns true if the modifiers include the <tt>volatile</tt> |
|
* modifier. |
|
*/ |
|
public static boolean isVolatile(int mod) { |
|
return (mod & VOLATILE) != 0; |
|
} |
|
|
|
/** |
|
* Returns true if the modifiers include the <tt>transient</tt> |
|
* modifier. |
|
*/ |
|
public static boolean isTransient(int mod) { |
|
return (mod & TRANSIENT) != 0; |
|
} |
|
|
|
/** |
|
* Returns true if the modifiers include the <tt>native</tt> |
|
* modifier. |
|
*/ |
|
public static boolean isNative(int mod) { |
|
return (mod & NATIVE) != 0; |
|
} |
|
|
|
/** |
|
* Returns true if the modifiers include the <tt>interface</tt> |
|
* modifier. |
|
*/ |
|
public static boolean isInterface(int mod) { |
|
return (mod & INTERFACE) != 0; |
|
} |
|
|
|
/** |
|
* Returns true if the modifiers include the <tt>annotation</tt> |
|
* modifier. |
|
* |
|
* @since 3.2 |
|
*/ |
|
public static boolean isAnnotation(int mod) { |
|
return (mod & ANNOTATION) != 0; |
|
} |
|
|
|
/** |
|
* Returns true if the modifiers include the <tt>enum</tt> |
|
* modifier. |
|
* |
|
* @since 3.2 |
|
*/ |
|
public static boolean isEnum(int mod) { |
|
return (mod & ENUM) != 0; |
|
} |
|
|
|
/** |
|
* Returns true if the modifiers include the <tt>abstract</tt> |
|
* modifier. |
|
*/ |
|
public static boolean isAbstract(int mod) { |
|
return (mod & ABSTRACT) != 0; |
|
} |
|
|
|
/** |
|
* Returns true if the modifiers include the <tt>strictfp</tt> |
|
* modifier. |
|
*/ |
|
public static boolean isStrict(int mod) { |
|
return (mod & STRICT) != 0; |
|
} |
|
|
|
/** |
|
* Truns the public bit on. The protected and private bits are |
|
* cleared. |
|
*/ |
|
public static int setPublic(int mod) { |
|
return (mod & ~(PRIVATE | PROTECTED)) | PUBLIC; |
|
} |
|
|
|
/** |
|
* Truns the protected bit on. The protected and public bits are |
|
* cleared. |
|
*/ |
|
public static int setProtected(int mod) { |
|
return (mod & ~(PRIVATE | PUBLIC)) | PROTECTED; |
|
} |
|
|
|
/** |
|
* Truns the private bit on. The protected and private bits are |
|
* cleared. |
|
*/ |
|
public static int setPrivate(int mod) { |
|
return (mod & ~(PROTECTED | PUBLIC)) | PRIVATE; |
|
} |
|
|
|
/** |
|
* Clears the public, protected, and private bits. |
|
*/ |
|
public static int setPackage(int mod) { |
|
return (mod & ~(PROTECTED | PUBLIC | PRIVATE)); |
|
} |
|
|
|
/** |
|
* Clears a specified bit in <code>mod</code>. |
|
*/ |
|
public static int clear(int mod, int clearBit) { |
|
return mod & ~clearBit; |
|
} |
|
|
|
/** |
|
* Return a string describing the access modifier flags in |
|
* the specified modifier. |
|
* |
|
* @param mod modifier flags. |
|
*/ |
|
public static String toString(int mod) { |
|
return java.lang.reflect.Modifier.toString(mod); |
|
} |
|
}
|
|
|