/** * Returns true if the given owner class is known in the API database. * * @param className the internal name of the class, e.g. its fully qualified name (as returned * by Class.getName(), but with '.' replaced by '/' (and '$' for inner * classes) * @return true if this is a class found in the API database */ public boolean containsClass(@NonNull String className) { if (mData != null) { return findClass(className) != -1; } else if (mInfo != null) { return mInfo.getClass(className) != null; } return false; }
ApiParser apiParser = new ApiParser(); parser.parse(fileInputStream, apiParser); return new Api(apiParser.getClasses()); } catch (ParserConfigurationException e) { e.printStackTrace();
private static boolean createCache(LintClient client, File xmlFile, File binaryData) { long begin = 0; if (WRITE_STATS) { begin = System.currentTimeMillis(); } Api info = Api.parseApi(xmlFile); if (WRITE_STATS) { long end = System.currentTimeMillis(); System.out.println("Reading XML data structures took " + (end - begin) + " ms)"); } if (info != null) { try { writeDatabase(binaryData, info); return true; } catch (IOException ioe) { client.log(ioe, "Can't write API cache file"); } } return false; }
final Api api = restAdapter.create(Api.class); final ClassLoader loader = api.getClass().getClassLoader(); final Class<?>[] interfaces = api.getClass().getInterfaces(); final Api proxy = (Api) Proxy.newProxyInstance(loader, interfaces, new ResponseInvocationHandler(api)); proxy.request().subscribe(response -> { System.out.println("Success!"); });
Map<String, ApiClass> classMap = info.getClasses(); List<ApiPackage> packages = Lists.newArrayList(info.getPackages().values()); Collections.sort(packages);
Map<String, ApiClass> classMap = info.getClasses();
private void addAllMethods(Api info, Set<String> set, boolean includeConstructors) { if (!includeConstructors) { for (String method : mMethods.keySet()) { if (!method.startsWith(CONSTRUCTOR_NAME)) { set.add(method); } } } else { for (String method : mMethods.keySet()) { set.add(method); } } for (Pair<String, Integer> superClass : mSuperClasses) { ApiClass clz = info.getClass(superClass.getFirst()); if (clz != null) { clz.addAllMethods(info, set, false); } } // Get methods from implemented interfaces as well; for (Pair<String, Integer> superClass : mInterfaces) { ApiClass clz = info.getClass(superClass.getFirst()); if (clz != null) { clz.addAllMethods(info, set, false); } } }
private static boolean createCache(LintClient client, File xmlFile, File binaryData) { long begin = 0; if (WRITE_STATS) { begin = System.currentTimeMillis(); } Api info = Api.parseApi(xmlFile); if (WRITE_STATS) { long end = System.currentTimeMillis(); System.out.println("Reading XML data structures took " + (end - begin) + " ms)"); } if (info != null) { try { writeDatabase(binaryData, info); return true; } catch (IOException ioe) { client.log(ioe, "Can't write API cache file"); } } return false; }
return new Api(apiParser.getClasses(), apiParser.getPackages()); } catch (ParserConfigurationException e) { e.printStackTrace();
private void addAllFields(Api info, Set<String> set) { for (String field : mFields.keySet()) { set.add(field); } for (Pair<String, Integer> superClass : mSuperClasses) { ApiClass clz = info.getClass(superClass.getFirst()); assert clz != null : superClass.getSecond(); clz.addAllFields(info, set); } // Get methods from implemented interfaces as well; for (Pair<String, Integer> superClass : mInterfaces) { ApiClass clz = info.getClass(superClass.getFirst()); assert clz != null : superClass.getSecond(); clz.addAllFields(info, set); } }
private void addAllMethods(Api info, Set<String> set, boolean includeConstructors) { if (!includeConstructors) { for (String method : mMethods.keySet()) { if (!method.startsWith(CONSTRUCTOR_NAME)) { set.add(method); } } } else { for (String method : mMethods.keySet()) { set.add(method); } } for (Pair<String, Integer> superClass : mSuperClasses) { ApiClass clz = info.getClass(superClass.getFirst()); assert clz != null : superClass.getSecond(); if (clz != null) { clz.addAllMethods(info, set, false); } } // Get methods from implemented interfaces as well; for (Pair<String, Integer> superClass : mInterfaces) { ApiClass clz = info.getClass(superClass.getFirst()); assert clz != null : superClass.getSecond(); if (clz != null) { clz.addAllMethods(info, set, false); } } }
private void addAllFields(Api info, Set<String> set) { for (String field : mFields.keySet()) { set.add(field); } for (Pair<String, Integer> superClass : mSuperClasses) { ApiClass clz = info.getClass(superClass.getFirst()); assert clz != null : superClass.getSecond(); if (clz != null) { clz.addAllFields(info, set); } } // Get methods from implemented interfaces as well; for (Pair<String, Integer> superClass : mInterfaces) { ApiClass clz = info.getClass(superClass.getFirst()); assert clz != null : superClass.getSecond(); if (clz != null) { clz.addAllFields(info, set); } } }
/** * Returns the API version required by the given class reference, * or -1 if this is not a known API class. Note that it may return -1 * for classes introduced in version 1; internally the database only * stores version data for version 2 and up. * * @param className the internal name of the class, e.g. its * fully qualified name (as returned by Class.getName(), but with * '.' replaced by '/'. * @return the minimum API version the method is supported for, or -1 if * it's unknown <b>or version 1</b>. */ public int getClassVersion(@NonNull String className) { //noinspection VariableNotUsedInsideIf if (mData != null) { return getClassVersion(findClass(className)); } else if (mInfo != null) { ApiClass clz = mInfo.getClass(className); if (clz != null) { int since = clz.getSince(); if (since == Integer.MAX_VALUE) { since = -1; } return since; } } return -1; }
ApiClass clz = mInfo.getClass(className); if (clz != null) { int deprecatedIn = clz.getDeprecatedIn();
ApiClass clz = mInfo.getClass(owner); if (clz != null) { int deprecatedIn = clz.getMemberDeprecatedIn(name, mInfo);