return startAnalyses(info, mask);
}
public CollectedInfo startAnalyses(CollectedInfo info, int type)
throws ClassFileNotFoundException {
CollectedInfo newInfo = info;
for (ClassInfo cls : newInfo.getParsed().values()) {
if (isAnalysisEnabled(type, AnalysisType.SUBTYPES.weight)) {
SubtypeInfo subtype = analyzeSubtype(cls, info);
if (subtype != null) {
if (subtype.getType().equals("InstructionFactory")) {
if (isAnalysisEnabled(type, AnalysisType.IFACTORIES.weight)) {
newInfo.register(subtype);
}
} else if (subtype.getType().equals("Listener")) {
if (isAnalysisEnabled(type, AnalysisType.LISTENERS.weight)) {
newInfo.register(subtype);
}
//-- add more else-if for each type whether you want to filter
// another subtype case.
} else {
newInfo.register(subtype);
}
}
}
if (isAnalysisEnabled(type, AnalysisType.MODELCLASSES.weight)) {
ModelClassInfo model = analyzeModelClass(cls, info);
if (model != null) {
newInfo.register(model);
}
}
if (isAnalysisEnabled(type, AnalysisType.NATIVEPEERS.weight)) {
NativePeerInfo peer = analyzeNativePeer(cls, info);
if (peer != null) {
newInfo.register(peer);
}
}
}
return newInfo;
}