List of usage examples for java.lang.reflect Modifier isInterface
public static boolean isInterface(int mod)
From source file:Main.java
public static void main(String[] args) throws Exception { Class<?> clazz = String.class; int modifier = clazz.getModifiers(); if (Modifier.isInterface(modifier)) { System.out.println("isInterface"); }/*w ww. ja v a 2 s . c o m*/ }
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 w w .j a va 2 s .com 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 www . j a va 2s. c o 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
@SuppressWarnings("unchecked") public static boolean isAbstractClass(Class clazz) { int modifier = clazz.getModifiers(); return Modifier.isAbstract(modifier) || Modifier.isInterface(modifier); }
From source file:DeclarationInfoDemo.java
public static void printModifiers(final Class dataType) { final int modifiers = dataType.getModifiers(); if (Modifier.isPrivate(modifiers)) { System.out.print("private "); }/*from w w w . j a v a2 s . c o m*/ if (Modifier.isPrivate(modifiers)) { System.out.print("private "); } if (Modifier.isPublic(modifiers)) { System.out.print("private "); } if (Modifier.isAbstract(modifiers)) { System.out.print("abstract "); } if (Modifier.isFinal(modifiers)) { System.out.print("final "); } if (Modifier.isNative(modifiers)) { System.out.print("native "); } if (Modifier.isInterface(modifiers)) { System.out.print("interface "); } if (Modifier.isStatic(modifiers)) { System.out.print("static "); } if (Modifier.isStrict(modifiers)) { System.out.print("strict "); } if (Modifier.isSynchronized(modifiers)) { System.out.print("synchronized "); } if (Modifier.isTransient(modifiers)) { System.out.print("transient "); } if (Modifier.isVolatile(modifiers)) { System.out.print("volatile "); } System.out.println(dataType.getName()); }
From source file:ModifierUtil.java
public static boolean isInterface(Member member) { return Modifier.isInterface(member.getModifiers()); }
From source file:game.utils.Utils.java
public static boolean isConcrete(Class type) { return type.isPrimitive() || (!Modifier.isAbstract(type.getModifiers()) && !Modifier.isInterface(type.getModifiers())); }
From source file:ModifierUtil.java
public static boolean isInterface(Class<?> clazz) { return Modifier.isInterface(clazz.getModifiers()); }
From source file:com.yahoo.flowetl.core.util.KlassUtils.java
/** * Checks if a class is an interface./*from www .j a v a2 s .c om*/ * * @param klass * the class to check * * @return true, if it is an interface */ public static boolean isInterface(Class<?> klass) { int modifiers = klass.getModifiers(); if (Modifier.isInterface(modifiers)) { return true; } return false; }
From source file:nl.strohalm.cyclos.utils.ClassHelper.java
/** * If the class is concrete, return it. Else, try to find a well known subclass * @param <T> The specified class type * @param <C> The resulting class type * @param clazz The specified class/* www . ja v a 2 s. c om*/ * @return The class if it is concrete, or a well-known subclass. * @throws IllegalArgumentException The specified class is abstract (or interface) and not a well-known one */ @SuppressWarnings({ "unchecked", "rawtypes" }) public static <T, C extends T> Class<C> concreteClass(final Class<T> clazz) { if (clazz == null) { throw new NullPointerException("null.clazz"); } Class<C> ret = null; final int modifiers = clazz.getModifiers(); if (Modifier.isAbstract(modifiers) || Modifier.isInterface(modifiers) || Collection.class.isAssignableFrom(clazz)) { if (Calendar.class.isAssignableFrom(clazz)) { ret = (Class) GregorianCalendar.class; } else if (SortedSet.class.isAssignableFrom(clazz)) { ret = (Class) TreeSet.class; } else if (Set.class.isAssignableFrom(clazz)) { ret = (Class) LinkedHashSet.class; } else if (Collection.class.isAssignableFrom(clazz)) { ret = (Class) ArrayList.class; } else if (SortedMap.class.isAssignableFrom(clazz)) { ret = (Class) TreeMap.class; } else if (Map.class.isAssignableFrom(clazz)) { ret = (Class) LinkedHashMap.class; } else { throw new IllegalArgumentException("Unknown concrete class for " + clazz.getName()); } } else { ret = (Class) clazz; } return ret; }