¿Existe una API para acceder mediante programación al Java documentation? Algo similar a lo que editores/IDE como Eclipse hacen para IntelliSense. Seguramente, el html generado por javadoc se puede analizar e indexar, pero sería genial saber si algo ya existe como un paquete independiente.Acceso programático a la documentación de Java
Actualización: Para ser claro, estoy tratando de obtener un acceso programático a la documentación para la implementación del lenguaje Java. Sin embargo, no hay una salida fácil, pero tiene que obtener el openjdk del sitio de Oracle y luego hacer make docs
y suministrar algún doclet para obtener el resultado en forma no-html. Esto es lo que estaba tratando de evitar desde el principio. ¡Así que estoy leyendo todos los Makefiles ahora tratando de descubrir por qué $ PLATFORM no se está resolviendo y la creación de fuentes está fallando!
Lo que finalmente se estableció con:
con cucharones documentos html. Sí. Me di cuenta de que terminaría mi trabajo.
import urllib2
import pymongo
mongo = pymongo.Connection('localhost')
mongo_db = mongo['api_db']
mongo_collection = mongo_db['api_collection']
URL='''http://docs.oracle.com/javase/6/docs/api/index-files/index-'''
URL_range = 27+1
def getPageElements(url):
content=urllib2.urlopen(url).read()
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(content)
elements = soup('dl')
return elements
def savePageElements(elements):
for i in elements[0]:
try:
entry={'type_description':str(i.findNext('dt')).split('-')[1].split('<')[0]\
+i.findNext('a').findNext('a').renderContents(),\
'signature':i.findNext('a').findNext('a').renderContents()+i.findNext('b').renderContents(),\
'description': i.findNext('dd').renderContents()\
}
print entry
insert_id = mongo_collection.save(entry)
except:
pass
def retrieve(str):
mongo_documents = mongo_collection.find({
'signature': str,
#'type_description':"Method of java.io.PrintStream"
})
for this_document in mongo_documents:
print this_document
if __name__=="__main__":
for i in range(1,URL_range):
#url=URL+str(i)+".html"
#print "Processing:", url
#elements=getPageElements(url)
#print elements[0]
#savePageElements(elements)
retrieve("println(String)")
Pero eche un vistazo a dexy. Si hubiera podido construir OpenJDK en Ubuntu sin problemas, habría generado un buen JSON para jugar.
¿Para qué? – MadProgrammer
Para construir un prototipo de investigación para "ubicación de características" y "trazabilidad" entre el código y la documentación. – Tathagata
¿Necesitaría una versión específica? es decir, Java 7, Java 6? ¿O necesitaría poder rastrear entre – MadProgrammer