// stop here...
if (contractsCP.contains("There is no data for download."))
return true;
PersistenceManager pm = PMF.get().getPersistenceManager();
Contract c = pm.getObjectById(Contract.class, Contract.generateKeyFromID(contractid));
Integer limit = c.getLastLineInsertedCSV();
pm.close();
if (limit == null)
limit = 0;
String[] entries = contractsCP.split("\n");
if (entries.length > 2)
print("Adding " + (entries.length - 1) + "entries, starting from " + limit + ", for contract " + contractid);
ArrayList<ContractClosingPriceCSV> prices = new ArrayList<ContractClosingPriceCSV>();
for (int i = limit; i < entries.length; i++) {
if (entries[i].startsWith("Date"))
continue;
ContractClosingPriceCSV cp = parseContractClosingPriceCSV(entries[i], contractid);
prices.add(cp);
// Every 50 added prices, persist, update contract, and flush...
if (i % 50 == 0) {
pm = PMF.get().getPersistenceManager();
pm.makePersistentAll(prices);
Contract con = pm.getObjectById(Contract.class, Contract.generateKeyFromID(contractid));
con.setLastLineInsertedCSV(i);
pm.close();
prices = new ArrayList<ContractClosingPriceCSV>();
}
}
pm = PMF.get().getPersistenceManager();
pm.makePersistentAll(prices);
Contract con = pm.getObjectById(Contract.class, Contract.generateKeyFromID(contractid));
con.setLastLineInsertedCSV(entries.length - 1);
pm.close();
return true;
}