blob: e0a4e99411ca0d93248e9f6398bff6a0f628ef1a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
;;;; names.lisp -- a protocol for getting the names of things, and
;;;; generally referring to objects with strings.
(in-package :dnd)
(defgeneric unique-name (object)
(:documentation "Returns a unique name for an object, or NIL if it does not have one.")
(:method ((ob t)) nil))
(defgeneric urlpath (object)
(:documentation "Return the path to the object given a particular")
(:method ((object has-uid))
"If the object has a unique human readable name, urlify that name and
incorporate it into the urlpath. Otherwise use the object's uid.
Returns /class/identifier."
(format nil "/~a/~a/~a"
(urlify (class-name (class-of object)))
(urlify (uid object))
(urlify (or (unique-name object) (uid object))))))
|