Example usage for java.lang Class getModifiers

List of usage examples for java.lang Class getModifiers

Introduction

In this page you can find the example usage for java.lang Class getModifiers.

Prototype

@HotSpotIntrinsicCandidate
public native int getModifiers();

Source Link

Document

Returns the Java language modifiers for this class or interface, encoded in an integer.

Usage

From source file:Main.java

public static void main(String[] args) throws Exception {
    Class<?> clazz = String.class;
    int modifier = clazz.getModifiers();

    if (Modifier.isFinal(modifier)) {
        System.out.println("isFinal");
    }/*www.j ava2  s  . com*/
}

From source file:Main.java

public static void main(String[] args) throws Exception {
    Class<?> clazz = String.class;
    int modifier = clazz.getModifiers();

    if (Modifier.isPrivate(modifier)) {
        System.out.println("isPrivate");
    }//  w w  w  . j a  v  a2 s  .  c om
}

From source file:Main.java

public static void main(String[] args) {

    Main c = new Main();
    Class cls = c.getClass();

    // returns the Java language modifiers for this class
    int i = cls.getModifiers();
    String retval = Modifier.toString(i);
    System.out.println(retval);//from  w  ww  .  j  a v a2s. com
}

From source file:grails.util.RunTests.java

public static void main(String[] args) {
    int exitCode = 0;
    try {/*from  w ww  .j  a  va 2s .  com*/
        log.info("Bootstrapping Grails from classpath");
        ConfigurableApplicationContext appCtx = (ConfigurableApplicationContext) GrailsUtil
                .bootstrapGrailsFromClassPath();
        GrailsApplication application = (GrailsApplication) appCtx.getBean(GrailsApplication.APPLICATION_ID);

        Class[] allClasses = application.getAllClasses();
        log.debug("Going through [" + allClasses.length + "] classes");
        TestSuite s = new TestSuite();
        for (int i = 0; i < allClasses.length; i++) {
            Class clazz = allClasses[i];
            if (TestCase.class.isAssignableFrom(clazz) && !Modifier.isAbstract(clazz.getModifiers())) {
                log.debug("Adding test [" + clazz.getName() + "]");
                s.addTest(new GrailsTestSuite(appCtx, clazz));
            } else {
                log.debug("[" + clazz.getName() + "] is not a test case.");
            }
        }
        String[] beanNames = appCtx.getBeanNamesForType(PersistenceContextInterceptor.class);
        PersistenceContextInterceptor interceptor = null;
        if (beanNames.length > 0) {
            interceptor = (PersistenceContextInterceptor) appCtx.getBean(beanNames[0]);
        }

        try {
            if (interceptor != null) {
                interceptor.init();
            }
            TestResult r = TestRunner.run(s);
            exitCode = r.errorCount() + r.failureCount();
            if (exitCode > 0) {
                System.err.println("Tests failed!");
            }
            if (interceptor != null)
                interceptor.flush();
        } finally {
            if (interceptor != null)
                interceptor.destroy();
        }
    } catch (Exception e) {
        log.error("Error executing tests: " + e.getMessage(), e);
        exitCode = 1;
    } finally {
        System.exit(exitCode);
    }
}

From source file:ShowClass.java

public static void main(String[] args) throws ClassNotFoundException {
    Class aClass = Class.forName("javax.swing.JComponent");
    if (aClass.isInterface()) {
        System.out.print(Modifier.toString(aClass.getModifiers()) + " " + typeName(aClass));
    } else if (aClass.getSuperclass() != null) {
        System.out.print(Modifier.toString(aClass.getModifiers()) + " class " + typeName(aClass) + " extends "
                + typeName(aClass.getSuperclass()));
    } else {/*from  w w w .ja  v a2s  .c  om*/
        System.out.print(Modifier.toString(aClass.getModifiers()) + " class " + typeName(aClass));
    }

    Class[] interfaces = aClass.getInterfaces();
    if ((interfaces != null) && (interfaces.length > 0)) {
        if (aClass.isInterface())
            System.out.print(" extends ");
        else
            System.out.print(" implements ");
        for (int i = 0; i < interfaces.length; i++) {
            if (i > 0)
                System.out.print(", ");
            System.out.print(typeName(interfaces[i]));
        }
    }

    System.out.println(" {");

    Constructor[] constructors = aClass.getDeclaredConstructors();
    for (int i = 0; i < constructors.length; i++)
        printMethodOrConstructor(constructors[i]);

    Field[] fields = aClass.getDeclaredFields();
    for (int i = 0; i < fields.length; i++)
        printField(fields[i]);

    Method[] methods = aClass.getDeclaredMethods();
    for (int i = 0; i < methods.length; i++)
        printMethodOrConstructor(methods[i]);

    System.out.println("}");
}

From source file:ReflectionTest.java

public static void main(String[] args) {
    // read class name from command line args or user input
    String name;/*ww w . jav  a2  s  .co  m*/
    if (args.length > 0)
        name = args[0];
    else {
        Scanner in = new Scanner(System.in);
        System.out.println("Enter class name (e.g. java.util.Date): ");
        name = in.next();
    }

    try {
        // print class name and superclass name (if != Object)
        Class cl = Class.forName(name);
        Class supercl = cl.getSuperclass();
        String modifiers = Modifier.toString(cl.getModifiers());
        if (modifiers.length() > 0)
            System.out.print(modifiers + " ");
        System.out.print("class " + name);
        if (supercl != null && supercl != Object.class)
            System.out.print(" extends " + supercl.getName());

        System.out.print("\n{\n");
        printConstructors(cl);
        System.out.println();
        printMethods(cl);
        System.out.println();
        printFields(cl);
        System.out.println("}");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    System.exit(0);
}

From source file:Main.java

public static void main(String... args) {
    try {//from   ww w. j  a va2s . c  o  m
        Class<?> c = Class.forName(args[0]);
        out.format("Class:%n  %s%n%n", c.getCanonicalName());
        out.format("Modifiers:%n  %s%n%n", Modifier.toString(c.getModifiers()));

        out.format("Type Parameters:%n");
        TypeVariable[] tv = c.getTypeParameters();
        if (tv.length != 0) {
            out.format("  ");
            for (TypeVariable t : tv)
                out.format("%s ", t.getName());
            out.format("%n%n");
        } else {
            out.format("  -- No Type Parameters --%n%n");
        }

        out.format("Implemented Interfaces:%n");
        Type[] intfs = c.getGenericInterfaces();
        if (intfs.length != 0) {
            for (Type intf : intfs)
                out.format("  %s%n", intf.toString());
            out.format("%n");
        } else {
            out.format("  -- No Implemented Interfaces --%n%n");
        }

        out.format("Inheritance Path:%n");
        List<Class> l = new ArrayList<Class>();
        printAncestor(c, l);
        if (l.size() != 0) {
            for (Class<?> cl : l)
                out.format("  %s%n", cl.getCanonicalName());
            out.format("%n");
        } else {
            out.format("  -- No Super Classes --%n%n");
        }

        out.format("Annotations:%n");
        Annotation[] ann = c.getAnnotations();
        if (ann.length != 0) {
            for (Annotation a : ann)
                out.format("  %s%n", a.toString());
            out.format("%n");
        } else {
            out.format("  -- No Annotations --%n%n");
        }

        // production code should handle this exception more gracefully
    } catch (ClassNotFoundException x) {
        x.printStackTrace();
    }
}

From source file:at.tuwien.ifs.somtoolbox.doc.RunnablesReferenceCreator.java

public static void main(String[] args) {
    ArrayList<Class<? extends SOMToolboxApp>> runnables = SubClassFinder.findSubclassesOf(SOMToolboxApp.class,
            true);//  w  ww  . j av a  2s  .  c o  m
    Collections.sort(runnables, SOMToolboxApp.TYPE_GROUPED_COMPARATOR);

    StringBuilder sbIndex = new StringBuilder(runnables.size() * 50);
    StringBuilder sbDetails = new StringBuilder(runnables.size() * 200);

    sbIndex.append("\n<table border=\"0\">\n");

    Type lastType = null;

    for (Class<? extends SOMToolboxApp> c : runnables) {
        try {
            // Ignore abstract classes and interfaces
            if (Modifier.isAbstract(c.getModifiers()) || Modifier.isInterface(c.getModifiers())) {
                continue;
            }

            Type type = Type.getType(c);
            if (type != lastType) {
                sbIndex.append("  <tr> <td colspan=\"2\"> <h5> " + type + " Applications </h5> </td> </tr>\n");
                sbDetails.append("<h2> " + type + " Applications </h2>\n");
                lastType = type;
            }
            String descr = "N/A";
            try {
                descr = (String) c.getDeclaredField("DESCRIPTION").get(null);
            } catch (Exception e) {
            }
            String longDescr = "descr";
            try {
                longDescr = (String) c.getDeclaredField("LONG_DESCRIPTION").get(null);
            } catch (Exception e) {
            }

            sbIndex.append("  <tr>\n");
            sbIndex.append("    <td> <a href=\"#").append(c.getSimpleName()).append("\">")
                    .append(c.getSimpleName()).append("</a> </td>\n");
            sbIndex.append("    <td> ").append(descr).append(" </td>\n");
            sbIndex.append("  </tr>\n");

            sbDetails.append("<h3 id=\"").append(c.getSimpleName()).append("\">").append(c.getSimpleName())
                    .append("</h3>\n");
            sbDetails.append("<p>").append(longDescr).append("</p>\n");

            try {
                Parameter[] options = (Parameter[]) c.getField("OPTIONS").get(null);
                JSAP jsap = AbstractOptionFactory.registerOptions(options);
                final ByteArrayOutputStream os = new ByteArrayOutputStream();
                PrintStream ps = new PrintStream(os);
                AbstractOptionFactory.printHelp(jsap, c.getName(), ps);
                sbDetails.append("<pre>").append(StringEscapeUtils.escapeHtml(os.toString())).append("</pre>");
            } catch (Exception e1) { // we didn't find the options => let the class be invoked ...
            }

        } catch (SecurityException e) {
            // Should not happen - no Security
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        }
    }
    sbIndex.append("</table>\n\n");
    System.out.println(sbIndex);
    System.out.println(sbDetails);
}

From source file:ReflectClass.java

public static void main(String args[]) {
    Constructor cn[];/*from  ww  w.  j a v  a  2s  .  co  m*/
    Class cc[];
    Method mm[];
    Field ff[];
    Class c = null;
    Class supClass;
    String x, y, s1, s2, s3;
    Hashtable classRef = new Hashtable();

    if (args.length == 0) {
        System.out.println("Please specify a class name on the command line.");
        System.exit(1);
    }

    try {
        c = Class.forName(args[0]);
    } catch (ClassNotFoundException ee) {
        System.out.println("Couldn't find class '" + args[0] + "'");
        System.exit(1);
    }

    /*
     * Step 0: If our name contains dots we're in a package so put
     * that out first.
     */
    x = c.getName();
    if (x.lastIndexOf(".") != -1) {
        y = x.substring(0, x.lastIndexOf("."));
        System.out.println("package " + y + ";\n\r");
    }

    /*
     * Let's use the Reflection API to sift through what is
     * inside this class.
     *
     * Step 1: Collect referenced classes
     * This step is used so that I can regenerate the import statements.
     * It isn't strictly required of course, Java works just fine with
     * fully qualified object class names, but it looks better when you
     * use 'String' rather than 'java.lang.String' as the return type.
     */

    ff = c.getDeclaredFields();
    for (int i = 0; i < ff.length; i++) {
        x = tName(ff[i].getType().getName(), classRef);
    }

    cn = c.getDeclaredConstructors();
    for (int i = 0; i < cn.length; i++) {
        Class cx[] = cn[i].getParameterTypes();
        if (cx.length > 0) {
            for (int j = 0; j < cx.length; j++) {
                x = tName(cx[j].getName(), classRef);
            }
        }
    }

    mm = c.getDeclaredMethods();
    for (int i = 0; i < mm.length; i++) {
        x = tName(mm[i].getReturnType().getName(), classRef);
        Class cx[] = mm[i].getParameterTypes();
        if (cx.length > 0) {
            for (int j = 0; j < cx.length; j++) {
                x = tName(cx[j].getName(), classRef);
            }
        }
    }

    // Don't import ourselves ...
    classRef.remove(c.getName());

    /*
     * Step 2: Start class description generation, start by printing
     *  out the import statements.
     *
     * This is the line that goes 'public SomeClass extends Foo {'
     */
    for (Enumeration e = classRef.keys(); e.hasMoreElements();) {
        System.out.println("import " + e.nextElement() + ";");
    }
    System.out.println();

    /*
     * Step 3: Print the class or interface introducer. We use
     * a convienience method in Modifer to print the whole string.
     */
    int mod = c.getModifiers();
    System.out.print(Modifier.toString(mod));

    if (Modifier.isInterface(mod)) {
        System.out.print(" interface ");
    } else {
        System.out.print(" class ");
    }
    System.out.print(tName(c.getName(), null));

    supClass = c.getSuperclass();
    if (supClass != null) {
        System.out.print(" extends " + tName(supClass.getName(), classRef));
    }
    System.out.println(" {");

    /*
     * Step 4: Print out the fields (internal class members) that are declared
     * by this class.
     *
     * Fields are of the form [Modifiers] [Type] [Name] ;
     */

    System.out.println("\n\r/*\n\r * Field Definitions.\r\n */");
    for (int i = 0; i < ff.length; i++) {
        Class ctmp = ff[i].getType();
        int md = ff[i].getModifiers();

        System.out.println("    " + Modifier.toString(md) + " " + tName(ff[i].getType().getName(), null) + " "
                + ff[i].getName() + ";");
    }

    /*
     * Step 5: Print out the constructor declarations.
     *
     * We note the name of the class which is the 'name' for all
     * constructors. Also there is no type, so the definition is
     * simplye [Modifiers] ClassName ( [ Parameters ] ) { }
     *
     */
    System.out.println("\n\r/*\n\r * Declared Constructors. \n\r */");
    x = tName(c.getName(), null);
    for (int i = 0; i < cn.length; i++) {
        int md = cn[i].getModifiers();
        System.out.print("    " + Modifier.toString(md) + " " + x);

        Class cx[] = cn[i].getParameterTypes();
        System.out.print("( ");
        if (cx.length > 0) {
            for (int j = 0; j < cx.length; j++) {
                System.out.print(tName(cx[j].getName(), null));
                if (j < (cx.length - 1))
                    System.out.print(", ");
            }
        }
        System.out.print(") ");
        System.out.println("{ ... }");
    }

    /*
     * Step 6: Print out the method declarations.
     *
     * Now methods have a name, a return type, and an optional
     * set of parameters so they are :
     *  [modifiers] [type] [name] ( [optional parameters] ) { }
     */
    System.out.println("\n\r/*\n\r * Declared Methods.\n\r */");
    for (int i = 0; i < mm.length; i++) {
        int md = mm[i].getModifiers();
        System.out.print("    " + Modifier.toString(md) + " " + tName(mm[i].getReturnType().getName(), null)
                + " " + mm[i].getName());

        Class cx[] = mm[i].getParameterTypes();
        System.out.print("( ");
        if (cx.length > 0) {
            for (int j = 0; j < cx.length; j++) {
                System.out.print(tName(cx[j].getName(), classRef));
                if (j < (cx.length - 1))
                    System.out.print(", ");
            }
        }
        System.out.print(") ");
        System.out.println("{ ... }");
    }

    /*
     * Step 7: Print out the closing brace and we're done!
     */
    System.out.println("}");
}

From source file:Main.java

private static void getClassModifier(Class clazz) {
    int modifier = clazz.getModifiers();

    if (Modifier.isFinal(modifier)) {
        System.out.println(clazz.getName() + " class modifier is final");
    }//from w  w  w .  jav a2 s  .co  m
}