GDBStructure.st
author Jan Vrany <jan.vrany@labware.com>
Mon, 15 Jun 2020 12:59:58 +0100
changeset 207 6865055b721f
child 259 651864c2aa29
permissions -rw-r--r--
Add `GDBStructure` helper class An instances for `GDBStructure` can be used as generic "described" elements when specifying command return structure.

"
COPYRIGHT (c) 2020 LabWare

jv:libgdbs - GNU Debugger Interface Library

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License. 

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
"
"{ Package: 'jv:libgdbs' }"

"{ NameSpace: Smalltalk }"

GDBObject subclass:#GDBStructure
	instanceVariableNames:'name description'
	classVariableNames:''
	poolDictionaries:''
	category:'GDB-Support'
!

!GDBStructure class methodsFor:'documentation'!

copyright
"
COPYRIGHT (c) 2020 LabWare

jv:libgdbs - GNU Debugger Interface Library

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License. 

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
"
! !

!GDBStructure class methodsFor:'instance creation'!

new
    "return an initialized instance"

    ^ self basicNew initialize.
! !

!GDBStructure methodsFor:'accessing'!

description
    ^ description
! !

!GDBStructure methodsFor:'adding-easy shortcuts'!

define: property as: class
    description define: property as: class

    "Created: / 23-09-2014 / 22:20:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 25-04-2019 / 16:20:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 15-06-2020 / 12:26:46 / Jan Vrany <jan.vrany@labware.com>"
!

define: property as: collectionClass of: elementClass
    description define: property as: collectionClass of: elementClass

    "Created: / 23-09-2014 / 22:54:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 25-04-2019 / 16:19:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 15-06-2020 / 12:27:00 / Jan Vrany <jan.vrany@labware.com>"
!

define: property as: collectionClass of: elementClass1 whenTaggedBy: tag1 or: elementClass2 whenTaggedBy: tag2 
    description define: property as: collectionClass of: elementClass1 whenTaggedBy: tag1 or: elementClass2 whenTaggedBy: tag2

    "Created: / 03-07-2018 / 17:10:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 25-04-2019 / 16:20:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 15-06-2020 / 12:27:14 / Jan Vrany <jan.vrany@labware.com>"
! !

!GDBStructure methodsFor:'initialization'!

initialize
    super initialize.
    description := GDBMAContainer forClass: self class.

    "Modified: / 15-06-2020 / 12:51:40 / Jan Vrany <jan.vrany@labware.com>"
! !