diff options
Diffstat (limited to 'cpp/src/Slice/JavaUtil.cpp')
-rw-r--r-- | cpp/src/Slice/JavaUtil.cpp | 51 |
1 files changed, 37 insertions, 14 deletions
diff --git a/cpp/src/Slice/JavaUtil.cpp b/cpp/src/Slice/JavaUtil.cpp index 3e27a14e5ee..dd35e40abb0 100644 --- a/cpp/src/Slice/JavaUtil.cpp +++ b/cpp/src/Slice/JavaUtil.cpp @@ -573,7 +573,7 @@ Slice::JavaGenerator::getStaticId(const TypePtr& type, const string& package) co BuiltinPtr b = BuiltinPtr::dynamicCast(type); ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type); - assert((b && b->kind() == Builtin::KindObject) || cl); + assert((b && (b->kind() == Builtin::KindObject || b->kind() == Builtin::KindValue)) || cl); if(b) { @@ -650,6 +650,10 @@ Slice::JavaGenerator::getOptionalFormat(const TypePtr& type) assert(false); break; } + case Builtin::KindValue: + { + return "Ice.OptionalFormat.Class"; + } } } @@ -707,7 +711,8 @@ Slice::JavaGenerator::typeToString(const TypePtr& type, "String", "Ice.Object", "Ice.ObjectPrx", - "java.lang.Object" + "java.lang.Object", + "Ice.Object" // Ice.Value }; static const char* builtinHolderTable[] = { @@ -721,7 +726,8 @@ Slice::JavaGenerator::typeToString(const TypePtr& type, "Ice.StringHolder", "Ice.ObjectHolder", "Ice.ObjectPrxHolder", - "Ice.LocalObjectHolder" + "Ice.LocalObjectHolder", + "Ice.ObjectHolder" // Ice.ValueHolder }; static const char* builtinOptionalTable[] = { @@ -735,6 +741,7 @@ Slice::JavaGenerator::typeToString(const TypePtr& type, "???", "???", "???", + "???", "???" }; @@ -765,6 +772,7 @@ Slice::JavaGenerator::typeToString(const TypePtr& type, case Builtin::KindObject: case Builtin::KindObjectProxy: case Builtin::KindLocalObject: + case Builtin::KindValue: { break; } @@ -904,7 +912,8 @@ Slice::JavaGenerator::typeToObjectString(const TypePtr& type, "java.lang.String", "Ice.Object", "Ice.ObjectPrx", - "java.lang.Object" + "java.lang.Object", + "Ice.Object" // Ice.Value }; BuiltinPtr builtin = BuiltinPtr::dynamicCast(type); @@ -1157,6 +1166,7 @@ Slice::JavaGenerator::writeMarshalUnmarshalCode(Output& out, break; } case Builtin::KindObject: + case Builtin::KindValue: { if(marshal) { @@ -1630,7 +1640,8 @@ Slice::JavaGenerator::writeMarshalUnmarshalCode(Output& out, BuiltinPtr elemBuiltin = BuiltinPtr::dynamicCast(elemType); if(optionalParam && elemBuiltin && elemBuiltin->kind() != Builtin::KindObject && - elemBuiltin->kind() != Builtin::KindObjectProxy && !hasTypeMetaData(seq, metaData)) + elemBuiltin->kind() != Builtin::KindObjectProxy && elemBuiltin->kind() != Builtin::KindValue && + !hasTypeMetaData(seq, metaData)) { static const char* builtinTable[] = { @@ -1670,6 +1681,7 @@ Slice::JavaGenerator::writeMarshalUnmarshalCode(Output& out, } return; } + case Builtin::KindValue: case Builtin::KindObject: case Builtin::KindObjectProxy: case Builtin::KindLocalObject: @@ -1972,7 +1984,7 @@ Slice::JavaGenerator::writeDictionaryMarshalUnmarshalCode(Output& out, } BuiltinPtr b = BuiltinPtr::dynamicCast(type); - if(ClassDeclPtr::dynamicCast(type) || (b && b->kind() == Builtin::KindObject)) + if(ClassDeclPtr::dynamicCast(type) || (b && (b->kind() == Builtin::KindObject || b->kind() == Builtin::KindValue))) { string keyTypeStr = typeToObjectString(key, TypeModeIn, package); string valueTypeStr = typeToObjectString(value, TypeModeIn, package); @@ -1995,7 +2007,8 @@ Slice::JavaGenerator::writeDictionaryMarshalUnmarshalCode(Output& out, } } BuiltinPtr builtin = BuiltinPtr::dynamicCast(value); - if(!(builtin && builtin->kind() == Builtin::KindObject) && !ClassDeclPtr::dynamicCast(value)) + if(!(builtin && (builtin->kind() == Builtin::KindObject || builtin->kind() == Builtin::KindValue)) && + !ClassDeclPtr::dynamicCast(value)) { out << nl << "" << v << ".put(__key, __value);"; } @@ -2153,6 +2166,7 @@ Slice::JavaGenerator::writeSequenceMarshalUnmarshalCode(Output& out, case Builtin::KindObject: case Builtin::KindObjectProxy: case Builtin::KindLocalObject: + case Builtin::KindValue: { assert(false); break; @@ -2263,7 +2277,7 @@ Slice::JavaGenerator::writeSequenceMarshalUnmarshalCode(Output& out, { bool isObject = false; ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type); - if((b && b->kind() == Builtin::KindObject) || cl) + if((b && (b->kind() == Builtin::KindObject || b->kind() == Builtin::KindValue)) || cl) { isObject = true; } @@ -2328,7 +2342,9 @@ Slice::JavaGenerator::writeSequenceMarshalUnmarshalCode(Output& out, else { BuiltinPtr b = BuiltinPtr::dynamicCast(type); - if(b && b->kind() != Builtin::KindObject && b->kind() != Builtin::KindObjectProxy) + if(b && b->kind() != Builtin::KindObject && + b->kind() != Builtin::KindValue && + b->kind() != Builtin::KindObjectProxy) { switch(b->kind()) { @@ -2428,6 +2444,7 @@ Slice::JavaGenerator::writeSequenceMarshalUnmarshalCode(Output& out, } break; } + case Builtin::KindValue: case Builtin::KindObject: case Builtin::KindObjectProxy: case Builtin::KindLocalObject: @@ -2462,7 +2479,7 @@ Slice::JavaGenerator::writeSequenceMarshalUnmarshalCode(Output& out, { bool isObject = false; ClassDeclPtr cl = ClassDeclPtr::dynamicCast(origContent); - if((b && b->kind() == Builtin::KindObject) || cl) + if((b && (b->kind() == Builtin::KindObject || b->kind() == Builtin::KindValue)) || cl) { isObject = true; } @@ -2678,6 +2695,7 @@ Slice::JavaGenerator::writeStreamMarshalUnmarshalCode(Output& out, } break; } + case Builtin::KindValue: case Builtin::KindObject: { if(marshal) @@ -3183,7 +3201,8 @@ Slice::JavaGenerator::writeStreamDictionaryMarshalUnmarshalCode(Output& out, } } BuiltinPtr builtin = BuiltinPtr::dynamicCast(value); - if(!(builtin && builtin->kind() == Builtin::KindObject) && !ClassDeclPtr::dynamicCast(value)) + if(!(builtin && (builtin->kind() == Builtin::KindObject || builtin->kind() == Builtin::KindValue)) && + !ClassDeclPtr::dynamicCast(value)) { out << nl << "" << v << ".put(__key, __value);"; } @@ -3343,6 +3362,7 @@ Slice::JavaGenerator::writeStreamSequenceMarshalUnmarshalCode(Output& out, case Builtin::KindObject: case Builtin::KindObjectProxy: case Builtin::KindLocalObject: + case Builtin::KindValue: { assert(false); break; @@ -3450,7 +3470,7 @@ Slice::JavaGenerator::writeStreamSequenceMarshalUnmarshalCode(Output& out, { bool isObject = false; ClassDeclPtr cl = ClassDeclPtr::dynamicCast(type); - if((b && b->kind() == Builtin::KindObject) || cl) + if((b && (b->kind() == Builtin::KindObject || b->kind() == Builtin::KindValue)) || cl) { isObject = true; } @@ -3515,7 +3535,9 @@ Slice::JavaGenerator::writeStreamSequenceMarshalUnmarshalCode(Output& out, else { BuiltinPtr b = BuiltinPtr::dynamicCast(type); - if(b && b->kind() != Builtin::KindObject && b->kind() != Builtin::KindObjectProxy) + if(b && b->kind() != Builtin::KindObject && + b->kind() != Builtin::KindValue && + b->kind() != Builtin::KindObjectProxy) { switch(b->kind()) { @@ -3618,6 +3640,7 @@ Slice::JavaGenerator::writeStreamSequenceMarshalUnmarshalCode(Output& out, case Builtin::KindObject: case Builtin::KindObjectProxy: case Builtin::KindLocalObject: + case Builtin::KindValue: { assert(false); break; @@ -3649,7 +3672,7 @@ Slice::JavaGenerator::writeStreamSequenceMarshalUnmarshalCode(Output& out, { bool isObject = false; ClassDeclPtr cl = ClassDeclPtr::dynamicCast(origContent); - if((b && b->kind() == Builtin::KindObject) || cl) + if((b && (b->kind() == Builtin::KindObject || b->kind() == Builtin::KindValue)) || cl) { isObject = true; } |