package com.ensoftcorp.open.android.essentials.subsystems.support;
import java.util.ArrayList;
import com.ensoftcorp.atlas.core.db.graph.Node;
import com.ensoftcorp.atlas.core.xcsg.XCSG;
import com.ensoftcorp.open.android.essentials.subsystems.AndroidSubsystem;
import com.ensoftcorp.open.java.commons.analysis.PackageAnalysis;
/**
* Android compatibility support libraries
*
* @author Ben Holland
*/
public class AndroidSupportSubsystem extends AndroidSubsystem {
public static final String TAG = "ANDROID_SUPPORT_SUBSYSTEM";
@Override
public String getTag() {
return TAG;
}
@Override
public String[] getParentTags() {
return new String[] { AndroidSubsystem.TAG };
}
@Override
public String getDescription() {
return getName() + " support libraries";
}
/**
* Returns all packages starting with the given package prefixes
* @param rootPackages
* @return
*/
protected String[] getNestedPackages(String... rootPackages){
ArrayList<String> packages = new ArrayList<String>();
for(String rootPackage : rootPackages){
for(Node pkg : PackageAnalysis.getPackageWithSubpackages(rootPackage).eval().nodes()){
packages.add(pkg.getAttr(XCSG.name).toString());
}
}
String[] result = new String[packages.size()];
return packages.toArray(result);
}
}