PageSourceSearch

https://impactfm.fr/player/js/lib/data/dao.js

js impactfm.fr collected 2026-10-02 11:33:27 UTC 3,330 bytes, 91 lines download raw bytes

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.