#!/usr/bin/python # -*- coding: iso-8859-1 -*- __version__ = "$Revision: 0.2 $" __author__ = "Nicolas Seriot" __date__ = "2005-05-07" import string import os import sys class JavaDoc: """ Cette classe représente des fichiers de la JavaDoc """ __basepath = "/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Resources/Documentation/Reference/doc/api/java/" __packages = ['lang', 'io', 'net', 'text', 'util'] # liste des packages considérés __classes = [] __dico = {} # constructeur def __init__(self): if not os.path.exists(self.__basepath): return None for package in self.__packages: package_path = self.__basepath + package self.__classes = os.listdir(package_path) self.__classes = filter(lambda x : x.endswith(".html") and x[0].isupper(), self.__classes) self.__classes = map(lambda x : x[:-5], self.__classes) for c in self.__classes: if not c in self.__dico: self.__dico[c] = package # retourne le chemin du fichier de doc pour une classe donnée def path(self, class_name): if class_name in self.__dico: return self.__basepath + self.__dico[class_name] + "/" + class_name + ".html" elif not ((class_name[0].isupper()) and (class_name[1:].islower())): # tenter de corriger la casse return self.path(class_name[0].upper() + class_name[1:].lower()) else: return "not_found" # savoir si la javadoc est installée def isInstalled(self): return os.path.exists(self.__basepath) # affichage def __str__(self): return str(self.__dico) # destructeur def __del__(self): pass if __name__ == "__main__": USAGE = "Usage : python " + sys.argv[0] + " + " if len(sys.argv) != 2: print USAGE sys.exit(1) javadoc = JavaDoc() if not javadoc.isInstalled(): print " Error : JavaDoc is not installed." print " You can install it from Apple DevTools." print " or you can download it from Apple Developer Connection," print " see http://developer.apple.com/." else: if not sys.argv[1].isalpha(): print " Error! please enter only letters." sys.exit(1) path = javadoc.path(sys.argv[1]) if path == "not_found": print " JavaDoc for \"" + sys.argv[1] + "\" could not be found." print " Please check the spelling or the searched packages." else: os.system("open " + javadoc.path(sys.argv[1]))