/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.apkcheck;
import java.util.HashMap;
import java.util.Iterator;
/**
* Holds a list of API members, including classes, fields, and methods.
*/
public class ApiList {
private HashMap<String,PackageInfo> mPackageList;
private String mDebugString;
private int mWarnings, mErrors;
/**
* Constructs an ApiList.
*
* @param debugString Identification string useful for debugging.
*/
public ApiList(String debugString) {
mPackageList = new HashMap<String,PackageInfo>();
mDebugString = debugString;
}
/**
* Returns the source filename. Useful for debug messages only.
*/
public String getDebugString() {
return mDebugString;
}
/**
* Increment the number of warnings associated with this API list.
*/
public void incrWarnings() {
mWarnings++;
}
/**
* Increment the errors of warnings associated with this API list.
*/
public void incrErrors() {
mErrors++;
}
/**
* Returns the number of warnings associated with this API list.
*/
public int getWarningCount() {
return mWarnings;
}
/**
* Returns the number of errors associated with this API list.
*/
public int getErrorCount() {
return mErrors;
}
/**
* Retrieves the named package.
*
* @return the package, or null if no match was found
*/
public PackageInfo getPackage(String name) {
return mPackageList.get(name);
}
/**
* Retrieves the named package, creating it if it doesn't already
* exist.
*/
public PackageInfo getOrCreatePackage(String name) {
PackageInfo pkgInfo = mPackageList.get(name);
if (pkgInfo == null) {
pkgInfo = new PackageInfo(name);
mPackageList.put(name, pkgInfo);
}
return pkgInfo;
}
/**
* Returns an iterator for the set of known packages.
*/
public Iterator<PackageInfo> getPackageIterator() {
return mPackageList.values().iterator();
}
}