"{ Package: 'jv:libgdbs' }"
Object subclass:#GDBPropertyDescriptor
instanceVariableNames:'name klass'
classVariableNames:''
poolDictionaries:''
category:'GDB-Core-Descriptors'
!
!GDBPropertyDescriptor class methodsFor:'instance creation'!
name: aString class: aClass
(aClass inheritsFrom: CharacterArray) ifTrue:[
^ GDBStringPropertyDescriptor new initializeWithName: aString class: aClass.
].
(aClass inheritsFrom: Integer) ifTrue:[
^ GDBIntegerPropertyDescriptor new initializeWithName: aString class: aClass.
].
(aClass inheritsFrom: Boolean) ifTrue:[
^ GDBBooleanPropertyDescriptor new initializeWithName: aString class: aClass.
].
(aClass inheritsFrom: GDBObject) ifTrue:[
^ GDBObjectPropertyDescriptor new initializeWithName: aString class: aClass.
].
(aClass inheritsFrom: GDBEvent) ifTrue:[
^ GDBObjectPropertyDescriptor new initializeWithName: aString class: aClass.
].
^ GDBPrimitivePropertyDescriptor new initializeWithName: aString class: aClass.
"Created: / 18-06-2014 / 10:03:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!GDBPropertyDescriptor class methodsFor:'queries'!
isAbstract
"Return if this class is an abstract class.
True is returned here for myself only; false for subclasses.
Abstract subclasses must redefine again."
^ self == GDBPropertyDescriptor.
! !
!GDBPropertyDescriptor methodsFor:'accessing'!
get: object
^ object perform: name asSymbol
"Created: / 17-06-2014 / 22:02:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
set: object to: value
^ object perform: (name asSymbol , ':') asSymbol with: value
"Created: / 17-06-2014 / 22:08:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!GDBPropertyDescriptor methodsFor:'initialization'!
initializeWithName: aString class: aClass
name := aString.
klass := aClass.
"Created: / 18-06-2014 / 10:04:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!GDBPropertyDescriptor methodsFor:'parsing'!
parseUsingParser: aGDBParser
self subclassResponsibility
"Created: / 18-06-2014 / 10:36:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !