1//============================================================================== 2// fwCore.loadModule('system/date') ; 3// fwCore.loadModule('system/list') ; 4//============================================================================== 5class TDao { 6 constructor(aId) { 7 this.id = aId ; 8 } 9 10 fromQuery(aResultRow) { 11 TDao.fillPrimitiveTypeFields(this, aResultRow) ; 12 } 13 14 static fillPrimitiveTypeFields(aObject, aResultRow) { 15 for(var i in aObject) { 16 if ((i.charAt(0) != '_') && (i.charAt(0) != '#')) { 17 if (aResultRow[i] !== undefined) { 18 switch (typeof aObject[i]) { 19 case 'number' : 20 if (aResultRow[i] !== null) { 21 aObject[i] = Number(aResultRow[i]) ; 22 } else { 23 aObject[i] = null ; 24 } 25 break ; 26 case 'bigint' : 27 if (aResultRow[i] !== null) { 28 aObject[i] = BigInt(aResultRow[i]) ; 29 } else { 30 aObject[i] = null ; 31 } 32 break ; 33 case 'string' : 34 aObject[i] = String(aResultRow[i]) ; 35 break ; 36 case 'boolean' : 37 aObject[i] = Boolean(aResultRow[i]) ; 38 break ; 39 case 'object' : 40 if (aObject[i] instanceof Date) { 41 aObject[i].setValue(aResultRow[i]) ; 42 } else { 43 aObject[i] = aResultRow[i] ; 44 } 45 break ; 46 } 47 } 48 } 49 } 50 } 51} 52//============================================================================== 53class TDaoList { 54 constructor(aList) { 55 this.list = aList ; 56 } 57 58 get itemClass() { 59 if (!this.list) { 60 return null ; 61 } 62 63 return this.list.itemClass ; 64 } 65 66 fromQuery(aResultSet, aSync = true, aOnDeleteItem = false, aOnFillItem = false) { 67 if (aSync) { 68 this.list.beginSync() ; 69 } 70 71 for(var i in aResultSet) { 72 var aResultRow = aResultSet[i] ; 73 var vItem = this.list.addItem(aResultRow.id) ; 74 vItem.fromQuery(aResultRow) ; 75 76 if (aOnFillItem) { 77 aOnFillItem(vItem, aResultRow) ; 78 } 79 } 80 81 if (aSync) { 82 this.list.endSync(aOnDeleteItem) ; 83 } 84 } 85 86 static fillListFromQuery(aList, aResultSet, aSync = true, aOnDeleteItem = false , aOnFillItem = false) { 87 var vDaoList = new TDaoList(aList) ; 88 vDaoList.fromQuery(aResultSet, aSync, aOnDeleteItem, aOnFillItem) ; 89 } 90} 91//==============================================================================
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.