" (C) 2011 by Holger Hans Peter Freyther All Rights Reserved This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program 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 Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . " Object subclass: SIPParam [ | data | asFoldedString [ ^ data ] nextPutAllOn: astream [ ^ data nextPutAllOn: astream ] ] SIPParam subclass: SIPVia [ | branch | SIPVia class >> findBranch: aData [ aData do: [:each | each first = 'branch' ifTrue: [^each third]]. ^ nil. ] SIPVia class >> parseFrom: aParseDict [ ^ self new instVarNamed: #data put: aParseDict asFoldedString; instVarNamed: #branch put: (self findBranch: (aParseDict at: 8) first); yourself ] branch [ ^ branch ] ] SIPParam subclass: SIPCSeq [ | number method | SIPCSeq class >> parseFrom: aParseDict [ ^ self new instVarNamed: #data put: aParseDict asFoldedString; instVarNamed: #number put: aParseDict first asInteger; instVarNamed: #method put: aParseDict third; yourself ] number [ ^ number ] method [ ^ method ] ]