[simple-obj] deprecate this module

* it's only a wrapper for make-record-type
* use record-types directly in modules
This commit is contained in:
Christopher Lam 2019-07-28 20:01:38 +08:00
parent 76ba133174
commit fbb6a95600
4 changed files with 160 additions and 143 deletions

View File

@ -39,6 +39,14 @@
(define GNC-RECEIVABLE-TYPE 11) (define GNC-RECEIVABLE-TYPE 11)
(define GNC-PAYABLE-TYPE 12) (define GNC-PAYABLE-TYPE 12)
(define (record-fields->list record)
(let ((type (record-type-descriptor record)))
(map
(lambda (field) ((record-accessor type field) record))
(record-type-fields type))))
(define (list->record-fields lst type)
(apply (record-constructor type) lst))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; qif-import:load-map-prefs ;; qif-import:load-map-prefs
@ -180,7 +188,7 @@
(let ((table '())) (let ((table '()))
(hash-fold (hash-fold
(lambda (key value p) (lambda (key value p)
(set! table (cons (cons key (simple-obj-to-list value)) table)) (set! table (cons (cons key (record-fields->list value)) table))
#f) #f hashtab) #f) #f hashtab)
(write table))) (write table)))
@ -192,7 +200,7 @@
(for-each (for-each
(lambda (entry) (lambda (entry)
(let ((key (car entry)) (let ((key (car entry))
(value (simple-obj-from-list (cdr entry) <qif-map-entry>))) (value (list->record-fields (cdr entry) <qif-map-entry>)))
;; If the account separator has changed, fix the account name. ;; If the account separator has changed, fix the account name.
(if changed-sep? (if changed-sep?

View File

@ -24,6 +24,9 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define (construct class)
(apply (record-constructor class)
(map (const #f) (record-type-fields class))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; qif-file class ;; qif-file class
@ -34,7 +37,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define <qif-file> (define <qif-file>
(make-simple-class (make-record-type
'qif-file 'qif-file
'(path ;; where file was loaded '(path ;; where file was loaded
y2k-threshold y2k-threshold
@ -47,43 +50,43 @@
(record-predicate <qif-file>)) (record-predicate <qif-file>))
(define qif-file:path (define qif-file:path
(simple-obj-getter <qif-file> 'path)) (record-accessor <qif-file> 'path))
(define qif-file:set-path! (define qif-file:set-path!
(simple-obj-setter <qif-file> 'path)) (record-modifier <qif-file> 'path))
(define qif-file:y2k-threshold (define qif-file:y2k-threshold
(simple-obj-getter <qif-file> 'y2k-threshold)) (record-accessor <qif-file> 'y2k-threshold))
(define qif-file:set-y2k-threshold! (define qif-file:set-y2k-threshold!
(simple-obj-setter <qif-file> 'y2k-threshold)) (record-modifier <qif-file> 'y2k-threshold))
(define qif-file:cats (define qif-file:cats
(simple-obj-getter <qif-file> 'cats)) (record-accessor <qif-file> 'cats))
(define qif-file:set-cats! (define qif-file:set-cats!
(simple-obj-setter <qif-file> 'cats)) (record-modifier <qif-file> 'cats))
(define qif-file:classes (define qif-file:classes
(simple-obj-getter <qif-file> 'classes)) (record-accessor <qif-file> 'classes))
(define qif-file:set-classes! (define qif-file:set-classes!
(simple-obj-setter <qif-file> 'classes)) (record-modifier <qif-file> 'classes))
(define qif-file:xtns (define qif-file:xtns
(simple-obj-getter <qif-file> 'xtns)) (record-accessor <qif-file> 'xtns))
(define qif-file:set-xtns! (define qif-file:set-xtns!
(simple-obj-setter <qif-file> 'xtns)) (record-modifier <qif-file> 'xtns))
(define qif-file:accounts (define qif-file:accounts
(simple-obj-getter <qif-file> 'accounts)) (record-accessor <qif-file> 'accounts))
(define qif-file:set-accounts! (define qif-file:set-accounts!
(simple-obj-setter <qif-file> 'accounts)) (record-modifier <qif-file> 'accounts))
(define (make-qif-file) (define (make-qif-file)
(let ((self (make-simple-obj <qif-file>))) (let ((self (construct <qif-file>)))
(qif-file:set-y2k-threshold! self 50) (qif-file:set-y2k-threshold! self 50)
(qif-file:set-xtns! self '()) (qif-file:set-xtns! self '())
(qif-file:set-accounts! self '()) (qif-file:set-accounts! self '())
@ -97,16 +100,16 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define <qif-split> (define <qif-split>
(make-simple-class (make-record-type
'qif-split 'qif-split
'(category class memo amount category-is-account? matching-cleared mark '(category class memo amount category-is-account? matching-cleared mark
miscx-category miscx-is-account? miscx-class))) miscx-category miscx-is-account? miscx-class)))
(define qif-split:category (define qif-split:category
(simple-obj-getter <qif-split> 'category)) (record-accessor <qif-split> 'category))
(define qif-split:set-category-private! (define qif-split:set-category-private!
(simple-obj-setter <qif-split> 'category)) (record-modifier <qif-split> 'category))
(define (qif-split:set-category! self value) (define (qif-split:set-category! self value)
(let* ((cat-info (let* ((cat-info
@ -125,61 +128,61 @@
(qif-split:set-miscx-class! self miscx-class))) (qif-split:set-miscx-class! self miscx-class)))
(define qif-split:class (define qif-split:class
(simple-obj-getter <qif-split> 'class)) (record-accessor <qif-split> 'class))
(define qif-split:set-class! (define qif-split:set-class!
(simple-obj-setter <qif-split> 'class)) (record-modifier <qif-split> 'class))
(define qif-split:memo (define qif-split:memo
(simple-obj-getter <qif-split> 'memo)) (record-accessor <qif-split> 'memo))
(define qif-split:set-memo! (define qif-split:set-memo!
(simple-obj-setter <qif-split> 'memo)) (record-modifier <qif-split> 'memo))
(define qif-split:amount (define qif-split:amount
(simple-obj-getter <qif-split> 'amount)) (record-accessor <qif-split> 'amount))
(define qif-split:set-amount! (define qif-split:set-amount!
(simple-obj-setter <qif-split> 'amount)) (record-modifier <qif-split> 'amount))
(define qif-split:mark (define qif-split:mark
(simple-obj-getter <qif-split> 'mark)) (record-accessor <qif-split> 'mark))
(define qif-split:set-mark! (define qif-split:set-mark!
(simple-obj-setter <qif-split> 'mark)) (record-modifier <qif-split> 'mark))
(define qif-split:matching-cleared (define qif-split:matching-cleared
(simple-obj-getter <qif-split> 'matching-cleared)) (record-accessor <qif-split> 'matching-cleared))
(define qif-split:set-matching-cleared! (define qif-split:set-matching-cleared!
(simple-obj-setter <qif-split> 'matching-cleared)) (record-modifier <qif-split> 'matching-cleared))
(define qif-split:category-is-account? (define qif-split:category-is-account?
(simple-obj-getter <qif-split> 'category-is-account?)) (record-accessor <qif-split> 'category-is-account?))
(define qif-split:set-category-is-account?! (define qif-split:set-category-is-account?!
(simple-obj-setter <qif-split> 'category-is-account?)) (record-modifier <qif-split> 'category-is-account?))
(define qif-split:miscx-is-account? (define qif-split:miscx-is-account?
(simple-obj-getter <qif-split> 'miscx-is-account?)) (record-accessor <qif-split> 'miscx-is-account?))
(define qif-split:set-miscx-is-account?! (define qif-split:set-miscx-is-account?!
(simple-obj-setter <qif-split> 'miscx-is-account?)) (record-modifier <qif-split> 'miscx-is-account?))
(define qif-split:miscx-category (define qif-split:miscx-category
(simple-obj-getter <qif-split> 'miscx-category)) (record-accessor <qif-split> 'miscx-category))
(define qif-split:set-miscx-category! (define qif-split:set-miscx-category!
(simple-obj-setter <qif-split> 'miscx-category)) (record-modifier <qif-split> 'miscx-category))
(define qif-split:miscx-class (define qif-split:miscx-class
(simple-obj-getter <qif-split> 'miscx-class)) (record-accessor <qif-split> 'miscx-class))
(define qif-split:set-miscx-class! (define qif-split:set-miscx-class!
(simple-obj-setter <qif-split> 'miscx-class)) (record-modifier <qif-split> 'miscx-class))
(define (make-qif-split) (define (make-qif-split)
(let ((self (make-simple-obj <qif-split>))) (let ((self (construct <qif-split>)))
(qif-split:set-category! self "") (qif-split:set-category! self "")
self)) self))
@ -200,7 +203,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define <qif-xtn> (define <qif-xtn>
(make-simple-class (make-record-type
'qif-xtn 'qif-xtn
'(date payee address number action cleared '(date payee address number action cleared
from-acct share-price num-shares security-name commission from-acct share-price num-shares security-name commission
@ -210,97 +213,97 @@
(record-predicate <qif-xtn>)) (record-predicate <qif-xtn>))
(define qif-xtn:date (define qif-xtn:date
(simple-obj-getter <qif-xtn> 'date)) (record-accessor <qif-xtn> 'date))
(define qif-xtn:set-date! (define qif-xtn:set-date!
(simple-obj-setter <qif-xtn> 'date)) (record-modifier <qif-xtn> 'date))
(define qif-xtn:payee (define qif-xtn:payee
(simple-obj-getter <qif-xtn> 'payee)) (record-accessor <qif-xtn> 'payee))
(define qif-xtn:set-payee! (define qif-xtn:set-payee!
(simple-obj-setter <qif-xtn> 'payee)) (record-modifier <qif-xtn> 'payee))
(define qif-xtn:address (define qif-xtn:address
(simple-obj-getter <qif-xtn> 'address)) (record-accessor <qif-xtn> 'address))
(define qif-xtn:set-address! (define qif-xtn:set-address!
(simple-obj-setter <qif-xtn> 'address)) (record-modifier <qif-xtn> 'address))
(define qif-xtn:number (define qif-xtn:number
(simple-obj-getter <qif-xtn> 'number)) (record-accessor <qif-xtn> 'number))
(define qif-xtn:set-number! (define qif-xtn:set-number!
(simple-obj-setter <qif-xtn> 'number)) (record-modifier <qif-xtn> 'number))
(define qif-xtn:action (define qif-xtn:action
(simple-obj-getter <qif-xtn> 'action)) (record-accessor <qif-xtn> 'action))
(define qif-xtn:set-action! (define qif-xtn:set-action!
(simple-obj-setter <qif-xtn> 'action)) (record-modifier <qif-xtn> 'action))
(define qif-xtn:cleared (define qif-xtn:cleared
(simple-obj-getter <qif-xtn> 'cleared)) (record-accessor <qif-xtn> 'cleared))
(define qif-xtn:set-cleared! (define qif-xtn:set-cleared!
(simple-obj-setter <qif-xtn> 'cleared)) (record-modifier <qif-xtn> 'cleared))
(define qif-xtn:from-acct (define qif-xtn:from-acct
(simple-obj-getter <qif-xtn> 'from-acct)) (record-accessor <qif-xtn> 'from-acct))
(define qif-xtn:set-from-acct! (define qif-xtn:set-from-acct!
(simple-obj-setter <qif-xtn> 'from-acct)) (record-modifier <qif-xtn> 'from-acct))
(define qif-xtn:share-price (define qif-xtn:share-price
(simple-obj-getter <qif-xtn> 'share-price)) (record-accessor <qif-xtn> 'share-price))
(define qif-xtn:set-share-price! (define qif-xtn:set-share-price!
(simple-obj-setter <qif-xtn> 'share-price)) (record-modifier <qif-xtn> 'share-price))
(define qif-xtn:num-shares (define qif-xtn:num-shares
(simple-obj-getter <qif-xtn> 'num-shares)) (record-accessor <qif-xtn> 'num-shares))
(define qif-xtn:set-num-shares! (define qif-xtn:set-num-shares!
(simple-obj-setter <qif-xtn> 'num-shares)) (record-modifier <qif-xtn> 'num-shares))
(define qif-xtn:security-name (define qif-xtn:security-name
(simple-obj-getter <qif-xtn> 'security-name)) (record-accessor <qif-xtn> 'security-name))
(define qif-xtn:set-security-name! (define qif-xtn:set-security-name!
(simple-obj-setter <qif-xtn> 'security-name)) (record-modifier <qif-xtn> 'security-name))
(define qif-xtn:commission (define qif-xtn:commission
(simple-obj-getter <qif-xtn> 'commission)) (record-accessor <qif-xtn> 'commission))
(define qif-xtn:set-commission! (define qif-xtn:set-commission!
(simple-obj-setter <qif-xtn> 'commission)) (record-modifier <qif-xtn> 'commission))
(define qif-xtn:default-split (define qif-xtn:default-split
(simple-obj-getter <qif-xtn> 'default-split)) (record-accessor <qif-xtn> 'default-split))
(define qif-xtn:set-default-split! (define qif-xtn:set-default-split!
(simple-obj-setter <qif-xtn> 'default-split)) (record-modifier <qif-xtn> 'default-split))
(define qif-xtn:splits (define qif-xtn:splits
(simple-obj-getter <qif-xtn> 'splits)) (record-accessor <qif-xtn> 'splits))
(define qif-xtn:set-splits! (define qif-xtn:set-splits!
(simple-obj-setter <qif-xtn> 'splits)) (record-modifier <qif-xtn> 'splits))
(define qif-xtn:mark (define qif-xtn:mark
(simple-obj-getter <qif-xtn> 'mark)) (record-accessor <qif-xtn> 'mark))
(define qif-xtn:set-mark! (define qif-xtn:set-mark!
(simple-obj-setter <qif-xtn> 'mark)) (record-modifier <qif-xtn> 'mark))
(define (make-qif-xtn) (define (make-qif-xtn)
(let ((self (make-simple-obj <qif-xtn>))) (let ((self (construct <qif-xtn>)))
(qif-xtn:set-mark! self #f) (qif-xtn:set-mark! self #f)
(qif-xtn:set-splits! self '()) (qif-xtn:set-splits! self '())
self)) self))
(define (qif-xtn:print self) (define (qif-xtn:print self)
(simple-obj-print self)) (write self))
(define (qif-xtn:split-amounts self) (define (qif-xtn:split-amounts self)
@ -340,42 +343,42 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define <qif-acct> (define <qif-acct>
(make-simple-class (make-record-type
'qif-acct 'qif-acct
'(name type description limit budget))) '(name type description limit budget)))
(define qif-acct:name (define qif-acct:name
(simple-obj-getter <qif-acct> 'name)) (record-accessor <qif-acct> 'name))
(define qif-acct:set-name! (define qif-acct:set-name!
(simple-obj-setter <qif-acct> 'name)) (record-modifier <qif-acct> 'name))
(define qif-acct:type (define qif-acct:type
(simple-obj-getter <qif-acct> 'type)) (record-accessor <qif-acct> 'type))
(define qif-acct:set-type! (define qif-acct:set-type!
(simple-obj-setter <qif-acct> 'type)) (record-modifier <qif-acct> 'type))
(define qif-acct:description (define qif-acct:description
(simple-obj-getter <qif-acct> 'description)) (record-accessor <qif-acct> 'description))
(define qif-acct:set-description! (define qif-acct:set-description!
(simple-obj-setter <qif-acct> 'description)) (record-modifier <qif-acct> 'description))
(define qif-acct:limit (define qif-acct:limit
(simple-obj-getter <qif-acct> 'limit)) (record-accessor <qif-acct> 'limit))
(define qif-acct:set-limit! (define qif-acct:set-limit!
(simple-obj-setter <qif-acct> 'limit)) (record-modifier <qif-acct> 'limit))
(define qif-acct:budget (define qif-acct:budget
(simple-obj-getter <qif-acct> 'budget)) (record-accessor <qif-acct> 'budget))
(define qif-acct:set-budget! (define qif-acct:set-budget!
(simple-obj-setter <qif-acct> 'budget)) (record-modifier <qif-acct> 'budget))
(define (make-qif-acct) (define (make-qif-acct)
(let ((retval (make-simple-obj <qif-acct>))) (let ((retval (construct <qif-acct>)))
(qif-acct:set-type! retval "Bank") (qif-acct:set-type! retval "Bank")
(qif-acct:set-name! retval "Default Account") (qif-acct:set-name! retval "Default Account")
retval)) retval))
@ -384,7 +387,7 @@
(record-predicate <qif-acct>)) (record-predicate <qif-acct>))
(define (qif-acct:print self) (define (qif-acct:print self)
(simple-obj-print self)) (write self))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; <qif-class> ;; <qif-class>
@ -393,27 +396,27 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define <qif-class> (define <qif-class>
(make-simple-class (make-record-type
'qif-class 'qif-class
'(name description))) '(name description)))
(define qif-class:name (define qif-class:name
(simple-obj-getter <qif-class> 'name)) (record-accessor <qif-class> 'name))
(define qif-class:set-name! (define qif-class:set-name!
(simple-obj-setter <qif-class> 'name)) (record-modifier <qif-class> 'name))
(define qif-class:description (define qif-class:description
(simple-obj-getter <qif-class> 'description)) (record-accessor <qif-class> 'description))
(define qif-class:set-description! (define qif-class:set-description!
(simple-obj-setter <qif-class> 'description)) (record-modifier <qif-class> 'description))
(define (qif-class:print self) (define (qif-class:print self)
(simple-obj-print self)) (write self))
(define (make-qif-class) (define (make-qif-class)
(make-simple-obj <qif-class>)) (construct <qif-class>))
(define qif-class? (define qif-class?
(record-predicate <qif-class>)) (record-predicate <qif-class>))
@ -431,60 +434,60 @@
(define <qif-cat> (define <qif-cat>
(make-simple-class (make-record-type
'qif-cat 'qif-cat
'(name description taxable expense-cat income-cat tax-class budget-amt))) '(name description taxable expense-cat income-cat tax-class budget-amt)))
(define qif-cat:name (define qif-cat:name
(simple-obj-getter <qif-cat> 'name)) (record-accessor <qif-cat> 'name))
(define qif-cat:set-name! (define qif-cat:set-name!
(simple-obj-setter <qif-cat> 'name)) (record-modifier <qif-cat> 'name))
(define qif-cat:description (define qif-cat:description
(simple-obj-getter <qif-cat> 'description)) (record-accessor <qif-cat> 'description))
(define qif-cat:set-description! (define qif-cat:set-description!
(simple-obj-setter <qif-cat> 'description)) (record-modifier <qif-cat> 'description))
(define qif-cat:taxable (define qif-cat:taxable
(simple-obj-getter <qif-cat> 'taxable)) (record-accessor <qif-cat> 'taxable))
(define qif-cat:set-taxable! (define qif-cat:set-taxable!
(simple-obj-setter <qif-cat> 'taxable)) (record-modifier <qif-cat> 'taxable))
(define qif-cat:expense-cat (define qif-cat:expense-cat
(simple-obj-getter <qif-cat> 'expense-cat)) (record-accessor <qif-cat> 'expense-cat))
(define qif-cat:set-expense-cat! (define qif-cat:set-expense-cat!
(simple-obj-setter <qif-cat> 'expense-cat)) (record-modifier <qif-cat> 'expense-cat))
(define qif-cat:income-cat (define qif-cat:income-cat
(simple-obj-getter <qif-cat> 'income-cat)) (record-accessor <qif-cat> 'income-cat))
(define qif-cat:set-income-cat! (define qif-cat:set-income-cat!
(simple-obj-setter <qif-cat> 'income-cat)) (record-modifier <qif-cat> 'income-cat))
(define qif-cat:tax-class (define qif-cat:tax-class
(simple-obj-getter <qif-cat> 'tax-class)) (record-accessor <qif-cat> 'tax-class))
(define qif-cat:set-tax-class! (define qif-cat:set-tax-class!
(simple-obj-setter <qif-cat> 'tax-class)) (record-modifier <qif-cat> 'tax-class))
(define qif-cat:budget-amt (define qif-cat:budget-amt
(simple-obj-getter <qif-cat> 'budget-amt)) (record-accessor <qif-cat> 'budget-amt))
(define qif-cat:set-budget-amt! (define qif-cat:set-budget-amt!
(simple-obj-setter <qif-cat> 'budget-amt)) (record-modifier <qif-cat> 'budget-amt))
(define (make-qif-cat) (define (make-qif-cat)
(make-simple-obj <qif-cat>)) (construct <qif-cat>))
(define qif-cat? (define qif-cat?
(record-predicate <qif-cat>)) (record-predicate <qif-cat>))
(define (qif-cat:print self) (define (qif-cat:print self)
(simple-obj-print self)) (write self))
(define (qif-file:add-xtn! self xtn) (define (qif-file:add-xtn! self xtn)
(qif-file:set-xtns! self (qif-file:set-xtns! self
@ -535,7 +538,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define <qif-map-entry> (define <qif-map-entry>
(make-simple-class (make-record-type
'qif-map-entry 'qif-map-entry
'(qif-name ;; set while parsing file '(qif-name ;; set while parsing file
allowed-types ;; set while parsing file allowed-types ;; set while parsing file
@ -545,7 +548,7 @@
display?))) ;; set when non-zero transactions display?))) ;; set when non-zero transactions
(define (make-qif-map-entry) (define (make-qif-map-entry)
(make-simple-obj <qif-map-entry>)) (construct <qif-map-entry>))
(define (qif-map-entry:clone orig) (define (qif-map-entry:clone orig)
(let ((me (make-qif-map-entry))) (let ((me (make-qif-map-entry)))
@ -586,40 +589,40 @@
(define qif-map-entry:qif-name (define qif-map-entry:qif-name
(simple-obj-getter <qif-map-entry> 'qif-name)) (record-accessor <qif-map-entry> 'qif-name))
(define qif-map-entry:set-qif-name! (define qif-map-entry:set-qif-name!
(simple-obj-setter <qif-map-entry> 'qif-name)) (record-modifier <qif-map-entry> 'qif-name))
(define qif-map-entry:allowed-types (define qif-map-entry:allowed-types
(simple-obj-getter <qif-map-entry> 'allowed-types)) (record-accessor <qif-map-entry> 'allowed-types))
(define qif-map-entry:set-allowed-types! (define qif-map-entry:set-allowed-types!
(simple-obj-setter <qif-map-entry> 'allowed-types)) (record-modifier <qif-map-entry> 'allowed-types))
(define qif-map-entry:description (define qif-map-entry:description
(simple-obj-getter <qif-map-entry> 'description)) (record-accessor <qif-map-entry> 'description))
(define qif-map-entry:set-description! (define qif-map-entry:set-description!
(simple-obj-setter <qif-map-entry> 'description)) (record-modifier <qif-map-entry> 'description))
(define qif-map-entry:gnc-name (define qif-map-entry:gnc-name
(simple-obj-getter <qif-map-entry> 'gnc-name)) (record-accessor <qif-map-entry> 'gnc-name))
(define qif-map-entry:set-gnc-name! (define qif-map-entry:set-gnc-name!
(simple-obj-setter <qif-map-entry> 'gnc-name)) (record-modifier <qif-map-entry> 'gnc-name))
(define qif-map-entry:new-acct? (define qif-map-entry:new-acct?
(simple-obj-getter <qif-map-entry> 'new-acct?)) (record-accessor <qif-map-entry> 'new-acct?))
(define qif-map-entry:set-new-acct?! (define qif-map-entry:set-new-acct?!
(simple-obj-setter <qif-map-entry> 'new-acct?)) (record-modifier <qif-map-entry> 'new-acct?))
(define qif-map-entry:display? (define qif-map-entry:display?
(simple-obj-getter <qif-map-entry> 'display?)) (record-accessor <qif-map-entry> 'display?))
(define qif-map-entry:set-display?! (define qif-map-entry:set-display?!
(simple-obj-setter <qif-map-entry> 'display?)) (record-modifier <qif-map-entry> 'display?))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -630,51 +633,51 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define <qif-stock-symbol> (define <qif-stock-symbol>
(make-simple-class (make-record-type
'qif-stock-symbol 'qif-stock-symbol
'(name symbol type))) '(name symbol type)))
(define qif-stock-symbol:name (define qif-stock-symbol:name
(simple-obj-getter <qif-stock-symbol> 'name)) (record-accessor <qif-stock-symbol> 'name))
(define qif-stock-symbol:set-name! (define qif-stock-symbol:set-name!
(simple-obj-setter <qif-stock-symbol> 'name)) (record-modifier <qif-stock-symbol> 'name))
(define qif-stock-symbol:symbol (define qif-stock-symbol:symbol
(simple-obj-getter <qif-stock-symbol> 'symbol)) (record-accessor <qif-stock-symbol> 'symbol))
(define qif-stock-symbol:set-symbol! (define qif-stock-symbol:set-symbol!
(simple-obj-setter <qif-stock-symbol> 'symbol)) (record-modifier <qif-stock-symbol> 'symbol))
(define qif-stock-symbol:type (define qif-stock-symbol:type
(simple-obj-getter <qif-stock-symbol> 'type)) (record-accessor <qif-stock-symbol> 'type))
(define qif-stock-symbol:set-type! (define qif-stock-symbol:set-type!
(simple-obj-setter <qif-stock-symbol> 'type)) (record-modifier <qif-stock-symbol> 'type))
(define (qif-stock-symbol:print self) (define (qif-stock-symbol:print self)
(simple-obj-print self)) (write self))
(define (make-qif-stock-symbol) (define (make-qif-stock-symbol)
(let ((retval (make-simple-obj <qif-stock-symbol>))) (let ((retval (construct <qif-stock-symbol>)))
(qif-stock-symbol:set-name! retval "") (qif-stock-symbol:set-name! retval "")
(qif-stock-symbol:set-symbol! retval "") (qif-stock-symbol:set-symbol! retval "")
(qif-stock-symbol:set-type! retval "") (qif-stock-symbol:set-type! retval "")
retval)) retval))
(define <qif-ticker-map> (define <qif-ticker-map>
(make-simple-class (make-record-type
'qif-ticker-map 'qif-ticker-map
'(stocks))) '(stocks)))
(define qif-ticker-map:ticker-map (define qif-ticker-map:ticker-map
(simple-obj-getter <qif-ticker-map> 'stocks)) (record-accessor <qif-ticker-map> 'stocks))
(define qif-ticker-map:set-ticker-map! (define qif-ticker-map:set-ticker-map!
(simple-obj-setter <qif-ticker-map> 'stocks)) (record-modifier <qif-ticker-map> 'stocks))
(define (make-ticker-map) (define (make-ticker-map)
(let ((self (make-simple-obj <qif-ticker-map>))) (let ((self (construct <qif-ticker-map>)))
(qif-ticker-map:set-ticker-map! self '()) (qif-ticker-map:set-ticker-map! self '())
self)) self))

View File

@ -270,23 +270,23 @@
(re-export HOOK-REPORT) (re-export HOOK-REPORT)
;; simple-obj ;; simple-obj
(export make-simple-class) (export make-simple-class) ;deprecate
(export simple-obj-getter) (export simple-obj-getter) ;deprecate
(export simple-obj-setter) (export simple-obj-setter) ;deprecate
(export simple-obj-print) (export simple-obj-print) ;deprecate
(export simple-obj-to-list) (export simple-obj-to-list) ;deprecate
(export simple-obj-from-list) (export simple-obj-from-list) ;deprecate
(export make-simple-obj) (export make-simple-obj) ;deprecate
(define gnc:*kvp-option-path* (list KVP-OPTION-PATH)) (define gnc:*kvp-option-path* (list KVP-OPTION-PATH))
(export gnc:*kvp-option-path*) (export gnc:*kvp-option-path*)
(load-from-path "c-interface") (load-from-path "c-interface")
(load-from-path "options") (load-from-path "options")
(load-from-path "hooks") (load-from-path "hooks") ;deprecate
(load-from-path "prefs") (load-from-path "prefs")
(load-from-path "date-utilities") (load-from-path "date-utilities")
(load-from-path "simple-obj") (load-from-path "simple-obj") ;deprecate
;; Business options ;; Business options
(define gnc:*business-label* (N_ "Business")) (define gnc:*business-label* (N_ "Business"))

View File

@ -23,7 +23,6 @@
;; Boston, MA 02110-1301, USA gnu@gnu.org ;; Boston, MA 02110-1301, USA gnu@gnu.org
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; this is an extremely rudimentary object system. Each object is a ;; this is an extremely rudimentary object system. Each object is a
;; cons cell, where the car is a symbol with the class name and the ;; cons cell, where the car is a symbol with the class name and the
;; cdr is a vector of the slots. ;; cdr is a vector of the slots.
@ -41,18 +40,23 @@
;; the 'simple-class' class. ;; the 'simple-class' class.
(define (make-simple-class class-symbol slot-names) (define (make-simple-class class-symbol slot-names)
(issue-deprecation-warning "make-simple-class is deprecated. use make-record-type.")
(make-record-type (symbol->string class-symbol) slot-names)) (make-record-type (symbol->string class-symbol) slot-names))
(define (simple-obj-getter class slot) (define (simple-obj-getter class slot)
(issue-deprecation-warning "simple-obj-getter is deprecated. use record-accessor.")
(record-accessor class slot)) (record-accessor class slot))
(define (simple-obj-setter class slot) (define (simple-obj-setter class slot)
(issue-deprecation-warning "simple-obj-setter is deprecated. use record-modifier.")
(record-modifier class slot)) (record-modifier class slot))
(define (simple-obj-print obj) (define (simple-obj-print obj)
(issue-deprecation-warning "simple-obj-print is deprecated. use write.")
(write obj)) (write obj))
(define (simple-obj-to-list obj) (define (simple-obj-to-list obj)
(issue-deprecation-warning "simple-obj-to-list is deprecated. use record-type->list in qif-guess-map.scm")
(let ((retval '())) (let ((retval '()))
(for-each (for-each
(lambda (slot) (lambda (slot)
@ -62,6 +66,7 @@
(reverse retval))) (reverse retval)))
(define (simple-obj-from-list list type) (define (simple-obj-from-list list type)
(issue-deprecation-warning "simple-obj-from-list-obj is deprecated. use list->record-type in qif-guess-map.scm")
(let ((retval (make-simple-obj type))) (let ((retval (make-simple-obj type)))
(for-each (for-each
(lambda (slot) (lambda (slot)
@ -73,6 +78,7 @@
(define (make-simple-obj class) (define (make-simple-obj class)
(issue-deprecation-warning "make-simple-obj is deprecated. use construct in qif-objects.scm")
(let ((ctor (record-constructor class)) (let ((ctor (record-constructor class))
(field-defaults (field-defaults
(map (lambda (v) #f) (record-type-fields class)))) (map (lambda (v) #f) (record-type-fields class))))