[isidorus-cvs] r199 - in branches/new-datamodel: playground src/model
Lukas Giessmann
lgiessmann at common-lisp.net
Sun Feb 21 20:34:02 UTC 2010
Author: lgiessmann
Date: Sun Feb 21 15:34:01 2010
New Revision: 199
Log:
new-datamodel: added some example code files that analyses certain situations and elephant's behviour
Added:
branches/new-datamodel/playground/
branches/new-datamodel/playground/ii_versioned_association.lisp
branches/new-datamodel/playground/system_crash.lisp
branches/new-datamodel/playground/versioned-pointer.lisp
Modified:
branches/new-datamodel/src/model/datamodel.lisp
Added: branches/new-datamodel/playground/ii_versioned_association.lisp
==============================================================================
--- (empty file)
+++ branches/new-datamodel/playground/ii_versioned_association.lisp Sun Feb 21 15:34:01 2010
@@ -0,0 +1,117 @@
+(asdf:operate 'asdf:load-op 'elephant)
+(use-package :elephant)
+
+(defpclass VersionInfoC()
+ ((start-revision :initarg :start-revision
+ :accessor start-revision
+ :type integer
+ :initform 0)
+ (end-revision :initarg :end-revision
+ :accessor end-revision
+ :type integer
+ :initform 0)
+ (versioned-construct :initarg :versioned-construct
+ :accessor versioned-construct
+ :associate VersionedConstructC)))
+
+(defpclass VersionedConstructC()
+ ((versions :initarg :versions
+ :accessor versions
+ :inherit t
+ :associate (VersionInfoC versioned-construct))))
+
+
+(defpclass VersionedAssociationC(VersionedConstructC)
+ ())
+
+
+(defpclass PointerAssociationC (VersionedAssociationC)
+ ((identifier :initarg :identifier
+ :accessor identifier
+ :inherit t
+ :initform (error "From PointerAssociationC(): identifier must be set")
+ :associate PointerC)))
+
+
+(defpclass ItemIdAssociationC(PointerAssociationC)
+ ((parent-construct :initarg :parent-construct
+ :accessor parent-construct
+ :initform (error "From ItemIdAssociationC(): parent-construct must be set")
+ :associate ReifiableConstructC)))
+
+
+(defpclass TopicMapConstructC()
+ ())
+
+
+(defpclass ReifiableConstructC(TopicMapConstructC)
+ ((item-identifiers :associate (ItemIdAssociationC parent-construct)
+ :inherit t)))
+
+
+(defpclass PointerC(TopicMapConstructC)
+ ((uri :initarg :uri
+ :accessor uri
+ :inherit t
+ :type string
+ :initform (error "From PointerC(): uri must be set for a pointer")
+ :index t)
+ (identified-construct :associate (PointerAssociationC identifier)
+ :inherit t)))
+
+
+(defpclass IdentifierC(PointerC)
+ ())
+
+
+(defpclass ItemIdentifierC(IdentifierC)
+ ()
+ (:index t))
+
+
+(open-store '(:BDB "data_base"))
+(defvar *p* (make-instance 'PointerC
+ :uri "anyUri"))
+(defvar *pa* (make-instance 'PointerAssociationC
+ :identifier *p*))
+
+(defvar *ii* (make-instance 'ItemIdentifierC
+ :uri "anyUri"))
+
+(defvar *pa-ii* (make-instance 'PointerAssociationC
+ :identifier *ii*))
+
+(defvar *ii-2* (make-instance 'ItemIdentifierC
+ :uri "anyUri"))
+
+(defvar *rc* (make-instance 'ReifiableConstructC))
+
+
+(defvar *ia* (make-instance 'ItemIdAssociationC
+ :identifier *ii-2*
+ :parent-construct *rc*))
+
+
+(when (not (slot-value *p* 'identified-construct))
+ (error ">> 1"))
+
+(when (not (slot-value *pa* 'identifier))
+ (error ">> 2"))
+
+(when (not (slot-value *ii* 'identified-construct))
+ (error ">> 3"))
+
+(when (not (slot-value *pa-ii* 'identifier))
+ (error ">> 4"))
+
+(when (not (slot-value *ii-2* 'identified-construct))
+ (error ">> 5"))
+
+(when (not (slot-value *rc* 'item-identifiers))
+ (error ">> 6"))
+
+(when (not (slot-value *ia* 'parent-construct))
+ (error ">> 7"))
+
+(when (not (slot-value *ia* 'identifier))
+ (error ">> 8"))
\ No newline at end of file
Added: branches/new-datamodel/playground/system_crash.lisp
==============================================================================
--- (empty file)
+++ branches/new-datamodel/playground/system_crash.lisp Sun Feb 21 15:34:01 2010
@@ -0,0 +1,3 @@
+(sb-mop:class-slots (find-class 'd:ItemIdentifierC))
+(sb-mop:class-finalized-p (find-class 'd:ItemIdentifierC))
+(sb-mop:finalize-inheritance (find-class 'd:ItemIdentifierC))
Added: branches/new-datamodel/playground/versioned-pointer.lisp
==============================================================================
--- (empty file)
+++ branches/new-datamodel/playground/versioned-pointer.lisp Sun Feb 21 15:34:01 2010
@@ -0,0 +1,28 @@
+(asdf:operate 'asdf:load-op 'elephant)
+(elephant:open-store '(:BDB "data_base"))
+(defpclass Relation()
+ ((to-a :associate NodeA
+ :accessor to-a
+ :initarg :to-a)
+ (to-b :associate NodeB
+ :accessor to-b
+ :initarg :to-b)
+ (version :initarg :version
+ :accessor version
+ :type integer
+ :index t))
+ (:index t))
+(defpclass NodeA()
+ ((relation-to-b :associate (Relation to-a)
+ :accessor relation-to-b
+ :initarg :relation-to-b))
+ (:index t))
+(defpclass NodeB()
+ ((relation-to-a :associate (Relation to-b)
+ :accessor relation-to-a
+ :initarg :relation-to-a))
+ (:index t))
+(defvar *rel* (make-instance 'Relation
+ :to-a (make-instance 'NodeA)
+ :to-b (make-instance 'NodeB)
+ :version 1))
Modified: branches/new-datamodel/src/model/datamodel.lisp
==============================================================================
--- branches/new-datamodel/src/model/datamodel.lisp (original)
+++ branches/new-datamodel/src/model/datamodel.lisp Sun Feb 21 15:34:01 2010
@@ -190,7 +190,7 @@
(defpclass PointerC(TopicMapConstructC)
((uri :initarg :uri
:accessor uri
- :inherit t
+ ;:inherit t
:type string
:initform (error "From PointerC(): uri must be set for a pointer")
:index t
@@ -308,7 +308,7 @@
(charvalue :initarg :charvalue
:accessor charvalue
:type string
- :inherit t
+ ;:inherit t
:initform ""
:index t
:documentation "Contains the actual data of this object."))
@@ -426,7 +426,7 @@
(defpclass PointerAssociationC (VersionedAssociationC)
((identifier :initarg :identifier
:accessor identifier
- :inherit t
+ ;:inherit t
:initform (error "From PointerAssociationC(): identifier must be set")
:associate PointerC
:documentation "The actual data that is associated with
@@ -469,7 +469,7 @@
(defpclass CharacteristicAssociationC(VersionedAssociationC)
((characteristic :initarg :characteristic
:accessor characteristic
- :inherit t
+ ;:inherit t
:initform (error "From CharacteristicCAssociation(): characteristic must be set")
:associate CharactersiticC
:documentation "Associates this object with the actual
More information about the Isidorus-cvs
mailing list