|
1 "{ Package: 'jv:libgdbs' }" |
|
2 |
|
3 Object subclass:#GDBPropertyDescriptor |
|
4 instanceVariableNames:'name klass' |
|
5 classVariableNames:'' |
|
6 poolDictionaries:'' |
|
7 category:'GDB-Core-Descriptors' |
|
8 ! |
|
9 |
|
10 !GDBPropertyDescriptor class methodsFor:'instance creation'! |
|
11 |
|
12 name: aString class: aClass |
|
13 |
|
14 (aClass inheritsFrom: CharacterArray) ifTrue:[ |
|
15 ^ GDBStringPropertyDescriptor new initializeWithName: aString class: aClass. |
|
16 ]. |
|
17 (aClass inheritsFrom: Integer) ifTrue:[ |
|
18 ^ GDBIntegerPropertyDescriptor new initializeWithName: aString class: aClass. |
|
19 ]. |
|
20 (aClass inheritsFrom: Boolean) ifTrue:[ |
|
21 ^ GDBBooleanPropertyDescriptor new initializeWithName: aString class: aClass. |
|
22 ]. |
|
23 (aClass inheritsFrom: GDBObject) ifTrue:[ |
|
24 ^ GDBObjectPropertyDescriptor new initializeWithName: aString class: aClass. |
|
25 ]. |
|
26 (aClass inheritsFrom: GDBEvent) ifTrue:[ |
|
27 ^ GDBObjectPropertyDescriptor new initializeWithName: aString class: aClass. |
|
28 ]. |
|
29 ^ GDBPrimitivePropertyDescriptor new initializeWithName: aString class: aClass. |
|
30 |
|
31 "Created: / 18-06-2014 / 10:03:50 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
32 ! ! |
|
33 |
|
34 !GDBPropertyDescriptor class methodsFor:'queries'! |
|
35 |
|
36 isAbstract |
|
37 "Return if this class is an abstract class. |
|
38 True is returned here for myself only; false for subclasses. |
|
39 Abstract subclasses must redefine again." |
|
40 |
|
41 ^ self == GDBPropertyDescriptor. |
|
42 ! ! |
|
43 |
|
44 !GDBPropertyDescriptor methodsFor:'accessing'! |
|
45 |
|
46 get: object |
|
47 ^ object perform: name asSymbol |
|
48 |
|
49 "Created: / 17-06-2014 / 22:02:08 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
50 ! |
|
51 |
|
52 set: object to: value |
|
53 ^ object perform: (name asSymbol , ':') asSymbol with: value |
|
54 |
|
55 "Created: / 17-06-2014 / 22:08:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
56 ! ! |
|
57 |
|
58 !GDBPropertyDescriptor methodsFor:'initialization'! |
|
59 |
|
60 initializeWithName: aString class: aClass |
|
61 name := aString. |
|
62 klass := aClass. |
|
63 |
|
64 "Created: / 18-06-2014 / 10:04:53 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
65 ! ! |
|
66 |
|
67 !GDBPropertyDescriptor methodsFor:'parsing'! |
|
68 |
|
69 parseUsingParser: aGDBParser |
|
70 self subclassResponsibility |
|
71 |
|
72 "Created: / 18-06-2014 / 10:36:05 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
73 ! ! |
|
74 |