|
What this is
Other links
The source code/* * RWModifier.java - Read/Write extension to java.lang.reflect.Modifier * * Copyright (c) 1999 George Latkiewicz (georgel@arvotek.net) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ import java.lang.reflect.*; //============================================================================= /** * Read/Write extension to java.lang.reflect.Modifier. */ public class RWModifier extends Modifier { private static final int STRICT = 2048; // for JDK 1.1.x (already in super for 1.2) private static final int CLASS = 32768; // custom extension to JDK Modifier spec. private static final int NO_MODIFIERS = 0; /** * Defines the set of all valid modifiers. */ private static final int ALL_MODIFIERS = 0 | ABSTRACT | FINAL | INTERFACE | NATIVE | PRIVATE | PROTECTED | PUBLIC | STATIC | STRICT // nb associated token is: strictfp | SYNCHRONIZED | TRANSIENT | VOLATILE | CLASS; /** * defines the set of modifiers that are valid for a class or interface. */ private static final int VALID_FOR_CLASS = 0 | ABSTRACT | FINAL | INTERFACE | PUBLIC // | STATIC // except member classes | STRICT // nb associated token is: strictfp | CLASS; /** * defines the set of modifiers that are invalid for constructor methods. */ private static final int INVALID_FOR_CONSTRUCTOR = 0 | NATIVE | ABSTRACT | STATIC | SYNCHRONIZED | FINAL; /** * defines the set of modifiers that are invalid for a method that has been * defined as abstract. */ private static final int INVALID_FOR_ABSTRACT_METHOD = 0 | NATIVE | STATIC | SYNCHRONIZED | FINAL | PRIVATE; /** * defines the set of modifiers that are invalid for a method defined in an * interface. */ private static final int INVALID_FOR_INTERFACE_METHOD = INVALID_FOR_ABSTRACT_METHOD | PROTECTED; // constants - for visibility indicies static final int TOPLEVEL_VIS_PACKAGE = 0; static final int TOPLEVEL_VIS_PUBLIC = 1; static final int MEMBER_VIS_PRIVATE = 0; static final int MEMBER_VIS_PACKAGE = 1; static final int MEMBER_VIS_PROTECTED = 2; static final int MEMBER_VIS_PUBLIC = 3; //------------------------------------------------------------------------- // Accessors - getters for RWModifier extensions public static final boolean isStrict(int mod) { // for JDK 1.1.x (already in super for 1.2) return (mod & STRICT) > 0; } public static final boolean isClass(int mod) { // custom extension to JDK Modifier spec. return (mod & CLASS) > 0; } public static final boolean isClassOrInterface(int mod) { // custom extension to JDK Modifier spec. return (mod & (CLASS | INTERFACE)) > 0; } //------------------------------------------------------------------------- // Accessors - set bit ON public static final int setClass(int mod) { return (mod | CLASS); } public static final int setAbstract(int mod) { return (mod | ABSTRACT); } public static final int setFinal(int mod) { return (mod | FINAL); } public static final int setInterface(int mod) { return (mod | INTERFACE); } public static final int setNative(int mod) { return (mod | NATIVE); } public static final int setPrivate(int mod) { return (mod | PRIVATE); } public static final int setProtected(int mod) { return (mod | PROTECTED); } public static final int setPublic(int mod) { return (mod | PUBLIC); } public static final int setStatic(int mod) { return (mod | STATIC); } public static final int setStrict(int mod) { return (mod | STRICT); } public static final int setSynchronized(int mod) { return (mod | SYNCHRONIZED); } public static final int setTransient(int mod) { return (mod | TRANSIENT); } public static final int setVolatile(int mod) { return (mod | VOLATILE); } //------------------------------------------------------------------------- // Accessors - set bit ON/OFF by parameter public static final int setClass(int mod, boolean setFlag) { return (setFlag) ? (mod | CLASS) : (mod & ~CLASS) ; } public static final int setAbstract(int mod, boolean setFlag) { return (setFlag) ? (mod | ABSTRACT) : (mod & ~ABSTRACT) ; } public static final int setFinal(int mod, boolean setFlag) { return (setFlag) ? (mod | FINAL) : (mod & ~FINAL) ; } public static final int setInterface(int mod, boolean setFlag) { return (setFlag) ? (mod | INTERFACE) : (mod & ~INTERFACE) ; } public static final int setNative(int mod, boolean setFlag) { return (setFlag) ? (mod | NATIVE) : (mod & ~NATIVE) ; } public static final int setPrivate(int mod, boolean setFlag) { return (setFlag) ? (mod | PRIVATE) : (mod & ~PRIVATE) ; } public static final int setProtected(int mod, boolean setFlag) { return (setFlag) ? (mod | PROTECTED) : (mod & ~PROTECTED) ; } public static final int setPublic(int mod, boolean setFlag) { return (setFlag) ? (mod | PUBLIC) : (mod & ~PUBLIC) ; } public static final int setStatic(int mod, boolean setFlag) { return (setFlag) ? (mod | STATIC) : (mod & ~STATIC) ; } public static final int setStrict(int mod, boolean setFlag) { return (setFlag) ? (mod | STRICT) : (mod & ~STRICT) ; } public static final int setSynchronized(int mod, boolean setFlag) { return (setFlag) ? (mod | SYNCHRONIZED) : (mod & ~SYNCHRONIZED) ; } public static final int setTransient(int mod, boolean setFlag) { return (setFlag) ? (mod | TRANSIENT) : (mod & ~TRANSIENT) ; } public static final int setVolatile(int mod, boolean setFlag) { return (setFlag) ? (mod | VOLATILE) : (mod & ~VOLATILE) ; } //------------------------------------------------------------------------- public static boolean isValidForClass(int mod) { return ( (mod & ~VALID_FOR_CLASS) != 0 ) ; } //------------------------------------------------------------------------- /** * Note: !isClassOrInterface(int mod) is assumed. */ public static boolean isValidForConstructor(int mod) { return ( (mod & INVALID_FOR_CONSTRUCTOR) == 0 ) ; } public static boolean isValidInterfaceMethod(int mod) { return ( (mod & INVALID_FOR_INTERFACE_METHOD) == 0 ) ; } public static boolean isValidAbstractMethod(int mod) { return ( (mod & INVALID_FOR_ABSTRACT_METHOD) == 0 ) ; } //------------------------------------------------------------------------- public static String toString(int mod, Options.DisplayIro displayOpt) { String rVal = ""; if (displayOpt.getVisSymbols()) { if ( isPrivate(mod) ) rVal += "-"; else if ( isProtected(mod) ) rVal += "#"; else if ( isPublic(mod) ) rVal += "+"; else rVal += " "; } else { if ( isPrivate(mod) ) rVal += "private "; else if ( isProtected(mod) ) rVal += "protected "; else if ( isPublic(mod) ) rVal += "public "; else rVal += ""; } // static abstract final volatile transient synchronized native strictfp if ( !displayOpt.getStaticUlined() && isStatic(mod) ) rVal += "static "; if ( !displayOpt.getAbstractItalic() && isAbstract(mod) ) rVal += "abstract "; if ( isFinal(mod) ) rVal += "final "; if ( displayOpt.getShowMiscMod() ) { if ( isVolatile(mod) ) rVal += "volatile "; if ( isTransient(mod) ) rVal += "transient "; if ( isSynchronized(mod) ) rVal += "synchronized "; if ( isNative(mod) ) rVal += "native "; if ( isStrict(mod) ) rVal += "strictfp "; } if ( displayOpt.getShowIconKeywords() ) { if ( isClass(mod) ) { rVal += "class "; } else if ( isInterface(mod) ) { rVal += "interface "; } } return rVal; } // static toString(int, Options.DisplayIro): String //------------------------------------------------------------------------- public static final int getVisLevelIndex(int mod) { if ( isPublic(mod) ) return 3; else if ( isProtected(mod) ) return 2; else if ( isPrivate(mod) ) return 0; else /* package */ return 1; } // static getVisLevelIndex(int): int //------------------------------------------------------------------------- public static final int getTopLevelVisIndex(int mod) { if ( isPublic(mod) ) return TOPLEVEL_VIS_PUBLIC; // else if ( isProtected(mod) ) // error // else if ( isPrivate(mod) ) // error else /* package */ return TOPLEVEL_VIS_PACKAGE; } // static getTopLevelVisIndex(int): int //------------------------------------------------------------------------- public static final int getMemberVisIndex(int mod) { if ( isPublic(mod) ) return MEMBER_VIS_PUBLIC; else if ( isProtected(mod) ) return MEMBER_VIS_PROTECTED; else if ( isPrivate(mod) ) return MEMBER_VIS_PRIVATE; else /* package */ return MEMBER_VIS_PACKAGE; } // static getMemberVisIndex(int): int } // class RWModifier |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.