InputStream in = null;
try {
try {
in = url.openStream();
ClassParserEx cp = new ClassParserEx(in, subclassName);
ClassMetaData metadata = new ClassMetaData(subclassName,
className, cp.parseInterfaceNames(), cp.isInterface());
Graph<ClassMetaData> node = new Graph<ClassMetaData>(metadata);
classMetaDataGraph.addChild(node);
updateSubclasses(classLoader, node, subclassMap, subclassName);
} catch (Exception exc) {
try {
Class<?> subclass = classLoader.loadClass(subclassName);
Set<String> interfaceNames = new HashSet<String>();
for (Class<?> interfaceClass : subclass.getInterfaces()) {
interfaceNames.add(interfaceClass.getName());
}
ClassMetaData metadata = new ClassMetaData(subclassName,
className, interfaceNames, subclass.isInterface());
Graph<ClassMetaData> node = new Graph<ClassMetaData>(
metadata);
classMetaDataGraph.addChild(node);
updateSubclasses(classLoader, node, subclassMap,