public void examineDirectory(File folder) throws ParseException,
			IOException {
		for (File file : folder.listFiles()) {
			if (file.isDirectory()) {
				examineDirectory(file);
			} else {
				if (file.getName().endsWith(".java")) {

					parsedInput = JavaParser.parse(file);
					String fileName = file.getName().substring(0,
							file.getName().length() - 5);

					classes.add(fileName);

					methods = new MethodVisitor();
					variables = new VariableVisitor();
					classOrInterface = new ClassVisitor();

					classOrInterface.visit(parsedInput, null);

					if (classOrInterface.returnExtendList() != null) {
						extendingList.put(fileName,
								classOrInterface.returnExtendList());
					}

					if (classOrInterface.returnImplementation() != null) {
						implementationList.put(fileName,
								classOrInterface.returnImplementation());
					}

					if (classOrInterface.returnClassOrInterface() != null) {
						classesOrInterfaces.put(fileName,
								classOrInterface.returnClassOrInterface());
					}

					variables.visit(parsedInput, null);

					if (variables.returnFieldAndType() != null) {
						typeAndFieldListPerClass.put(fileName,
								variables.returnFieldAndType());
					}

					methods.visit(parsedInput, null);

					if (methods.returnMethodList() != null) {
						methodListPerClass.put(fileName,
								methods.returnMethodList());
					}

					if (methods.returnMethodParameters() != null) {
						parameterListPerMethod.putAll(methods
								.returnMethodParameters());
					}
				}
			}
		}
	}