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" );
54 "\", declared as C-Array, is associated to the non-array type \""+
56 "RelationalStreamerFactory::newStreamer" );
58 newStreamer =
new CArrayStreamer( type, mapping, m_containerSchema );
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();
RelationalStreamerFactory(ContainerSchema &contSchema)
const std::string & variableName() const
bool isTypeNamedReference(const edm::TypeWithDict &typ)
ElementType elementType() const
bool isTypePrimitive(const edm::TypeWithDict &typ)
bool isTypeOraPointer(const edm::TypeWithDict &typ)
bool isTypePVector(const edm::TypeWithDict &typ)
bool isTypeUniqueReference(const edm::TypeWithDict &typ)
IRelationalWriter * newWriter(const edm::TypeWithDict &dataType, MappingElement &dataMapping)
bool isTypeOraVector(const edm::TypeWithDict &typ)
~RelationalStreamerFactory()
bool isTypeOraReference(const edm::TypeWithDict &typ)
IRelationalReader * newReader(const edm::TypeWithDict &dataType, MappingElement &dataMapping)
bool isTypeQueryableVector(const edm::TypeWithDict &typ)
const std::string & variableType() const
void throwException(const std::string &message, const std::string &methodName) __attribute__((noreturn))
IRelationalUpdater * newUpdater(const edm::TypeWithDict &dataType, MappingElement &dataMapping)
bool isTypeContainer(const edm::TypeWithDict &typ)
IRelationalStreamer * newStreamer(const edm::TypeWithDict &dataType, MappingElement &dataMapping)