# Collection of code snippets by Arne Vajhøj 
# (from articles on eksperten.dk / vajhoej.dk written sometime between 2004 and now) 
from java.io import PrintWriter
from java.util import ArrayList

from com.google.gson import GsonBuilder

from dk.vajhoej.isam.map import PyIsamMap

import AutoMap
import OrdersISAM
import OrderLinesISAM
import Orders
import OrderLines

# read from index-sequential file
oisqmp = PyIsamMap.createIsamMapRMS("orders.isq", OrdersISAM)
olisqmp = PyIsamMap.createIsamMapRMS("orderlines.isq", OrderLinesISAM)
isamdata = ArrayList()
for oisam in oisqmp.values():
    for olisam in olisqmp.key(1).isInt(oisam.id).values():
        oisam.orderLinesT.add(olisam)
    isamdata.add(oisam)
# convert
mo = AutoMap(OrdersISAM, Orders, True)
mol = AutoMap(OrderLinesISAM, OrderLines, True)
data = ArrayList()
for oisam in isamdata:
    o = Orders()
    mo.convert(oisam, o)
    for olisam in oisam.orderLinesT:
        ol = OrderLines()
        mol.convert(olisam, ol)
        o.orderLines.add(ol)
    data.add(o)
# write to JSON
gson =  GsonBuilder().setPrettyPrinting().create()
pw = PrintWriter('orders4.json')
pw.print(gson.toJson(data))
pw.close()
#
print('isq2json done')
