[API CHANGE] WIP: Experimental new binary type.rdb format

Make javamaker work on top of unoidl/ instead of registry/.

API CHANGE: javamaker no longer supports the -B switch, as that is meaningless
with the new format.  When reading from an old-format .rdb file, /UCR is hard-
coded as the prefix now.

Change-Id: I8cca39f8ebacd0476934f7bd493d206928d063a9
This commit is contained in:
Stephan Bergmann
2013-04-11 09:27:11 +02:00
parent 358b60b3b1
commit fc02ae8f82
13 changed files with 1547 additions and 1701 deletions

View File

@ -40,20 +40,10 @@
namespace codemaker { namespace java {
OString translateUnoToJavaType(
codemaker::UnoType::Sort sort, RTTypeClass typeClass,
OString const & nucleus, bool referenceType)
codemaker::UnoType::Sort sort, OString const & nucleus, bool referenceType)
{
OStringBuffer buf;
if (sort == codemaker::UnoType::SORT_COMPLEX) {
if (typeClass == RT_TYPE_INTERFACE && nucleus == "com/sun/star/uno/XInterface")
{
buf.append("java/lang/Object");
} else {
//TODO: check that nucleus is a valid (Java-modified UTF-8)
// identifier
buf.append(nucleus);
}
} else {
if (sort <= codemaker::UnoType::SORT_ANY) {
OString const javaTypes[codemaker::UnoType::SORT_ANY + 1][2] = {
{ "void", "java/lang/Void" },
{ "boolean", "java/lang/Boolean" },
@ -71,6 +61,14 @@ OString translateUnoToJavaType(
{ "com/sun/star/uno/Type", "com/sun/star/uno/Type" },
{ "java/lang/Object", "java/lang/Object" } };
buf.append(javaTypes[sort][referenceType]);
} else {
if (nucleus == "com/sun/star/uno/XInterface") {
buf.append("java/lang/Object");
} else {
//TODO: check that nucleus is a valid (Java-modified UTF-8)
// identifier
buf.append(nucleus);
}
}
return buf.makeStringAndClear();
}