1010 */
1111#include " JavaObject/type/primitive/PrimitiveTypeCodeParser.h"
1212
13+ #include " JavaObject/type/object/ObjectTypeCodeParser.h"
1314#include " JavaObject/type/primitive/parsers/PrimitiveBooleanObjectParser.h"
1415#include " JavaObject/type/primitive/parsers/PrimitiveByteObjectParser.h"
1516#include " JavaObject/type/primitive/parsers/PrimitiveCharObjectParser.h"
1617#include " JavaObject/type/primitive/parsers/PrimitiveDoubleObjectParser.h"
1718#include " JavaObject/type/primitive/parsers/PrimitiveFloatObjectParser.h"
1819#include " JavaObject/type/primitive/parsers/PrimitiveIntegerObjectParser.h"
20+ #include " JavaObject/type/primitive/parsers/PrimitiveJavaObjectParser.h"
1921#include " JavaObject/type/primitive/parsers/PrimitiveLongObjectParser.h"
2022#include " JavaObject/type/primitive/parsers/PrimitiveShortObjectParser.h"
2123
2224namespace javaobject ::type::primitive {
23- PrimitiveTypeCodeParser::PrimitiveTypeCodeParser (std::istream &input, HandleContainer &handleContainer) : ITypeCodeParser(input, handleContainer) {
25+ PrimitiveTypeCodeParser::PrimitiveTypeCodeParser (std::istream &input, HandleContainer &handleContainer,
26+ TypeCodeParserStorage &parserStorage) : ITypeCodeParser(input, handleContainer), ITypeCodeStorageHolder(parserStorage) {
2427 this ->m_parsers [EPrimitiveTypeCode::TYPE_BOOLEAN] = std::make_unique<parsers::PrimitiveBooleanObjectParser>();
2528 this ->m_parsers [EPrimitiveTypeCode::TYPE_BYTE] = std::make_unique<parsers::PrimitiveByteObjectParser>();
2629 this ->m_parsers [EPrimitiveTypeCode::TYPE_CHARACTER] = std::make_unique<parsers::PrimitiveCharObjectParser>();
@@ -30,8 +33,7 @@ namespace javaobject::type::primitive {
3033 this ->m_parsers [EPrimitiveTypeCode::TYPE_LONG] = std::make_unique<parsers::PrimitiveLongObjectParser>();
3134 this ->m_parsers [EPrimitiveTypeCode::TYPE_SHORT] = std::make_unique<parsers::PrimitiveShortObjectParser>();
3235 // this->m_parsers[EPrimitiveTypeCode::TYPE_ARRAY] = std::make_unique<parsers::PrimitiveByteObjectParser>();
33- // this->m_parsers[EPrimitiveTypeCode::TYPE_OBJECT] = std::make_unique<parsers::PrimitiveByteObjectParser>();
34-
36+ this ->m_parsers [EPrimitiveTypeCode::TYPE_OBJECT] = std::make_unique<parsers::PrimitiveJavaObjectParser>();
3537 }
3638
3739 std::shared_ptr<types::IPrimitiveObject> PrimitiveTypeCodeParser::readNext () {
@@ -44,5 +46,9 @@ namespace javaobject::type::primitive {
4446 // return std::make_shared<object::NullObject>();
4547 throw std::runtime_error (" Couldn't find parser for primitive typecode" );
4648 }
47- std::shared_ptr<types::IPrimitiveObject> PrimitiveTypeCodeParser::readUsingParser (const parsers::IPrimitiveObjectParser &parser) { return parser (*this ); }
48- } // namespace javaobject::type::primitive
49+
50+ std::shared_ptr<types::IPrimitiveObject> PrimitiveTypeCodeParser::readUsingParser (
51+ const parsers::IPrimitiveObjectParser &parser) {
52+ return parser (*this );
53+ }
54+ } // namespace javaobject::type::primitive
0 commit comments