Changeset 236 for branches/new-datamodel


Ignore:
Timestamp:
03/21/10 08:36:20 (15 years ago)
Author:
lgiessmann
Message:

new-datamodel: optimized "make-construct"

Location:
branches/new-datamodel/src/model
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified branches/new-datamodel/src/model/changes.lisp

    r234 r236  
    1 #;;+-----------------------------------------------------------------------------
     1;;+-----------------------------------------------------------------------------
    22;;+  Isidorus
    33;;+  (c) 2008-2009 Marc Kuester, Christoph Ludwig, Lukas Giessmann
  • TabularUnified branches/new-datamodel/src/model/datamodel.lisp

    r235 r236  
    16461646
    16471647
    1648 (defgeneric initialize-name (construct variants &key start-revision)
     1648(defgeneric complete-name (construct variants &key start-revision)
    16491649  (:documentation "Adds all given variants to the passed construct.")
    16501650  (:method ((construct NameC) (variants list)
     
    19671967
    19681968
    1969 (defgeneric initialize-reifiable (construct item-identifiers reifier
     1969(defgeneric complete-reifiable (construct item-identifiers reifier
    19701970                                            &key start-revision)
    19711971  (:documentation "Adds all item-identifiers and the reifier to the passed
     
    21472147
    21482148
    2149 (defgeneric initialize-typable (construct instance-of &key start-revision)
     2149(defgeneric complete-typable (construct instance-of &key start-revision)
    21502150  (:documentation "Adds the passed instance-of to the given construct.")
    21512151  (:method ((construct TypableC) instance-of
     
    21772177
    21782178
    2179 (defgeneric initialize-scopable (construct themes &key start-revision)
     2179(defgeneric complete-scopable (construct themes &key start-revision)
    21802180  (:documentation "Adds all passed themes to the given construct.")
    21812181  (:method ((construct ScopableC) (themes list)
     
    23952395            (make-role args))
    23962396           ((AssociationC-p class-symbol)
    2397             (make-association args)))))
    2398     construct))
     2397            (make-association args))))
     2398        (start-revision (getf args :start-revision)))
     2399    (when (typep construct 'TypableC)
     2400      (complete-typable construct (getf args :instance-of)
     2401                        :start-revision start-revision))
     2402    (when (typep construct 'ScopableC)
     2403      (complete-scopable construct (getf args :themes)
     2404                         :start-revision start-revision))
     2405    (if (typep construct 'ReifiableConstructC)
     2406        (complete-reifiable construct (getf args :item-identtifiers)
     2407                            (getf args :reifier) :start-revision start-revision)
     2408        construct)))
    23992409
    24002410
     
    24032413   existing one is returned otherwise a new one is created.
    24042414   This function exists only for being used by make-construct!"
    2405   (let ((item-identifiers (getf (first args) :item-identifiers))
    2406         (reifier (getf (first args) :reifier))
    2407         (instance-of (getf (first args) :instance-of))
     2415  (let ((instance-of (getf (first args) :instance-of))
    24082416        (start-revision (getf (first args) :start-revision))
    24092417        (themes (get (first args) :themes))
     
    24282436                 existing-association
    24292437                 (make-instance 'AssociationC)))))
    2430       (initialize-typable association instance-of :start-revision
    2431                           start-revision)
    24322438      (dolist (role roles)
    24332439        (add-role association role :revision start-revision))
    2434       (dolist (theme themes)
    2435         (add-theme association theme :revision start-revision))
    2436       (initialize-reifiable association item-identifiers reifier
    2437                             :start-revision start-revision))))
     2440      association)))
    24382441
    24392442
     
    24422445   existing one is returned otherwise a new one is created.
    24432446   This function exists only for being used by make-construct!"
    2444   (let ((item-identifiers (getf args :item-identifiers))
    2445         (reifier (getf args :reifier))
    2446         (parent (getf args :parent))
     2447  (let ((parent (getf args :parent))
    24472448        (instance-of (getf args :instance-of))
    24482449        (player (getf args :player))
     
    24682469      (when player
    24692470        (add-player role player :revision start-revision))
    2470       (initialize-typable role instance-of :start-revision start-revision)
    24712471      (when parent
    24722472        (add-parent role parent :revision start-revision))
    2473       (initialize-reifiable role item-identifiers reifier
    2474                             :start-revision start-revision))))
     2473      role)))
    24752474
    24762475
     
    25062505      (dolist (top-or-assoc (union topics assocs))
    25072506        (add-to-tm tm top-or-assoc))
    2508       (initialize-reifiable tm item-identifiers reifier
    2509                             :start-revision start-revision))))
     2507      tm)))
    25102508           
    25112509
     
    25442542                    (make-instance 'TopicC))))))
    25452543      (let ((merged-topic topic))
    2546         (setf merged-topic
    2547               (initialize-reifiable topic item-identifiers nil
    2548                                     :start-revision start-revision))
    25492544        (dolist (psi psis)
    25502545          (setf merged-topic (add-psi merged-topic psi
     
    25732568        (themes (getf (first args) :themes))
    25742569        (variants (getf (first args) :variants))
    2575         (reifier (getf (first args) :reifier))
    25762570        (parent (getf (first args) :parent))
    2577         (item-identifiers (getf (first args) :item-identifiers))
    25782571        (err "From make-characteristic(): "))
    25792572    (unless start-revision (error "~astart-revision must be set" err))
     
    26002593                 (make-instance class-symbol :charvalue charvalue
    26012594                                :datatype datatype)))))
    2602       (initialize-scopable characteristic themes :start-revision start-revision)
    2603       (initialize-typable characteristic instance-of
    2604                           :start-revision start-revision)
    2605       (initialize-name characteristic variants :start-revision start-revision)
     2595      (complete-name characteristic variants :start-revision start-revision)
    26062596      (when parent
    26072597        (add-parent characteristic parent :revision start-revision))
    2608       (initialize-reifiable characteristic item-identifiers
    2609                             reifier :start-revision start-revision))))
     2598      characteristic)))
    26102599
    26112600
Note: See TracChangeset for help on using the changeset viewer.