public Set<String> api_descriptors(Method m){
  Set<String> apid=new LinkedHashSet<String>();
  apid.addAll(m.getPermissions());
  String cname=m.getCname();
  String sig=m.getSignature();
  if (cname.startsWith("java")) {
    if (cname.contains("reflect"))     apid.add("java.reflection");
 else     if (cname.contains(".io") || cname.contains(".nio"))     apid.add("java.io");
 else     if (cname.contains(".net"))     apid.add("java.net");
 else     if (cname.contains(".rmi"))     apid.add("java.rmi");
 else     if (cname.contains("Thread") || cname.contains("Runnable") || (cname.contains("Process")))     apid.add("java.thread");
 else     if (cname.contains("Loader"))     apid.add("java.classloader");
  }
 else   if (cname.startsWith("android")) {
    if (sig.contains("Intent"))     apid.add("android.intent");
    if (cname.contains("opengl"))     apid.add("android.gui");
  }
  if (apid.size() == 0)   apid.add("misc");
  return apid;
}

public Set < String > api_descriptors ( Method m ) { Set < String > apid = new LinkedHashSet < String > ( ) ; apid . addAll ( m . getPermissions ( ) ) ; String cname = m . getCname ( ) ; String sig = m . getSignature ( ) ; if ( cname . startsWith ( "java" ) ) { if ( cname . contains ( "reflect" ) ) apid . add ( "java.reflection" ) ; else if ( cname . contains ( ".io" ) || cname . contains ( ".nio" ) ) apid . add ( "java.io" ) ; else if ( cname . contains ( ".net" ) ) apid . add ( "java.net" ) ; else if ( cname . contains ( ".rmi" ) ) apid . add ( "java.rmi" ) ; else if ( cname . contains ( "Thread" ) || cname . contains ( "Runnable" ) || ( cname . contains ( "Process" ) ) ) apid . add ( "java.thread" ) ; else if ( cname . contains ( "Loader" ) ) apid . add ( "java.classloader" ) ; } else if ( cname . startsWith ( "android" ) ) { if ( sig . contains ( "Intent" ) ) apid . add ( "android.intent" ) ; if ( cname . contains ( "opengl" ) ) apid . add ( "android.gui" ) ; } if ( apid . size ( ) == 0 ) apid . add ( "misc" ) ; return apid ; }
returns a set of descriptors for each method
