1212#define JAVAOBJECTSTREAMS_OBJECTINPUTSTREAM_H
1313#include " JavaObject/type/object/ObjectTypeCodeParser.h"
1414#include " JavaObject/type/object/types/IObject.h"
15+ #include " JavaObject/type/object/types/StringObject.h"
16+ #include " JavaObject/type/primitive/types/PrimitiveBooleanObject.h"
17+ #include " JavaObject/type/primitive/types/PrimitiveByteObject.h"
18+ #include " JavaObject/type/primitive/types/PrimitiveDoubleObject.h"
19+ #include " JavaObject/type/primitive/types/PrimitiveFloatObject.h"
20+ #include " JavaObject/type/primitive/types/PrimitiveIntegerObject.h"
21+ #include " JavaObject/type/primitive/types/PrimitiveLongObject.h"
22+ #include " JavaObject/type/primitive/types/PrimitiveShortObject.h"
1523
1624#include < iostream>
1725#include < memory>
@@ -23,7 +31,17 @@ namespace javaobject::stream {
2331 public:
2432 explicit ObjectInputStream (std::istream &input);
2533
26- std::shared_ptr<type::object::IObject> readObject ();
34+ std::shared_ptr<type::object::IObject> readObject () const ;
35+
36+ // TODO seemingly these objects are all written into a BlockData section, ugh!
37+ std::shared_ptr<type::primitive::types::PrimitiveBooleanObject> readBool () const = delete;
38+ std::shared_ptr<type::primitive::types::PrimitiveByteObject> readByte () const = delete;
39+ std::shared_ptr<type::primitive::types::PrimitiveShortObject> readShort () const = delete;
40+ std::shared_ptr<type::primitive::types::PrimitiveIntegerObject> readInt () const = delete;
41+ std::shared_ptr<type::primitive::types::PrimitiveLongObject> readLong () const = delete;
42+ std::shared_ptr<type::primitive::types::PrimitiveFloatObject> readFloat () const = delete;
43+ std::shared_ptr<type::primitive::types::PrimitiveDoubleObject> readDouble () const = delete;
44+
2745
2846 ObjectInputStream &operator >>(std::shared_ptr<type::object::IObject> &object);
2947 private:
0 commit comments