Refactored most of comments translating code for java, preliminary version, lots of bugs right now

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2012-doxygen@13217 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Dmitry Kabak 2012-07-02 20:29:49 +00:00
commit 4c215eb337
5 changed files with 249 additions and 93 deletions

View file

@ -15,24 +15,55 @@
#define JAVADOCCONVERTER_H_
#include "DoxygenTranslator.h"
#include <map>
/*
* A class to translate doxygen comments into JavaDoc style comments.
*/
class JavaDocConverter : public DoxygenTranslator {
public:
JavaDocConverter() : debug(false) {
}
JavaDocConverter();
String *makeDocumentation(Node *node);
protected:
std::string formatCommand(std::string unformattedLine, int indent);
std::string translateEntity(DoxygenEntity & doxyEntity);
std::string javaDocFormat(DoxygenEntity & doxygenEntity);
std::string translateSubtree(DoxygenEntity & doxygenEntity);
void translateEntity(DoxygenEntity &tag, std::string &translatedComment);
/*
* Typedef for the function that handles one tag
*/
typedef void (*tagHandler)(JavaDocConverter *converter, DoxygenEntity &tag, std::string &translatedComment);
/*
* Here comes various tag handlers
*/
static void handleTagC(JavaDocConverter *converter, DoxygenEntity &tag, std::string &translatedComment);
static void handleTagB(JavaDocConverter *converter, DoxygenEntity &tag, std::string &translatedComment);
static void handleTagThrow(JavaDocConverter *converter, DoxygenEntity &tag, std::string &translatedComment);
static void handleTagSeeAll(JavaDocConverter *converter, DoxygenEntity &tag, std::string &translatedComment);
/*
* Print the name of tag to the output, used for escape-commands
*/
static void handleTagChar(JavaDocConverter *converter, DoxygenEntity &tag, std::string &translatedComment);
/*
* Do not translate and print as-is
*/
static void handleTagSame(JavaDocConverter *converter, DoxygenEntity &tag, std::string &translatedComment);
/*
* Print only the content and strip original tag
*/
static void handleTagStrip(JavaDocConverter *converter, DoxygenEntity &tag, std::string &translatedComment);
/*
* Print only data part of code
*/
static void handleTagData(JavaDocConverter *converter, DoxygenEntity &tag, std::string &translatedComment);
private:
bool debug;
std::map<std::string, tagHandler> tagHandlers;
static std::map<std::string, std::string> escapeTable;
void fillEscapeTable();
};
#endif