21 m_containerSchema( contSchema ){
33 "\", declared as Primitive, is associated to non-primitive type \""+type.Name()+
"\"",
34 "RelationalStreamerFactory::newStreamer" );
38 newStreamer =
new BlobStreamer( type, mapping, m_containerSchema );
40 newStreamer =
new ObjectStreamer( type, mapping, m_containerSchema );
45 "\", declared as Array, is associated to the non-container type \""+
47 "RelationalStreamerFactory::newStreamer" );
51 if ( ! type.IsArray() ) {
54 "\", declared as C-Array, is associated to the non-array type \""+
56 "RelationalStreamerFactory::newStreamer" );
58 newStreamer =
new CArrayStreamer( type, mapping, m_containerSchema );
60 if ( ! type.IsArray() ) {
63 "\", declared as Inline C-Array, is associated to the non-array type \""+
65 "RelationalStreamerFactory::newStreamer" );
72 "\", declared as OraArray, is associated to the non-array type \""+
74 "RelationalStreamerFactory::newStreamer" );
84 "\", declared as a OraPointer, is associated to the type \""+
86 "RelationalStreamerFactory::newStreamer" );
88 newStreamer =
new OraPtrStreamer( type, mapping, m_containerSchema );
93 "\", declared as a OraReference, is associated to the type \""+
95 "RelationalStreamerFactory::newStreamer" );
102 "\", declared as a NamedReference, is associated to the type \""+
104 "RelationalStreamerFactory::newStreamer" );
111 "\", declared as a UniqueReference, is associated to the type \""+
113 "RelationalStreamerFactory::newStreamer" );
120 "RelationalStreamerFactory::newStreamer" );
130 std::auto_ptr<IRelationalStreamer> streamer( newStreamer( type, mapping ) );
131 return streamer->newWriter();
136 std::auto_ptr<IRelationalStreamer> streamer( newStreamer( type, mapping ) );
137 return streamer->newUpdater();
142 std::auto_ptr<IRelationalStreamer> streamer( newStreamer( type, mapping ) );
143 return streamer->newReader();
bool isTypeOraPointer(const Reflex::Type &typ)
IRelationalStreamer * newStreamer(const Reflex::Type &dataType, MappingElement &dataMapping)
RelationalStreamerFactory(ContainerSchema &contSchema)
IRelationalReader * newReader(const Reflex::Type &dataType, MappingElement &dataMapping)
const std::string & variableName() const
bool isTypePVector(const Reflex::Type &typ)
bool isTypeOraReference(const Reflex::Type &typ)
ElementType elementType() const
bool isTypeUniqueReference(const Reflex::Type &typ)
bool isTypeContainer(const Reflex::Type &typ)
~RelationalStreamerFactory()
IRelationalWriter * newWriter(const Reflex::Type &dataType, MappingElement &dataMapping)
IRelationalUpdater * newUpdater(const Reflex::Type &dataType, MappingElement &dataMapping)
bool isTypePrimitive(const Reflex::Type &typ)
const std::string & variableType() const
bool isTypeNamedReference(const Reflex::Type &typ)
void throwException(const std::string &message, const std::string &methodName)
bool isTypeQueryableVector(const Reflex::Type &typ)