GDBPropertyDescriptor.st
changeset 16 a5a8c0454395
equal deleted inserted replaced
15:65d3b4bfe871 16:a5a8c0454395
       
     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