add a CSVConnector/CSVExpression classes to serialize to csv format
Current limitation: list/vectors are not serialized. while here: - move the output_type flag from the DbExpression to BaseExpression class - add Model::to_text(...) methods with an Export parameter
This commit is contained in:
parent
d61fc31b5c
commit
86177889af
|
@ -16,9 +16,9 @@
|
||||||
./main.o: ../../pikotools/src/textstream/types.h ../src/modelconnector.h
|
./main.o: ../../pikotools/src/textstream/types.h ../src/modelconnector.h
|
||||||
./main.o: ../src/clearer.h ../src/ft.h ../src/dbconnector.h
|
./main.o: ../src/clearer.h ../src/ft.h ../src/dbconnector.h
|
||||||
./main.o: ../../pikotools/src/log/log.h ../../pikotools/src/log/filelog.h
|
./main.o: ../../pikotools/src/log/log.h ../../pikotools/src/log/filelog.h
|
||||||
./main.o: ../src/queryresult.h ../src/flatconnector.h ../src/dbexpression.h
|
./main.o: ../src/queryresult.h ../src/flatconnector.h ../src/export.h
|
||||||
./main.o: ../src/baseexpression.h ../src/modelenv.h ../src/modeldata.h
|
./main.o: ../src/dbexpression.h ../src/baseexpression.h ../src/modelenv.h
|
||||||
./main.o: ../src/cursorhelper.h ../src/finderhelper.h
|
./main.o: ../src/modeldata.h ../src/cursorhelper.h ../src/finderhelper.h
|
||||||
./main.o: ../src/fieldvaluehelper.h ../src/wrapper.h ../src/spacewrapper.h
|
./main.o: ../src/fieldvaluehelper.h ../src/wrapper.h ../src/spacewrapper.h
|
||||||
./main.o: ../src/baseobjectwrapper.h ../src/modelcontainerwrapper.h
|
./main.o: ../src/baseobjectwrapper.h ../src/modelcontainerwrapper.h
|
||||||
./main.o: ../src/select.h ../../pikotools/src/convert/text.h
|
./main.o: ../src/select.h ../../pikotools/src/convert/text.h
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
./baseexpression.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
./baseexpression.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
||||||
./baseexpression.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
./baseexpression.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
||||||
./baseexpression.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
./baseexpression.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
||||||
./baseexpression.o: ../../pikotools/src/convert/text.h model.h
|
./baseexpression.o: export.h ../../pikotools/src/convert/text.h model.h
|
||||||
./baseexpression.o: modelconnector.h clearer.h dbconnector.h flatconnector.h
|
./baseexpression.o: modelconnector.h clearer.h dbconnector.h flatconnector.h
|
||||||
./baseexpression.o: dbexpression.h flatexpression.h
|
./baseexpression.o: dbexpression.h flatexpression.h
|
||||||
./clearer.o: clearer.h ../../pikotools/src/date/date.h
|
./clearer.o: clearer.h ../../pikotools/src/date/date.h
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
./clearer.o: ../../pikotools/src/textstream/types.h modelconnector.h
|
./clearer.o: ../../pikotools/src/textstream/types.h modelconnector.h
|
||||||
./clearer.o: dbconnector.h ../../pikotools/src/log/log.h
|
./clearer.o: dbconnector.h ../../pikotools/src/log/log.h
|
||||||
./clearer.o: ../../pikotools/src/log/filelog.h queryresult.h flatconnector.h
|
./clearer.o: ../../pikotools/src/log/filelog.h queryresult.h flatconnector.h
|
||||||
./clearer.o: dbexpression.h baseexpression.h morm_types.h modelenv.h
|
./clearer.o: export.h dbexpression.h baseexpression.h morm_types.h modelenv.h
|
||||||
./clearer.o: modeldata.h cursorhelper.h finderhelper.h fieldvaluehelper.h
|
./clearer.o: modeldata.h cursorhelper.h finderhelper.h fieldvaluehelper.h
|
||||||
./clearer.o: wrapper.h spacewrapper.h baseobjectwrapper.h
|
./clearer.o: wrapper.h spacewrapper.h baseobjectwrapper.h
|
||||||
./clearer.o: modelcontainerwrapper.h select.h
|
./clearer.o: modelcontainerwrapper.h select.h
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
./dbconnector.o: dbexpression.h baseexpression.h morm_types.h modelenv.h
|
./dbconnector.o: dbexpression.h baseexpression.h morm_types.h modelenv.h
|
||||||
./dbconnector.o: modeldata.h cursorhelper.h finderhelper.h fieldvaluehelper.h
|
./dbconnector.o: modeldata.h cursorhelper.h finderhelper.h fieldvaluehelper.h
|
||||||
./dbconnector.o: wrapper.h spacewrapper.h baseobjectwrapper.h
|
./dbconnector.o: wrapper.h spacewrapper.h baseobjectwrapper.h
|
||||||
./dbconnector.o: modelcontainerwrapper.h select.h
|
./dbconnector.o: modelcontainerwrapper.h select.h export.h
|
||||||
./dbconnector.o: ../../pikotools/src/convert/text.h model.h modelconnector.h
|
./dbconnector.o: ../../pikotools/src/convert/text.h model.h modelconnector.h
|
||||||
./dbconnector.o: clearer.h flatconnector.h flatexpression.h
|
./dbconnector.o: clearer.h flatconnector.h flatexpression.h
|
||||||
./dbconnector.o: ../../pikotools/src/convert/convert.h
|
./dbconnector.o: ../../pikotools/src/convert/convert.h
|
||||||
|
@ -88,8 +88,9 @@
|
||||||
./dbexpression.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
./dbexpression.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
||||||
./dbexpression.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
./dbexpression.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
||||||
./dbexpression.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
./dbexpression.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
||||||
./dbexpression.o: ../../pikotools/src/convert/text.h model.h modelconnector.h
|
./dbexpression.o: export.h ../../pikotools/src/convert/text.h model.h
|
||||||
./dbexpression.o: clearer.h dbconnector.h flatconnector.h flatexpression.h
|
./dbexpression.o: modelconnector.h clearer.h dbconnector.h flatconnector.h
|
||||||
|
./dbexpression.o: flatexpression.h
|
||||||
./flatconnector.o: flatconnector.h
|
./flatconnector.o: flatconnector.h
|
||||||
./flatconnector.o: ../../pikotools/src/textstream/textstream.h
|
./flatconnector.o: ../../pikotools/src/textstream/textstream.h
|
||||||
./flatconnector.o: ../../pikotools/src/textstream/stream.h
|
./flatconnector.o: ../../pikotools/src/textstream/stream.h
|
||||||
|
@ -102,9 +103,10 @@
|
||||||
./flatconnector.o: ../../pikotools/src/utf8/utf8_private.h
|
./flatconnector.o: ../../pikotools/src/utf8/utf8_private.h
|
||||||
./flatconnector.o: ../../pikotools/src/date/date.h
|
./flatconnector.o: ../../pikotools/src/date/date.h
|
||||||
./flatconnector.o: ../../pikotools/src/membuffer/membuffer.h
|
./flatconnector.o: ../../pikotools/src/membuffer/membuffer.h
|
||||||
./flatconnector.o: ../../pikotools/src/textstream/types.h flatexpression.h
|
./flatconnector.o: ../../pikotools/src/textstream/types.h export.h
|
||||||
./flatconnector.o: baseexpression.h morm_types.h modelenv.h modeldata.h
|
./flatconnector.o: flatexpression.h baseexpression.h morm_types.h modelenv.h
|
||||||
./flatconnector.o: cursorhelper.h queryresult.h ../../pikotools/src/log/log.h
|
./flatconnector.o: modeldata.h cursorhelper.h queryresult.h
|
||||||
|
./flatconnector.o: ../../pikotools/src/log/log.h
|
||||||
./flatconnector.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
./flatconnector.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
||||||
./flatconnector.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
./flatconnector.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
||||||
./flatconnector.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
./flatconnector.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
||||||
|
@ -128,7 +130,7 @@
|
||||||
./flatexpression.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
./flatexpression.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
||||||
./flatexpression.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
./flatexpression.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
||||||
./flatexpression.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
./flatexpression.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
||||||
./flatexpression.o: ../../pikotools/src/convert/text.h
|
./flatexpression.o: export.h ../../pikotools/src/convert/text.h
|
||||||
./jsonconnector.o: jsonconnector.h flatconnector.h
|
./jsonconnector.o: jsonconnector.h flatconnector.h
|
||||||
./jsonconnector.o: ../../pikotools/src/textstream/textstream.h
|
./jsonconnector.o: ../../pikotools/src/textstream/textstream.h
|
||||||
./jsonconnector.o: ../../pikotools/src/textstream/stream.h
|
./jsonconnector.o: ../../pikotools/src/textstream/stream.h
|
||||||
|
@ -141,10 +143,10 @@
|
||||||
./jsonconnector.o: ../../pikotools/src/utf8/utf8_private.h
|
./jsonconnector.o: ../../pikotools/src/utf8/utf8_private.h
|
||||||
./jsonconnector.o: ../../pikotools/src/date/date.h
|
./jsonconnector.o: ../../pikotools/src/date/date.h
|
||||||
./jsonconnector.o: ../../pikotools/src/membuffer/membuffer.h
|
./jsonconnector.o: ../../pikotools/src/membuffer/membuffer.h
|
||||||
./jsonconnector.o: ../../pikotools/src/textstream/types.h jsonexpression.h
|
./jsonconnector.o: ../../pikotools/src/textstream/types.h export.h
|
||||||
./jsonconnector.o: flatexpression.h baseexpression.h morm_types.h modelenv.h
|
./jsonconnector.o: jsonexpression.h flatexpression.h baseexpression.h
|
||||||
./jsonconnector.o: modeldata.h cursorhelper.h queryresult.h
|
./jsonconnector.o: morm_types.h modelenv.h modeldata.h cursorhelper.h
|
||||||
./jsonconnector.o: ../../pikotools/src/log/log.h
|
./jsonconnector.o: queryresult.h ../../pikotools/src/log/log.h
|
||||||
./jsonconnector.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
./jsonconnector.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
||||||
./jsonconnector.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
./jsonconnector.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
||||||
./jsonconnector.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
./jsonconnector.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
||||||
|
@ -167,7 +169,7 @@
|
||||||
./jsonexpression.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
./jsonexpression.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
||||||
./jsonexpression.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
./jsonexpression.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
||||||
./jsonexpression.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
./jsonexpression.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
||||||
./jsonexpression.o: ../../pikotools/src/convert/text.h
|
./jsonexpression.o: export.h ../../pikotools/src/convert/text.h
|
||||||
./jsonexpression.o: ../../pikotools/src/convert/misc.h
|
./jsonexpression.o: ../../pikotools/src/convert/misc.h
|
||||||
./jsonexpression.o: ../../pikotools/src/convert/text.h
|
./jsonexpression.o: ../../pikotools/src/convert/text.h
|
||||||
./model.o: model.h ../../pikotools/src/textstream/textstream.h
|
./model.o: model.h ../../pikotools/src/textstream/textstream.h
|
||||||
|
@ -184,7 +186,7 @@
|
||||||
./model.o: ../../pikotools/src/textstream/types.h modelconnector.h clearer.h
|
./model.o: ../../pikotools/src/textstream/types.h modelconnector.h clearer.h
|
||||||
./model.o: ft.h dbconnector.h ../../pikotools/src/log/log.h
|
./model.o: ft.h dbconnector.h ../../pikotools/src/log/log.h
|
||||||
./model.o: ../../pikotools/src/log/filelog.h queryresult.h flatconnector.h
|
./model.o: ../../pikotools/src/log/filelog.h queryresult.h flatconnector.h
|
||||||
./model.o: dbexpression.h baseexpression.h morm_types.h modelenv.h
|
./model.o: export.h dbexpression.h baseexpression.h morm_types.h modelenv.h
|
||||||
./model.o: modeldata.h cursorhelper.h finderhelper.h fieldvaluehelper.h
|
./model.o: modeldata.h cursorhelper.h finderhelper.h fieldvaluehelper.h
|
||||||
./model.o: wrapper.h spacewrapper.h baseobjectwrapper.h
|
./model.o: wrapper.h spacewrapper.h baseobjectwrapper.h
|
||||||
./model.o: modelcontainerwrapper.h select.h
|
./model.o: modelcontainerwrapper.h select.h
|
||||||
|
@ -204,7 +206,7 @@
|
||||||
./modelconnector.o: ../../pikotools/src/textstream/types.h
|
./modelconnector.o: ../../pikotools/src/textstream/types.h
|
||||||
./modelconnector.o: ../../pikotools/src/log/log.h
|
./modelconnector.o: ../../pikotools/src/log/log.h
|
||||||
./modelconnector.o: ../../pikotools/src/log/filelog.h queryresult.h
|
./modelconnector.o: ../../pikotools/src/log/filelog.h queryresult.h
|
||||||
./modelconnector.o: flatconnector.h
|
./modelconnector.o: flatconnector.h export.h
|
||||||
./postgresqlconnector.o: postgresqlconnector.h dbconnector.h
|
./postgresqlconnector.o: postgresqlconnector.h dbconnector.h
|
||||||
./postgresqlconnector.o: ../../pikotools/src/textstream/textstream.h
|
./postgresqlconnector.o: ../../pikotools/src/textstream/textstream.h
|
||||||
./postgresqlconnector.o: ../../pikotools/src/textstream/stream.h
|
./postgresqlconnector.o: ../../pikotools/src/textstream/stream.h
|
||||||
|
@ -225,7 +227,7 @@
|
||||||
./postgresqlconnector.o: modelenv.h modeldata.h cursorhelper.h finderhelper.h
|
./postgresqlconnector.o: modelenv.h modeldata.h cursorhelper.h finderhelper.h
|
||||||
./postgresqlconnector.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
./postgresqlconnector.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
||||||
./postgresqlconnector.o: baseobjectwrapper.h modelcontainerwrapper.h select.h
|
./postgresqlconnector.o: baseobjectwrapper.h modelcontainerwrapper.h select.h
|
||||||
./postgresqlconnector.o: ../../pikotools/src/convert/text.h
|
./postgresqlconnector.o: export.h ../../pikotools/src/convert/text.h
|
||||||
./postgresqlconnector.o: ../../pikotools/src/convert/strtoint.h
|
./postgresqlconnector.o: ../../pikotools/src/convert/strtoint.h
|
||||||
./postgresqlconnector.o: ../../pikotools/src/convert/text.h
|
./postgresqlconnector.o: ../../pikotools/src/convert/text.h
|
||||||
./postgresqlconnector.o: ../../pikotools/src/convert/misc.h
|
./postgresqlconnector.o: ../../pikotools/src/convert/misc.h
|
||||||
|
@ -248,7 +250,8 @@
|
||||||
./postgresqlexpression.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
./postgresqlexpression.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
||||||
./postgresqlexpression.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
./postgresqlexpression.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
||||||
./postgresqlexpression.o: baseobjectwrapper.h modelcontainerwrapper.h
|
./postgresqlexpression.o: baseobjectwrapper.h modelcontainerwrapper.h
|
||||||
./postgresqlexpression.o: select.h ft.h ../../pikotools/src/convert/text.h
|
./postgresqlexpression.o: select.h ft.h export.h
|
||||||
|
./postgresqlexpression.o: ../../pikotools/src/convert/text.h
|
||||||
./postgresqlqueryresult.o: postgresqlqueryresult.h queryresult.h
|
./postgresqlqueryresult.o: postgresqlqueryresult.h queryresult.h
|
||||||
./postgresqlqueryresult.o: ../../pikotools/src/log/log.h
|
./postgresqlqueryresult.o: ../../pikotools/src/log/log.h
|
||||||
./postgresqlqueryresult.o: ../../pikotools/src/textstream/textstream.h
|
./postgresqlqueryresult.o: ../../pikotools/src/textstream/textstream.h
|
||||||
|
@ -292,7 +295,7 @@
|
||||||
./transaction.o: ../../pikotools/src/membuffer/membuffer.h
|
./transaction.o: ../../pikotools/src/membuffer/membuffer.h
|
||||||
./transaction.o: ../../pikotools/src/textstream/types.h
|
./transaction.o: ../../pikotools/src/textstream/types.h
|
||||||
./transaction.o: ../../pikotools/src/log/filelog.h modelconnector.h clearer.h
|
./transaction.o: ../../pikotools/src/log/filelog.h modelconnector.h clearer.h
|
||||||
./transaction.o: ft.h dbconnector.h queryresult.h flatconnector.h
|
./transaction.o: ft.h dbconnector.h queryresult.h flatconnector.h export.h
|
||||||
./xmlconnector.o: xmlconnector.h flatconnector.h
|
./xmlconnector.o: xmlconnector.h flatconnector.h
|
||||||
./xmlconnector.o: ../../pikotools/src/textstream/textstream.h
|
./xmlconnector.o: ../../pikotools/src/textstream/textstream.h
|
||||||
./xmlconnector.o: ../../pikotools/src/textstream/stream.h
|
./xmlconnector.o: ../../pikotools/src/textstream/stream.h
|
||||||
|
@ -305,10 +308,10 @@
|
||||||
./xmlconnector.o: ../../pikotools/src/utf8/utf8_private.h
|
./xmlconnector.o: ../../pikotools/src/utf8/utf8_private.h
|
||||||
./xmlconnector.o: ../../pikotools/src/date/date.h
|
./xmlconnector.o: ../../pikotools/src/date/date.h
|
||||||
./xmlconnector.o: ../../pikotools/src/membuffer/membuffer.h
|
./xmlconnector.o: ../../pikotools/src/membuffer/membuffer.h
|
||||||
./xmlconnector.o: ../../pikotools/src/textstream/types.h xmlexpression.h
|
./xmlconnector.o: ../../pikotools/src/textstream/types.h export.h
|
||||||
./xmlconnector.o: flatexpression.h baseexpression.h morm_types.h modelenv.h
|
./xmlconnector.o: xmlexpression.h flatexpression.h baseexpression.h
|
||||||
./xmlconnector.o: modeldata.h cursorhelper.h queryresult.h
|
./xmlconnector.o: morm_types.h modelenv.h modeldata.h cursorhelper.h
|
||||||
./xmlconnector.o: ../../pikotools/src/log/log.h
|
./xmlconnector.o: queryresult.h ../../pikotools/src/log/log.h
|
||||||
./xmlconnector.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
./xmlconnector.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
||||||
./xmlconnector.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
./xmlconnector.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
||||||
./xmlconnector.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
./xmlconnector.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
||||||
|
@ -331,6 +334,47 @@
|
||||||
./xmlexpression.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
./xmlexpression.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
||||||
./xmlexpression.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
./xmlexpression.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
||||||
./xmlexpression.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
./xmlexpression.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
||||||
./xmlexpression.o: ../../pikotools/src/convert/text.h
|
./xmlexpression.o: export.h ../../pikotools/src/convert/text.h
|
||||||
./xmlexpression.o: ../../pikotools/src/convert/misc.h
|
./xmlexpression.o: ../../pikotools/src/convert/misc.h
|
||||||
./xmlexpression.o: ../../pikotools/src/convert/text.h
|
./xmlexpression.o: ../../pikotools/src/convert/text.h
|
||||||
|
./csvexpression.o: csvexpression.h flatexpression.h baseexpression.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/textstream/textstream.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/textstream/stream.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/space/space.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/textstream/types.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/convert/inttostr.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/utf8/utf8.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/textstream/stream.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/utf8/utf8_templates.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/utf8/utf8_private.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/date/date.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/membuffer/membuffer.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/textstream/types.h morm_types.h
|
||||||
|
./csvexpression.o: modelenv.h modeldata.h cursorhelper.h queryresult.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/log/log.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
||||||
|
./csvexpression.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
||||||
|
./csvexpression.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
||||||
|
./csvexpression.o: export.h ../../pikotools/src/convert/text.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/convert/misc.h
|
||||||
|
./csvexpression.o: ../../pikotools/src/convert/text.h
|
||||||
|
./csvconnector.o: csvconnector.h flatconnector.h
|
||||||
|
./csvconnector.o: ../../pikotools/src/textstream/textstream.h
|
||||||
|
./csvconnector.o: ../../pikotools/src/textstream/stream.h
|
||||||
|
./csvconnector.o: ../../pikotools/src/space/space.h
|
||||||
|
./csvconnector.o: ../../pikotools/src/textstream/types.h
|
||||||
|
./csvconnector.o: ../../pikotools/src/convert/inttostr.h
|
||||||
|
./csvconnector.o: ../../pikotools/src/utf8/utf8.h
|
||||||
|
./csvconnector.o: ../../pikotools/src/textstream/stream.h
|
||||||
|
./csvconnector.o: ../../pikotools/src/utf8/utf8_templates.h
|
||||||
|
./csvconnector.o: ../../pikotools/src/utf8/utf8_private.h
|
||||||
|
./csvconnector.o: ../../pikotools/src/date/date.h
|
||||||
|
./csvconnector.o: ../../pikotools/src/membuffer/membuffer.h
|
||||||
|
./csvconnector.o: ../../pikotools/src/textstream/types.h export.h
|
||||||
|
./csvconnector.o: csvexpression.h flatexpression.h baseexpression.h
|
||||||
|
./csvconnector.o: morm_types.h modelenv.h modeldata.h cursorhelper.h
|
||||||
|
./csvconnector.o: queryresult.h ../../pikotools/src/log/log.h
|
||||||
|
./csvconnector.o: ../../pikotools/src/log/filelog.h finderhelper.h
|
||||||
|
./csvconnector.o: fieldvaluehelper.h wrapper.h spacewrapper.h
|
||||||
|
./csvconnector.o: baseobjectwrapper.h modelcontainerwrapper.h select.h ft.h
|
||||||
|
./csvconnector.o: ../../pikotools/src/convert/text.h
|
||||||
|
|
|
@ -51,6 +51,7 @@ BaseExpression::BaseExpression()
|
||||||
clear();
|
clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BaseExpression::~BaseExpression()
|
BaseExpression::~BaseExpression()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -61,6 +62,7 @@ void BaseExpression::clear()
|
||||||
out_stream = nullptr;
|
out_stream = nullptr;
|
||||||
is_first_field = false;
|
is_first_field = false;
|
||||||
work_mode = 0;
|
work_mode = 0;
|
||||||
|
output_type = 0;
|
||||||
use_prefix = false;
|
use_prefix = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,6 +79,18 @@ int BaseExpression::get_work_mode()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BaseExpression::set_output_type(int output_type)
|
||||||
|
{
|
||||||
|
this->output_type = output_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int BaseExpression::get_output_type()
|
||||||
|
{
|
||||||
|
return output_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
pt::TextStream * BaseExpression::get_text_stream()
|
pt::TextStream * BaseExpression::get_text_stream()
|
||||||
{
|
{
|
||||||
|
@ -184,6 +198,13 @@ bool BaseExpression::can_field_model_be_generated(bool has_model_primary_key, co
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool BaseExpression::can_field_list_be_generated(const FT &)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool BaseExpression::should_field_model_be_generated_as_null(bool has_model_primary_key, const FT & field_type)
|
bool BaseExpression::should_field_model_be_generated_as_null(bool has_model_primary_key, const FT & field_type)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
#include "morm_types.h"
|
#include "morm_types.h"
|
||||||
#include "modelenv.h"
|
#include "modelenv.h"
|
||||||
#include "ft.h"
|
#include "ft.h"
|
||||||
|
#include "export.h"
|
||||||
#include "convert/text.h"
|
#include "convert/text.h"
|
||||||
|
|
||||||
#ifdef MORM_HAS_EZC_LIBRARY
|
#ifdef MORM_HAS_EZC_LIBRARY
|
||||||
|
@ -69,6 +70,9 @@ public:
|
||||||
virtual void set_work_mode(int work_mode);
|
virtual void set_work_mode(int work_mode);
|
||||||
virtual int get_work_mode();
|
virtual int get_work_mode();
|
||||||
|
|
||||||
|
virtual void set_output_type(int output_type);
|
||||||
|
virtual int get_output_type();
|
||||||
|
|
||||||
virtual pt::TextStream * get_text_stream();
|
virtual pt::TextStream * get_text_stream();
|
||||||
virtual void set_text_stream(pt::TextStream * out_stream);
|
virtual void set_text_stream(pt::TextStream * out_stream);
|
||||||
|
|
||||||
|
@ -160,7 +164,7 @@ public:
|
||||||
void field_list(const wchar_t * field_name, ModelContainer & field_value, ModelContainerType * model_container_type,
|
void field_list(const wchar_t * field_name, ModelContainer & field_value, ModelContainerType * model_container_type,
|
||||||
const FT & field_type, ModelConnector * model_connector, ModelEnv * model_env, IsContainerByValueRenameMe * foo)
|
const FT & field_type, ModelConnector * model_connector, ModelEnv * model_env, IsContainerByValueRenameMe * foo)
|
||||||
{
|
{
|
||||||
if( out_stream && can_field_be_generated(field_type) )
|
if( out_stream && can_field_be_generated(field_type) && can_field_list_be_generated(field_type) )
|
||||||
{
|
{
|
||||||
field_before();
|
field_before();
|
||||||
|
|
||||||
|
@ -192,12 +196,15 @@ public:
|
||||||
|
|
||||||
if( work_mode == MORM_WORK_MODE_MODEL_FIELDS )
|
if( work_mode == MORM_WORK_MODE_MODEL_FIELDS )
|
||||||
{
|
{
|
||||||
put_field_name_and_table_if_needed(field_name, field_type, model_env);
|
if( output_type == MORM_OUTPUT_TYPE_FIELDS_RECURSIVE )
|
||||||
|
generate_from_model(field_model, field_type);
|
||||||
|
else
|
||||||
|
put_field_name_and_table_if_needed(field_name, field_type, model_env);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if( work_mode == MORM_WORK_MODE_MODEL_VALUES )
|
if( work_mode == MORM_WORK_MODE_MODEL_VALUES )
|
||||||
{
|
{
|
||||||
generate_from_model(field_model, field_type); // is it ok as a value?
|
generate_from_model(field_model, field_type);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if( work_mode == MORM_WORK_MODE_MODEL_FIELDS_VALUES )
|
if( work_mode == MORM_WORK_MODE_MODEL_FIELDS_VALUES )
|
||||||
|
@ -341,6 +348,7 @@ public:
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
int work_mode; /* what to do: generating fields list, values list or fields-values list */
|
int work_mode; /* what to do: generating fields list, values list or fields-values list */
|
||||||
|
int output_type;
|
||||||
bool is_first_field;
|
bool is_first_field;
|
||||||
pt::TextStream * out_stream;
|
pt::TextStream * out_stream;
|
||||||
bool use_prefix;
|
bool use_prefix;
|
||||||
|
@ -354,6 +362,7 @@ protected:
|
||||||
|
|
||||||
virtual bool can_field_be_generated(const FT &);
|
virtual bool can_field_be_generated(const FT &);
|
||||||
virtual bool can_field_model_be_generated(bool has_model_primary_key, const FT & field_type);
|
virtual bool can_field_model_be_generated(bool has_model_primary_key, const FT & field_type);
|
||||||
|
virtual bool can_field_list_be_generated(const FT &);
|
||||||
virtual bool should_field_model_be_generated_as_null(bool has_model_primary_key, const FT & field_type);
|
virtual bool should_field_model_be_generated_as_null(bool has_model_primary_key, const FT & field_type);
|
||||||
|
|
||||||
virtual void field_before();
|
virtual void field_before();
|
||||||
|
|
|
@ -0,0 +1,81 @@
|
||||||
|
/*
|
||||||
|
* This file is a part of morm
|
||||||
|
* and is distributed under the 2-Clause BSD licence.
|
||||||
|
* Author: Tomasz Sowa <t.sowa@ttmath.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2023, Tomasz Sowa
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "csvconnector.h"
|
||||||
|
#include "csvexpression.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace morm
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
CSVConnector::CSVConnector()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CSVConnector::allocate_default_expression()
|
||||||
|
{
|
||||||
|
deallocate_expression();
|
||||||
|
flat_expression = new CSVExpression();
|
||||||
|
expression_allocated = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CSVConnector::to_text(pt::TextStream & stream, Model & model, Export exp)
|
||||||
|
{
|
||||||
|
allocate_default_expression_if_needed();
|
||||||
|
|
||||||
|
if( flat_expression )
|
||||||
|
{
|
||||||
|
flat_expression->clear();
|
||||||
|
|
||||||
|
if( exp.is_export_headers() )
|
||||||
|
{
|
||||||
|
flat_expression->set_work_mode(MORM_WORK_MODE_MODEL_FIELDS);
|
||||||
|
flat_expression->set_output_type(MORM_OUTPUT_TYPE_FIELDS_RECURSIVE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
flat_expression->set_work_mode(MORM_WORK_MODE_MODEL_VALUES);
|
||||||
|
}
|
||||||
|
|
||||||
|
flat_expression->allow_to_use_prefix(false);
|
||||||
|
flat_expression->generate_from_model(stream, model);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
* This file is a part of morm
|
||||||
|
* and is distributed under the 2-Clause BSD licence.
|
||||||
|
* Author: Tomasz Sowa <t.sowa@ttmath.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2023, Tomasz Sowa
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef headerfile_morm_src_csvconnector
|
||||||
|
#define headerfile_morm_src_csvconnector
|
||||||
|
|
||||||
|
#include "flatconnector.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace morm
|
||||||
|
{
|
||||||
|
|
||||||
|
class CSVConnector : public FlatConnector
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
CSVConnector();
|
||||||
|
|
||||||
|
|
||||||
|
void to_text(pt::TextStream & stream, Model & model, Export exp);
|
||||||
|
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
void allocate_default_expression();
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,97 @@
|
||||||
|
/*
|
||||||
|
* This file is a part of morm
|
||||||
|
* and is distributed under the 2-Clause BSD licence.
|
||||||
|
* Author: Tomasz Sowa <t.sowa@ttmath.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2023, Tomasz Sowa
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "csvexpression.h"
|
||||||
|
#include "morm_types.h"
|
||||||
|
#include "convert/misc.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace morm
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
bool CSVExpression::can_field_list_be_generated(const FT &)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CSVExpression::field_before()
|
||||||
|
{
|
||||||
|
BaseExpression::field_before();
|
||||||
|
|
||||||
|
if( !is_first_field )
|
||||||
|
{
|
||||||
|
(*out_stream) << ",";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CSVExpression::after_generate_from_model()
|
||||||
|
{
|
||||||
|
(*out_stream) << ",";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CSVExpression::before_field_name()
|
||||||
|
{
|
||||||
|
(*out_stream) << '"';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CSVExpression::after_field_name()
|
||||||
|
{
|
||||||
|
(*out_stream) << '"';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CSVExpression::before_field_value_string(const FT & field_type, ModelEnv * model_env)
|
||||||
|
{
|
||||||
|
(*out_stream) << '"';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CSVExpression::after_field_value_string(const FT & field_type, ModelEnv * model_env)
|
||||||
|
{
|
||||||
|
(*out_stream) << '"';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool CSVExpression::esc_char(wchar_t val, pt::TextStream & stream, const FT & field_type, ModelEnv * model_env)
|
||||||
|
{
|
||||||
|
return pt::try_esc_to_csv(val, stream);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,68 @@
|
||||||
|
/*
|
||||||
|
* This file is a part of morm
|
||||||
|
* and is distributed under the 2-Clause BSD licence.
|
||||||
|
* Author: Tomasz Sowa <t.sowa@ttmath.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2023, Tomasz Sowa
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef headerfile_morm_src_csvexpression
|
||||||
|
#define headerfile_morm_src_csvexpression
|
||||||
|
|
||||||
|
#include "flatexpression.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
namespace morm
|
||||||
|
{
|
||||||
|
|
||||||
|
class CSVExpression : public FlatExpression
|
||||||
|
{
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
bool can_field_list_be_generated(const FT &);
|
||||||
|
void field_before();
|
||||||
|
void after_generate_from_model();
|
||||||
|
|
||||||
|
void before_field_name();
|
||||||
|
void after_field_name();
|
||||||
|
|
||||||
|
void before_field_value_string(const FT & field_type, ModelEnv * model_env);
|
||||||
|
void after_field_value_string(const FT & field_type, ModelEnv * model_env);
|
||||||
|
|
||||||
|
using BaseExpression::esc;
|
||||||
|
bool esc_char(wchar_t val, pt::TextStream & stream, const FT & field_type, ModelEnv * model_env);
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -42,7 +42,6 @@ namespace morm
|
||||||
|
|
||||||
DbExpression::DbExpression()
|
DbExpression::DbExpression()
|
||||||
{
|
{
|
||||||
output_type = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -51,18 +50,6 @@ DbExpression::~DbExpression()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DbExpression::set_output_type(int output_type)
|
|
||||||
{
|
|
||||||
this->output_type = output_type;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int DbExpression::get_output_type()
|
|
||||||
{
|
|
||||||
return output_type;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool DbExpression::can_field_be_generated(const FT & field_type)
|
bool DbExpression::can_field_be_generated(const FT & field_type)
|
||||||
{
|
{
|
||||||
if( output_type == MORM_OUTPUT_TYPE_DB_INSERT )
|
if( output_type == MORM_OUTPUT_TYPE_DB_INSERT )
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2018-2022, Tomasz Sowa
|
* Copyright (c) 2018-2023, Tomasz Sowa
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -53,11 +53,6 @@ public:
|
||||||
|
|
||||||
constexpr static const char * COLUMN_ROWS_COUNTER_POSTFIX = "_autoadded_rows_counter";
|
constexpr static const char * COLUMN_ROWS_COUNTER_POSTFIX = "_autoadded_rows_counter";
|
||||||
|
|
||||||
|
|
||||||
virtual void set_output_type(int output_type);
|
|
||||||
virtual int get_output_type();
|
|
||||||
|
|
||||||
|
|
||||||
virtual void prepare_to_where_clause();
|
virtual void prepare_to_where_clause();
|
||||||
|
|
||||||
virtual DbExpression & group_or(pt::TextStream & stream);
|
virtual DbExpression & group_or(pt::TextStream & stream);
|
||||||
|
@ -86,7 +81,7 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
int output_type;
|
|
||||||
std::vector<int> conjunctions;
|
std::vector<int> conjunctions;
|
||||||
|
|
||||||
bool can_field_be_generated(const FT & field_type);
|
bool can_field_be_generated(const FT & field_type);
|
||||||
|
|
|
@ -0,0 +1,128 @@
|
||||||
|
/*
|
||||||
|
* This file is a part of morm
|
||||||
|
* and is distributed under the 2-Clause BSD licence.
|
||||||
|
* Author: Tomasz Sowa <t.sowa@ttmath.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2023, Tomasz Sowa
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWAExportType, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef headerfile_morm_src_export
|
||||||
|
#define headerfile_morm_src_export
|
||||||
|
|
||||||
|
namespace morm
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* field types
|
||||||
|
*/
|
||||||
|
class Export
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
enum ExportType
|
||||||
|
{
|
||||||
|
default_type = 0,
|
||||||
|
no_clear_stream = 1,
|
||||||
|
dump_mode = 2,
|
||||||
|
export_headers = 4,
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* type can be a superposition from ExportType values
|
||||||
|
*/
|
||||||
|
int type;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Export()
|
||||||
|
{
|
||||||
|
type = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
Export(const Export & field_type)
|
||||||
|
{
|
||||||
|
type = field_type.type;
|
||||||
|
}
|
||||||
|
|
||||||
|
Export(ExportType type)
|
||||||
|
{
|
||||||
|
this->type = static_cast<int>(type);
|
||||||
|
}
|
||||||
|
|
||||||
|
Export(int type)
|
||||||
|
{
|
||||||
|
this->type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
Export & operator=(const Export & field_type)
|
||||||
|
{
|
||||||
|
type = field_type.type;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
Export & operator=(ExportType type)
|
||||||
|
{
|
||||||
|
this->type = static_cast<int>(type);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
Export & operator=(int type)
|
||||||
|
{
|
||||||
|
this->type = type;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_flag_set(int flag_mask) const
|
||||||
|
{
|
||||||
|
return (type & flag_mask) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_no_clear_stream() const
|
||||||
|
{
|
||||||
|
return is_flag_set(no_clear_stream);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_dump_mode() const
|
||||||
|
{
|
||||||
|
return is_flag_set(dump_mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_export_headers() const
|
||||||
|
{
|
||||||
|
return is_flag_set(export_headers);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2018-2021, Tomasz Sowa
|
* Copyright (c) 2018-2023, Tomasz Sowa
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -67,8 +67,7 @@ FlatExpression * FlatConnector::get_expression()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void FlatConnector::to_text(pt::TextStream & stream, Model & model, Export exp)
|
||||||
void FlatConnector::to_text(pt::TextStream & stream, Model & model)
|
|
||||||
{
|
{
|
||||||
allocate_default_expression_if_needed();
|
allocate_default_expression_if_needed();
|
||||||
|
|
||||||
|
@ -82,8 +81,6 @@ void FlatConnector::to_text(pt::TextStream & stream, Model & model)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void FlatConnector::deallocate_expression()
|
void FlatConnector::deallocate_expression()
|
||||||
{
|
{
|
||||||
if( expression_allocated )
|
if( expression_allocated )
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2018-2021, Tomasz Sowa
|
* Copyright (c) 2018-2023, Tomasz Sowa
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -36,6 +36,7 @@
|
||||||
#define headerfile_morm_src_flatconnector
|
#define headerfile_morm_src_flatconnector
|
||||||
|
|
||||||
#include "textstream/textstream.h"
|
#include "textstream/textstream.h"
|
||||||
|
#include "export.h"
|
||||||
|
|
||||||
|
|
||||||
namespace morm
|
namespace morm
|
||||||
|
@ -51,7 +52,7 @@ public:
|
||||||
FlatConnector();
|
FlatConnector();
|
||||||
virtual ~FlatConnector();
|
virtual ~FlatConnector();
|
||||||
|
|
||||||
virtual void to_text(pt::TextStream & stream, Model & model);
|
virtual void to_text(pt::TextStream & stream, Model & model, Export exp);
|
||||||
virtual void set_expression(FlatExpression & expression);
|
virtual void set_expression(FlatExpression & expression);
|
||||||
virtual FlatExpression * get_expression();
|
virtual FlatExpression * get_expression();
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,17 @@
|
||||||
namespace morm
|
namespace morm
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
FlatExpression::FlatExpression()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FlatExpression::~FlatExpression()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool FlatExpression::should_field_model_be_generated_as_null(bool has_model_primary_key, const FT & field_type)
|
bool FlatExpression::should_field_model_be_generated_as_null(bool has_model_primary_key, const FT & field_type)
|
||||||
{
|
{
|
||||||
return !has_model_primary_key && field_type.is_serialize_to_null_if_null();
|
return !has_model_primary_key && field_type.is_serialize_to_null_if_null();
|
||||||
|
|
|
@ -45,6 +45,9 @@ class FlatExpression : public BaseExpression
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
FlatExpression();
|
||||||
|
virtual ~FlatExpression();
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
|
|
@ -347,10 +347,9 @@ bool Model::get_raw_value(const wchar_t * db_field_name, const wchar_t * flat_fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void Model::to_text(pt::TextStream & stream, ModelData * model_data, Export exp)
|
||||||
void Model::to_text(pt::TextStream & stream, ModelData * model_data, bool clear_stream, bool dump_mode)
|
|
||||||
{
|
{
|
||||||
if( clear_stream )
|
if( !exp.is_no_clear_stream() )
|
||||||
{
|
{
|
||||||
stream.clear();
|
stream.clear();
|
||||||
}
|
}
|
||||||
|
@ -359,7 +358,7 @@ void Model::to_text(pt::TextStream & stream, ModelData * model_data, bool clear_
|
||||||
model_env = &model_env_local;
|
model_env = &model_env_local;
|
||||||
model_env->has_primary_key_set = has_primary_key_set;
|
model_env->has_primary_key_set = has_primary_key_set;
|
||||||
model_env->model_work_mode = MORM_MODEL_WORK_MODE_GENERATING_FLAT_STRING;
|
model_env->model_work_mode = MORM_MODEL_WORK_MODE_GENERATING_FLAT_STRING;
|
||||||
model_env->dump_mode = dump_mode;
|
model_env->dump_mode = exp.is_dump_mode();
|
||||||
model_env->model_data = model_data;
|
model_env->model_data = model_data;
|
||||||
model_env->model = this;
|
model_env->model = this;
|
||||||
|
|
||||||
|
@ -372,7 +371,7 @@ void Model::to_text(pt::TextStream & stream, ModelData * model_data, bool clear_
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// table(); at the moment flat strings (json/space) do not need a table name
|
// table(); at the moment flat strings (json/space) do not need a table name
|
||||||
flat_connector->to_text(stream, *this);
|
flat_connector->to_text(stream, *this, exp);
|
||||||
}
|
}
|
||||||
catch(...)
|
catch(...)
|
||||||
{
|
{
|
||||||
|
@ -386,6 +385,32 @@ void Model::to_text(pt::TextStream & stream, ModelData * model_data, bool clear_
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Model::to_text(pt::TextStream & stream, ModelData & model_data, Export exp)
|
||||||
|
{
|
||||||
|
to_text(stream, &model_data, exp);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Model::to_text(pt::TextStream & stream, Export exp)
|
||||||
|
{
|
||||||
|
to_text(stream, nullptr, exp);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Model::to_text(pt::TextStream & stream, ModelData * model_data, bool clear_stream, bool dump_mode)
|
||||||
|
{
|
||||||
|
Export exp = Export::default_type;
|
||||||
|
|
||||||
|
if( !clear_stream )
|
||||||
|
exp = exp.type | Export::no_clear_stream;
|
||||||
|
|
||||||
|
if( dump_mode )
|
||||||
|
exp = exp.type | Export::dump_mode;
|
||||||
|
|
||||||
|
to_text(stream, model_data, exp);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Model::to_text(pt::TextStream & stream, ModelData & model_data, bool clear_stream, bool dump_mode)
|
void Model::to_text(pt::TextStream & stream, ModelData & model_data, bool clear_stream, bool dump_mode)
|
||||||
{
|
{
|
||||||
to_text(stream, &model_data, clear_stream, dump_mode);
|
to_text(stream, &model_data, clear_stream, dump_mode);
|
||||||
|
@ -399,6 +424,7 @@ void Model::to_text(pt::TextStream & stream, bool clear_stream, bool dump_mode)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Model::to_text(std::string & str, ModelData * model_data, bool clear_string, bool dump_mode)
|
void Model::to_text(std::string & str, ModelData * model_data, bool clear_string, bool dump_mode)
|
||||||
{
|
{
|
||||||
if( model_connector )
|
if( model_connector )
|
||||||
|
|
10
src/model.h
10
src/model.h
|
@ -177,9 +177,13 @@ public:
|
||||||
virtual void get_table_name(std::wstring & str, bool with_schema_name = true, ModelData * model_data = nullptr, bool clear_string = true);
|
virtual void get_table_name(std::wstring & str, bool with_schema_name = true, ModelData * model_data = nullptr, bool clear_string = true);
|
||||||
virtual void get_table_name(std::string & str, bool with_schema_name = true, ModelData * model_data = nullptr, bool clear_string = true);
|
virtual void get_table_name(std::string & str, bool with_schema_name = true, ModelData * model_data = nullptr, bool clear_string = true);
|
||||||
|
|
||||||
virtual void to_text(pt::TextStream & stream, ModelData * model_data, bool clear_stream = true, bool dump_mode = false);
|
virtual void to_text(pt::TextStream & stream, ModelData * model_data, Export exp = Export::default_type);
|
||||||
virtual void to_text(pt::TextStream & stream, ModelData & model_data, bool clear_stream = true, bool dump_mode = false);
|
virtual void to_text(pt::TextStream & stream, ModelData & model_data, Export exp = Export::default_type);
|
||||||
virtual void to_text(pt::TextStream & stream, bool clear_stream = true, bool dump_mode = false);
|
virtual void to_text(pt::TextStream & stream, Export exp = Export::default_type);
|
||||||
|
|
||||||
|
virtual void to_text(pt::TextStream & stream, ModelData * model_data, bool clear_stream, bool dump_mode);
|
||||||
|
virtual void to_text(pt::TextStream & stream, ModelData & model_data, bool clear_stream, bool dump_mode);
|
||||||
|
virtual void to_text(pt::TextStream & stream, bool clear_stream, bool dump_mode);
|
||||||
|
|
||||||
virtual void to_text(std::string & str, ModelData * model_data, bool clear_string = true, bool dump_mode = false);
|
virtual void to_text(std::string & str, ModelData * model_data, bool clear_string = true, bool dump_mode = false);
|
||||||
virtual void to_text(std::string & str, ModelData & model_data, bool clear_string = true, bool dump_mode = false);
|
virtual void to_text(std::string & str, ModelData & model_data, bool clear_string = true, bool dump_mode = false);
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2018-2022, Tomasz Sowa
|
* Copyright (c) 2018-2023, Tomasz Sowa
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -102,6 +102,7 @@
|
||||||
#define MORM_OUTPUT_TYPE_WHERE_LIKE 27
|
#define MORM_OUTPUT_TYPE_WHERE_LIKE 27
|
||||||
#define MORM_OUTPUT_TYPE_WHERE_ILIKE 28
|
#define MORM_OUTPUT_TYPE_WHERE_ILIKE 28
|
||||||
|
|
||||||
|
#define MORM_OUTPUT_TYPE_FIELDS_RECURSIVE 29
|
||||||
|
|
||||||
#define MORM_CONJUNCTION_AND 1
|
#define MORM_CONJUNCTION_AND 1
|
||||||
#define MORM_CONJUNCTION_OR 2
|
#define MORM_CONJUNCTION_OR 2
|
||||||
|
|
|
@ -100,7 +100,7 @@ void XMLConnector::allocate_default_expression()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void XMLConnector::to_text(pt::TextStream & stream, Model & model)
|
void XMLConnector::to_text(pt::TextStream & stream, Model & model, Export exp)
|
||||||
{
|
{
|
||||||
allocate_default_expression_if_needed();
|
allocate_default_expression_if_needed();
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ public:
|
||||||
virtual void set_root_element(const std::wstring & root_name);
|
virtual void set_root_element(const std::wstring & root_name);
|
||||||
virtual std::wstring & get_root_element();
|
virtual std::wstring & get_root_element();
|
||||||
|
|
||||||
void to_text(pt::TextStream & stream, Model & model);
|
void to_text(pt::TextStream & stream, Model & model, Export exp);
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
Loading…
Reference in New Issue