summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--codemaker/source/javamaker/javatype.cxx349
1 files changed, 91 insertions, 258 deletions
diff --git a/codemaker/source/javamaker/javatype.cxx b/codemaker/source/javamaker/javatype.cxx
index 05db893c5d3a..de3392efabcd 100644
--- a/codemaker/source/javamaker/javatype.cxx
+++ b/codemaker/source/javamaker/javatype.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: javatype.cxx,v $
*
- * $Revision: 1.26 $
+ * $Revision: 1.27 $
*
- * last change: $Author: rt $ $Date: 2005-01-31 15:29:47 $
+ * last change: $Author: kz $ $Date: 2005-03-01 11:57:57 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -70,6 +70,7 @@
#include "codemaker/options.hxx"
#include "codemaker/typemanager.hxx"
#include "codemaker/unotype.hxx"
+#include "codemaker/commonjava.hxx"
#include "osl/diagnose.h"
#include "registry/reader.hxx"
@@ -96,21 +97,6 @@ using codemaker::javamaker::ClassFile;
namespace {
-rtl::OString convertString(rtl::OUString const & string) {
- rtl::OString s;
- if (!string.convertToString(
- &s, RTL_TEXTENCODING_UTF8,
- (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR
- | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR)))
- {
- throw CannotDumpException(
- rtl::OString(
- RTL_CONSTASCII_STRINGPARAM(
- "Failure converting string from UTF-16 to UTF-8")));
- }
- return s;
-}
-
void checkNoTypeArguments(std::vector< rtl::OString > const & arguments) {
if (!arguments.empty()) {
throw CannotDumpException(
@@ -119,71 +105,6 @@ void checkNoTypeArguments(std::vector< rtl::OString > const & arguments) {
}
}
-codemaker::UnoType::Sort decomposeAndResolve(
- TypeManager const & manager, rtl::OString const & type,
- bool resolveTypedefs, bool allowVoid, RTTypeClass * typeClass,
- rtl::OString * name, sal_Int32 * rank,
- std::vector< rtl::OString > * arguments)
-{
- OSL_ASSERT(typeClass != 0 && name != 0 && rank != 0 && arguments != 0);
- *rank = 0;
- for (rtl::OString t(type);;) {
- sal_Int32 n;
- *name = codemaker::UnoType::decompose(t, &n, arguments);
- if (n > SAL_MAX_INT32 - *rank) {
- throw CannotDumpException(
- rtl::OString(
- RTL_CONSTASCII_STRINGPARAM("Bad type information"))); //TODO
- }
- *rank += n;
- codemaker::UnoType::Sort sort = codemaker::UnoType::getSort(*name);
- switch (sort) {
- case codemaker::UnoType::SORT_VOID:
- if (!allowVoid) {
- throw CannotDumpException(
- rtl::OString(
- RTL_CONSTASCII_STRINGPARAM("Bad type information")));
- //TODO
- }
- default:
- checkNoTypeArguments(*arguments);
- *typeClass = RT_TYPE_INVALID;
- return sort;
-
- case codemaker::UnoType::SORT_COMPLEX:
- typereg::Reader reader(manager.getTypeReader(*name));
- *typeClass = reader.getTypeClass();
- switch (*typeClass) {
- case RT_TYPE_ENUM:
- case RT_TYPE_INTERFACE:
- checkNoTypeArguments(*arguments);
- case RT_TYPE_STRUCT:
- return sort;
-
- case RT_TYPE_TYPEDEF:
- checkNoTypeArguments(*arguments);
- if (reader.getSuperTypeCount() == 1
- && reader.getFieldCount() == 0
- && reader.getMethodCount() == 0
- && reader.getReferenceCount() == 0)
- {
- if (resolveTypedefs) {
- t = convertString(reader.getSuperTypeName(0));
- continue;
- } else {
- return sort;
- }
- }
- default:
- throw CannotDumpException(
- rtl::OString(
- RTL_CONSTASCII_STRINGPARAM("Bad type information")));
- //TODO
- }
- }
- }
-}
-
// helper function for createUnoName
void appendUnoName(
TypeManager const & manager, rtl::OString const & nucleus, sal_Int32 rank,
@@ -203,9 +124,9 @@ void appendUnoName(
rtl::OString argNucleus;
sal_Int32 argRank;
std::vector< rtl::OString > argArgs;
- decomposeAndResolve(
- manager, *i, true, false, &argTypeClass, &argNucleus, &argRank,
- &argArgs);
+ codemaker::decomposeAndResolve(
+ manager, *i, true, false, false, &argTypeClass, &argNucleus,
+ &argRank, &argArgs);
appendUnoName(manager, argNucleus, argRank, argArgs, buffer);
}
buffer->append('>');
@@ -246,114 +167,12 @@ bool isSpecialType(SpecialType special) {
return special >= SPECIAL_TYPE_UNSIGNED;
}
-rtl::OString translateUnoToJavaIdentifier(
- rtl::OString const & identifier, rtl::OString const & prefix)
-{
- if (identifier == "abstract"
- || identifier == "assert" // since Java 1.4
- || identifier == "boolean"
- || identifier == "break"
- || identifier == "byte"
- || identifier == "case"
- || identifier == "catch"
- || identifier == "char"
- || identifier == "class"
- || identifier == "const"
- || identifier == "continue"
- || identifier == "default"
- || identifier == "do"
- || identifier == "double"
- || identifier == "else"
- || identifier == "enum" // probable addition in Java 1.5
- || identifier == "extends"
- || identifier == "final"
- || identifier == "finally"
- || identifier == "float"
- || identifier == "for"
- || identifier == "goto"
- || identifier == "if"
- || identifier == "implements"
- || identifier == "import"
- || identifier == "instanceof"
- || identifier == "int"
- || identifier == "interface"
- || identifier == "long"
- || identifier == "native"
- || identifier == "new"
- || identifier == "package"
- || identifier == "private"
- || identifier == "protected"
- || identifier == "public"
- || identifier == "return"
- || identifier == "short"
- || identifier == "static"
- || identifier == "strictfp"
- || identifier == "super"
- || identifier == "switch"
- || identifier == "synchronized"
- || identifier == "this"
- || identifier == "throw"
- || identifier == "throws"
- || identifier == "transient"
- || identifier == "try"
- || identifier == "void"
- || identifier == "volatile"
- || identifier == "while")
- {
- rtl::OStringBuffer buf(prefix);
- buf.append('_');
- buf.append(identifier);
- return buf.makeStringAndClear();
- } else {
- return identifier;
- }
-}
-
rtl::OString translateUnoTypeToJavaFullyQualifiedName(
rtl::OString const & type, rtl::OString const & prefix)
{
sal_Int32 i = type.lastIndexOf('/') + 1;
- return type.copy(0, i) + translateUnoToJavaIdentifier(type.copy(i), prefix);
-}
-
-rtl::OString translateUnoToJavaType(
- codemaker::UnoType::Sort sort, RTTypeClass typeClass,
- rtl::OString const & nucleus, sal_Int32 rank)
-{
- OSL_ASSERT(sort != codemaker::UnoType::SORT_VOID && rank >= 0);
- rtl::OStringBuffer buf;
- if (sort == codemaker::UnoType::SORT_COMPLEX) {
- if (typeClass == RT_TYPE_INTERFACE
- && nucleus == rtl::OString("com/sun/star/uno/XInterface"))
- {
- buf.append(RTL_CONSTASCII_STRINGPARAM("java/lang/Object"));
- } else {
- //TODO: check that nucleus is a valid (Java-modified UTF-8)
- // identifier
- buf.append(nucleus);
- }
- } else {
- rtl::OString const javaTypes[codemaker::UnoType::SORT_ANY] = {
- rtl::OString(RTL_CONSTASCII_STRINGPARAM("boolean")),
- rtl::OString(RTL_CONSTASCII_STRINGPARAM("byte")),
- rtl::OString(RTL_CONSTASCII_STRINGPARAM("short")),
- rtl::OString(RTL_CONSTASCII_STRINGPARAM("short")),
- rtl::OString(RTL_CONSTASCII_STRINGPARAM("int")),
- rtl::OString(RTL_CONSTASCII_STRINGPARAM("int")),
- rtl::OString(RTL_CONSTASCII_STRINGPARAM("long")),
- rtl::OString(RTL_CONSTASCII_STRINGPARAM("long")),
- rtl::OString(RTL_CONSTASCII_STRINGPARAM("float")),
- rtl::OString(RTL_CONSTASCII_STRINGPARAM("double")),
- rtl::OString(RTL_CONSTASCII_STRINGPARAM("char")),
- rtl::OString(RTL_CONSTASCII_STRINGPARAM("java/lang/String")),
- rtl::OString(RTL_CONSTASCII_STRINGPARAM("com/sun/star/uno/Type")),
- rtl::OString(RTL_CONSTASCII_STRINGPARAM("java/lang/Object")) };
- buf.append(javaTypes[sort - 1]);
- }
- for (sal_Int32 i = 0; i < rank; ++i) {
- buf.append(RTL_CONSTASCII_STRINGPARAM("[]"));
- }
- return buf.makeStringAndClear();
+ return type.copy(0, i) +
+ codemaker::java::translateUnoToJavaIdentifier(type.copy(i), prefix);
}
struct PolymorphicUnoType {
@@ -547,8 +366,8 @@ SpecialType translateUnoTypeToDescriptor(
rtl::OString nucleus;
sal_Int32 rank;
std::vector< rtl::OString > args;
- codemaker::UnoType::Sort sort = decomposeAndResolve(
- manager, type, true, true, &typeClass, &nucleus, &rank, &args);
+ codemaker::UnoType::Sort sort = codemaker::decomposeAndResolve(
+ manager, type, true, true, false, &typeClass, &nucleus, &rank, &args);
OSL_ASSERT(rank < SAL_MAX_INT32);
return translateUnoTypeToDescriptor(
manager, sort, typeClass, nucleus, rank, args, array, classType,
@@ -954,14 +773,6 @@ void writeClassFile(
rtl::OString filename(
createFileNameFromType(
path, type, rtl::OString(RTL_CONSTASCII_STRINGPARAM(".class"))));
- if (filename.getLength() == 0) {
- rtl::OStringBuffer msg;
- msg.append(RTL_CONSTASCII_STRINGPARAM("Cannot dump type '"));
- msg.append(type);
- msg.append(RTL_CONSTASCII_STRINGPARAM("', can't create output file"));
- throw CannotDumpException(msg.makeStringAndClear());
- }
-
bool check = false;
if (fileExists(filename)) {
if (options.isValid(rtl::OString(RTL_CONSTASCII_STRINGPARAM("-G")))) {
@@ -1078,7 +889,7 @@ void handleEnumType(
rtl::OString(RTL_CONSTASCII_STRINGPARAM("Bad type information")));
//TODO
}
- rtl::OString className(convertString(reader.getTypeName()));
+ rtl::OString className(codemaker::convertString(reader.getTypeName()));
std::auto_ptr< ClassFile > cf(
new ClassFile(
static_cast< ClassFile::AccessFlags >(
@@ -1092,7 +903,7 @@ void handleEnumType(
buf.append(className);
buf.append(';');
rtl::OString classDescriptor(buf.makeStringAndClear());
- {for (sal_Int32 i = 0; i < fields; ++i) {
+ {for (sal_uInt16 i = 0; i < fields; ++i) {
RTConstValue fieldValue(reader.getFieldValue(i));
if (fieldValue.m_type != RT_TYPE_INT32
|| reader.getFieldFlags(i) != RT_ACCESS_CONST
@@ -1102,7 +913,8 @@ void handleEnumType(
rtl::OString(
RTL_CONSTASCII_STRINGPARAM("Bad type information"))); //TODO
}
- rtl::OString fieldName(convertString(reader.getFieldName(i)));
+ rtl::OString fieldName(
+ codemaker::convertString(reader.getFieldName(i)));
cf->addField(
static_cast< ClassFile::AccessFlags >(
ClassFile::ACC_PUBLIC | ClassFile::ACC_STATIC
@@ -1132,7 +944,8 @@ void handleEnumType(
std::vector< rtl::OString >(), rtl::OString());
code.reset(cf->newCode());
code->instrGetstatic(
- className, convertString(reader.getFieldName(0)), classDescriptor);
+ className,
+ codemaker::convertString(reader.getFieldName(0)), classDescriptor);
code->instrAreturn();
code->setMaxStackAndLocals(1, 0);
cf->addMethod(
@@ -1146,13 +959,13 @@ void handleEnumType(
std::map< sal_Int32, rtl::OString > map;
sal_Int32 min = SAL_MAX_INT32;
sal_Int32 max = SAL_MIN_INT32;
- {for (sal_Int32 i = 0; i < fields; ++i) {
+ {for (sal_uInt16 i = 0; i < fields; ++i) {
sal_Int32 value = reader.getFieldValue(i).m_value.aLong;
min = std::min(min, value);
max = std::max(max, value);
map.insert(
std::map< sal_Int32, rtl::OString >::value_type(
- value, convertString(reader.getFieldName(i))));
+ value, codemaker::convertString(reader.getFieldName(i))));
}}
sal_uInt64 size = static_cast< sal_uInt64 >(map.size());
if ((static_cast< sal_uInt64 >(max) - static_cast< sal_uInt64 >(min)
@@ -1218,7 +1031,7 @@ void handleEnumType(
rtl::OString(RTL_CONSTASCII_STRINGPARAM("(I)")) + classDescriptor,
code.get(), std::vector< rtl::OString >(), rtl::OString());
code.reset(cf->newCode());
- {for (sal_Int32 i = 0; i < fields; ++i) {
+ {for (sal_uInt16 i = 0; i < fields; ++i) {
code->instrNew(className);
code->instrDup();
code->loadIntegerConstant(reader.getFieldValue(i).m_value.aLong);
@@ -1226,7 +1039,9 @@ void handleEnumType(
className, rtl::OString(RTL_CONSTASCII_STRINGPARAM("<init>")),
rtl::OString(RTL_CONSTASCII_STRINGPARAM("(I)V")));
code->instrPutstatic(
- className, convertString(reader.getFieldName(i)), classDescriptor);
+ className,
+ codemaker::convertString(reader.getFieldName(i)),
+ classDescriptor);
}}
code->instrReturn();
code->setMaxStackAndLocals(3, 0);
@@ -1284,8 +1099,8 @@ sal_uInt16 addFieldInit(
rtl::OString nucleus;
sal_Int32 rank;
std::vector< rtl::OString > args;
- codemaker::UnoType::Sort sort = decomposeAndResolve(
- manager, fieldType, true, false, &typeClass, &nucleus, &rank,
+ codemaker::UnoType::Sort sort = codemaker::decomposeAndResolve(
+ manager, fieldType, true, false, false, &typeClass, &nucleus, &rank,
&args);
if (rank == 0) {
switch (sort) {
@@ -1346,7 +1161,8 @@ sal_uInt16 addFieldInit(
rtl::OString desc(descBuf.makeStringAndClear());
code->instrGetstatic(
nucleus,
- convertString(reader.getFieldName(0)), desc);
+ codemaker::convertString(reader.getFieldName(0)),
+ desc);
code->instrPutfield(className, fieldName, desc);
return 2;
}
@@ -1388,7 +1204,8 @@ sal_uInt16 addFieldInit(
code->instrNewarray(sort);
} else {
code->instrAnewarray(
- translateUnoToJavaType(sort, typeClass, nucleus, 0));
+ codemaker::java::translateUnoToJavaType(sort, typeClass,
+ nucleus, 0));
}
} else {
rtl::OStringBuffer desc;
@@ -1428,8 +1245,8 @@ sal_uInt16 addLoadLocal(
rtl::OString nucleus;
sal_Int32 rank;
std::vector< rtl::OString > args;
- codemaker::UnoType::Sort sort = decomposeAndResolve(
- manager, type, true, false, &typeClass, &nucleus, &rank, &args);
+ codemaker::UnoType::Sort sort = codemaker::decomposeAndResolve(
+ manager, type, true, false, false, &typeClass, &nucleus, &rank, &args);
if (rank == 0) {
switch (sort) {
case codemaker::UnoType::SORT_BOOLEAN:
@@ -2136,7 +1953,7 @@ void addBaseArguments(
dependencies != 0 && methodDescriptor != 0 && code != 0 && index != 0);
typereg::Reader reader(manager.getTypeReader(type));
if (!reader.isValid() || reader.getTypeClass() != typeClass
- || convertString(reader.getTypeName()) != type
+ || codemaker::convertString(reader.getTypeName()) != type
|| reader.getMethodCount() != 0 || reader.getReferenceCount() != 0)
{
throw CannotDumpException(
@@ -2167,7 +1984,7 @@ void addBaseArguments(
if (superTypes == 1) {
addBaseArguments(
manager, dependencies, methodDescriptor, code, typeClass,
- convertString(reader.getSuperTypeName(0)), index);
+ codemaker::convertString(reader.getSuperTypeName(0)), index);
}
}
for (sal_uInt16 i = firstField; i < fields; ++i) {
@@ -2178,7 +1995,8 @@ void addBaseArguments(
rtl::OString(
RTL_CONSTASCII_STRINGPARAM("Bad type information"))); //TODO
}
- rtl::OString fieldType(convertString(reader.getFieldTypeName(i)));
+ rtl::OString fieldType(
+ codemaker::convertString(reader.getFieldTypeName(i)));
methodDescriptor->addParameter(fieldType, false, true, 0);
addLoadLocal(
manager, code, index, false, fieldType, false, dependencies);
@@ -2221,7 +2039,7 @@ void handleAggregatingType(
//TODO
}
RTTypeClass typeClass = reader.getTypeClass();
- rtl::OString className(convertString(reader.getTypeName()));
+ rtl::OString className(codemaker::convertString(reader.getTypeName()));
sal_uInt16 superTypes = reader.getSuperTypeCount();
sal_uInt16 fields = reader.getFieldCount();
sal_uInt16 firstField = 0;
@@ -2272,7 +2090,7 @@ void handleAggregatingType(
superClass = rtl::OString(
RTL_CONSTASCII_STRINGPARAM("java/lang/Object"));
} else {
- superClass = convertString(reader.getSuperTypeName(0));
+ superClass = codemaker::convertString(reader.getSuperTypeName(0));
dependencies->insert(superClass);
}
}
@@ -2290,7 +2108,8 @@ void handleAggregatingType(
RTL_CONSTASCII_STRINGPARAM("Bad type information")));
//TODO
}
- rtl::OString name(convertString(reader.getReferenceTypeName(i)));
+ rtl::OString name(
+ codemaker::convertString(reader.getReferenceTypeName(i)));
buf.append(name);
buf.append(RTL_CONSTASCII_STRINGPARAM(":Ljava/lang/Object;"));
if (!typeParameters.insert(
@@ -2323,7 +2142,8 @@ void handleAggregatingType(
rtl::OString(
RTL_CONSTASCII_STRINGPARAM("Bad type information"))); //TODO
}
- rtl::OString type(convertString(reader.getFieldTypeName(i)));
+ rtl::OString type(
+ codemaker::convertString(reader.getFieldTypeName(i)));
sal_Int32 typeParameterIndex;
if ((flags & RT_ACCESS_PARAMETERIZED_TYPE) == 0) {
typeParameterIndex = -1;
@@ -2340,7 +2160,7 @@ void handleAggregatingType(
}
addField(
manager, dependencies, cf.get(), &typeInfo, typeParameterIndex,
- type, convertString(reader.getFieldName(i)), i - firstField);
+ type, codemaker::convertString(reader.getFieldName(i)), i - firstField);
}}
if (runtimeException) {
addField(
@@ -2359,10 +2179,11 @@ void handleAggregatingType(
stack = std::max(
stack,
addFieldInit(
- manager, className, convertString(reader.getFieldName(i)),
+ manager, className,
+ codemaker::convertString(reader.getFieldName(i)),
(reader.getFieldFlags(i) & RT_ACCESS_PARAMETERIZED_TYPE) != 0,
- convertString(reader.getFieldTypeName(i)), dependencies,
- code.get()));
+ codemaker::convertString(reader.getFieldTypeName(i)),
+ dependencies, code.get()));
}}
if (runtimeException) {
stack = std::max(
@@ -2393,11 +2214,12 @@ void handleAggregatingType(
stack = std::max(
stack,
addFieldInit(
- manager, className, convertString(reader.getFieldName(i)),
+ manager, className,
+ codemaker::convertString(reader.getFieldName(i)),
((reader.getFieldFlags(i) & RT_ACCESS_PARAMETERIZED_TYPE)
!= 0),
- convertString(reader.getFieldTypeName(i)), dependencies,
- code.get()));
+ codemaker::convertString(reader.getFieldTypeName(i)),
+ dependencies, code.get()));
}
if (runtimeException) {
stack = std::max(
@@ -2443,9 +2265,9 @@ void handleAggregatingType(
maxSize,
addDirectArgument(
manager, dependencies, &desc, code.get(), &index, className,
- convertString(reader.getFieldName(i)),
+ codemaker::convertString(reader.getFieldName(i)),
(reader.getFieldFlags(i) & RT_ACCESS_PARAMETERIZED_TYPE) != 0,
- convertString(reader.getFieldTypeName(i))));
+ codemaker::convertString(reader.getFieldTypeName(i))));
}}
if (runtimeException) {
maxSize = std::max(
@@ -2477,7 +2299,8 @@ void createExceptionsAttribute(
sal_uInt16 n = reader.getMethodExceptionCount(methodIndex);
for (sal_uInt16 i = 0; i < n; ++i) {
rtl::OString type(
- convertString(reader.getMethodExceptionTypeName(methodIndex, i)));
+ codemaker::convertString(
+ reader.getMethodExceptionTypeName(methodIndex, i)));
dependencies->insert(type);
exceptions->push_back(type);
if (tree != 0) {
@@ -2496,7 +2319,7 @@ void handleInterfaceType(
rtl::OString(RTL_CONSTASCII_STRINGPARAM("Bad type information")));
//TODO
}
- rtl::OString className(convertString(reader.getTypeName()));
+ rtl::OString className(codemaker::convertString(reader.getTypeName()));
sal_uInt16 superTypes = reader.getSuperTypeCount();
sal_uInt16 fields = reader.getFieldCount();
sal_uInt16 methods = reader.getMethodCount();
@@ -2524,7 +2347,7 @@ void handleInterfaceType(
rtl::OString(RTL_CONSTASCII_STRINGPARAM("java/lang/Object")),
rtl::OString()));
{for (sal_uInt16 i = 0; i < superTypes; ++i) {
- rtl::OString t(convertString(reader.getSuperTypeName(i)));
+ rtl::OString t(codemaker::convertString(reader.getSuperTypeName(i)));
dependencies->insert(t);
cf->addInterface(t);
}}
@@ -2574,7 +2397,8 @@ void handleInterfaceType(
(mflags == RT_MODE_ATTRIBUTE_GET ? getter : setter) = j;
}
}
- rtl::OString fieldType(convertString(reader.getFieldTypeName(i)));
+ rtl::OString fieldType(
+ codemaker::convertString(reader.getFieldTypeName(i)));
SpecialType specialType;
PolymorphicUnoType polymorphicUnoType;
MethodDescriptor gdesc(
@@ -2585,7 +2409,7 @@ void handleInterfaceType(
createExceptionsAttribute(
manager, reader, getter, dependencies, &exc, 0);
}
- rtl::OString attrName(convertString(attrNameUtf16));
+ rtl::OString attrName(codemaker::convertString(attrNameUtf16));
cf->addMethod(
static_cast< ClassFile::AccessFlags >(
ClassFile::ACC_PUBLIC | ClassFile::ACC_ABSTRACT),
@@ -2624,12 +2448,14 @@ void handleInterfaceType(
case RT_MODE_ONEWAY:
case RT_MODE_TWOWAY:
{
- rtl::OString methodName(convertString(reader.getMethodName(i)));
+ rtl::OString methodName(
+ codemaker::convertString(reader.getMethodName(i)));
SpecialType specialReturnType;
PolymorphicUnoType polymorphicUnoReturnType;
MethodDescriptor desc(
manager, dependencies,
- convertString(reader.getMethodReturnTypeName(i)),
+ codemaker::convertString(
+ reader.getMethodReturnTypeName(i)),
&specialReturnType, &polymorphicUnoReturnType);
typeInfo.push_back(
TypeInfo(
@@ -2667,7 +2493,8 @@ void handleInterfaceType(
}
PolymorphicUnoType polymorphicUnoType;
SpecialType specialType = desc.addParameter(
- convertString(reader.getMethodParameterTypeName(i, j)),
+ codemaker::convertString(
+ reader.getMethodParameterTypeName(i, j)),
out, true, &polymorphicUnoType);
if (out || isSpecialType(specialType)
|| (polymorphicUnoType.kind
@@ -2675,7 +2502,7 @@ void handleInterfaceType(
{
typeInfo.push_back(
TypeInfo(
- convertString(
+ codemaker::convertString(
reader.getMethodParameterName(i, j)),
specialType, in, out, methodName, j,
polymorphicUnoType));
@@ -2735,9 +2562,9 @@ void handleTypedef(
rtl::OString nucleus;
sal_Int32 rank;
std::vector< rtl::OString > args;
- if (decomposeAndResolve(
- manager, convertString(reader.getSuperTypeName(0)), false, false,
- &typeClass, &nucleus, &rank, &args)
+ if (codemaker::decomposeAndResolve(
+ manager, codemaker::convertString(reader.getSuperTypeName(0)),
+ false, false, false, &typeClass, &nucleus, &rank, &args)
== codemaker::UnoType::SORT_COMPLEX)
{
switch (typeClass) {
@@ -2781,9 +2608,10 @@ void addConstant(
rtl::OString nucleus;
sal_Int32 rank;
std::vector< rtl::OString > args;
- switch (decomposeAndResolve(
- manager, convertString(reader.getFieldTypeName(index)), true,
- false, &typeClass, &nucleus, &rank, &args))
+ switch (codemaker::decomposeAndResolve(
+ manager,
+ codemaker::convertString(reader.getFieldTypeName(index)),
+ true, false, false, &typeClass, &nucleus, &rank, &args))
{
case codemaker::UnoType::SORT_BOOLEAN:
if (fieldValue.m_type != RT_TYPE_BOOL) {
@@ -2886,13 +2714,15 @@ void addConstant(
rtl::OString desc;
rtl::OString sig;
getFieldDescriptor(
- manager, dependencies, convertString(reader.getFieldTypeName(index)),
+ manager, dependencies,
+ codemaker::convertString(reader.getFieldTypeName(index)),
&desc, &sig, 0);
classFile->addField(
static_cast< ClassFile::AccessFlags >(
ClassFile::ACC_PUBLIC | ClassFile::ACC_STATIC
| ClassFile::ACC_FINAL),
- convertString(reader.getFieldName(index)), desc, valueIndex, sig);
+ codemaker::convertString(reader.getFieldName(index)),
+ desc, valueIndex, sig);
}
void handleConstantGroup(
@@ -2907,7 +2737,7 @@ void handleConstantGroup(
rtl::OString(RTL_CONSTASCII_STRINGPARAM("Bad type information")));
//TODO
}
- rtl::OString className(convertString(reader.getTypeName()));
+ rtl::OString className(codemaker::convertString(reader.getTypeName()));
std::auto_ptr< ClassFile > cf(
new ClassFile(
static_cast< ClassFile::AccessFlags >(
@@ -2917,7 +2747,7 @@ void handleConstantGroup(
rtl::OString(RTL_CONSTASCII_STRINGPARAM("java/lang/Object")),
rtl::OString()));
sal_uInt16 fields = reader.getFieldCount();
- for (sal_Int32 i = 0; i < fields; ++i) {
+ for (sal_uInt16 i = 0; i < fields; ++i) {
addConstant(manager, reader, false, i, dependencies, cf.get());
}
writeClassFile(options, className, *cf.get());
@@ -2935,12 +2765,13 @@ void handleModule(
rtl::OString(RTL_CONSTASCII_STRINGPARAM("Bad type information")));
//TODO
}
- rtl::OStringBuffer buf(convertString(reader.getTypeName()));
+ rtl::OStringBuffer buf(codemaker::convertString(reader.getTypeName()));
buf.append('/');
rtl::OString prefix(buf.makeStringAndClear());
sal_uInt16 fields = reader.getFieldCount();
- for (sal_Int32 i = 0; i < fields; ++i) {
- rtl::OString className(prefix + convertString(reader.getFieldName(i)));
+ for (sal_uInt16 i = 0; i < fields; ++i) {
+ rtl::OString className(
+ prefix + codemaker::convertString(reader.getFieldName(i)));
std::auto_ptr< ClassFile > cf(
new ClassFile(
static_cast< ClassFile::AccessFlags >(
@@ -3050,7 +2881,7 @@ void addConstructor(
RTParamMode flags = reader.getMethodParameterFlags(
methodIndex, i);
rtl::OString paramType(
- convertString(
+ codemaker::convertString(
reader.getMethodParameterTypeName(methodIndex, i)));
if ((flags != RT_PARAM_IN
&& flags != (RT_PARAM_IN | RT_PARAM_REST))
@@ -3197,7 +3028,7 @@ void handleService(
if (superTypes == 0) {
return;
}
- rtl::OString unoName(convertString(reader.getTypeName()));
+ rtl::OString unoName(codemaker::convertString(reader.getTypeName()));
rtl::OString className(
translateUnoTypeToJavaFullyQualifiedName(
unoName, rtl::OString(RTL_CONSTASCII_STRINGPARAM("service"))));
@@ -3211,7 +3042,8 @@ void handleService(
rtl::OString(RTL_CONSTASCII_STRINGPARAM("java/lang/Object")),
rtl::OString()));
if (methods > 0) {
- rtl::OString base(convertString(reader.getSuperTypeName(0)));
+ rtl::OString base(codemaker::convertString(
+ reader.getSuperTypeName(0)));
rtl::OString realJavaBaseName(base.replace('/', '.'));
dependencies->insert(base);
dependencies->insert(
@@ -3230,7 +3062,8 @@ void handleService(
RTL_CONSTASCII_STRINGPARAM(
"com/sun/star/uno/XComponentContext")));
for (sal_uInt16 i = 0; i < methods; ++i) {
- rtl::OString name(convertString(reader.getMethodName(i)));
+ rtl::OString name(codemaker::convertString(
+ reader.getMethodName(i)));
bool defaultCtor = name.getLength() == 0;
if (reader.getMethodFlags(i) != RT_MODE_TWOWAY
|| (!reader.getMethodReturnTypeName(i).equalsAsciiL(
@@ -3247,7 +3080,7 @@ void handleService(
if (defaultCtor) {
name = rtl::OString(RTL_CONSTASCII_STRINGPARAM("create"));
} else {
- name = translateUnoToJavaIdentifier(
+ name = codemaker::java::translateUnoToJavaIdentifier(
name, rtl::OString(RTL_CONSTASCII_STRINGPARAM("method")));
}
addConstructor(
@@ -3415,7 +3248,7 @@ void handleSingleton(
rtl::OString(RTL_CONSTASCII_STRINGPARAM("Bad type information")));
//TODO
}
- rtl::OString base(convertString(reader.getSuperTypeName(0)));
+ rtl::OString base(codemaker::convertString(reader.getSuperTypeName(0)));
rtl::OString realJavaBaseName(base.replace('/', '.'));
switch (manager.getTypeReader(base).getTypeClass()) {
case RT_TYPE_INTERFACE:
@@ -3430,7 +3263,7 @@ void handleSingleton(
//TODO
}
dependencies->insert(base);
- rtl::OString unoName(convertString(reader.getTypeName()));
+ rtl::OString unoName(codemaker::convertString(reader.getTypeName()));
rtl::OString className(
translateUnoTypeToJavaFullyQualifiedName(
unoName, rtl::OString(RTL_CONSTASCII_STRINGPARAM("singleton"))));