#DOCUMENTATION by cg
class: Integer
category of:
#anyBitOfMagnitudeFrom:to:
#highBitOfMagnitude
"
COPYRIGHT (c) 2006 by eXept Software AG
All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
inclusion of the above copyright notice. This software may not
be provided or otherwise made available to, or used by, any
other person. No title to or ownership of the software is
hereby transferred.
"
"{ Package: 'stx:libbasic' }"
Object subclass:#CmdLineOption
instanceVariableNames:'action description short long'
classVariableNames:''
poolDictionaries:''
category:'System-Support-Command line'
!
!CmdLineOption class methodsFor:'documentation'!
copyright
"
COPYRIGHT (c) 2006 by eXept Software AG
All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
inclusion of the above copyright notice. This software may not
be provided or otherwise made available to, or used by, any
other person. No title to or ownership of the software is
hereby transferred.
"
!
optionsFor: anObject
"Returns a collection of command line options for
given object."
^anObject class allSelectors
select:[:sel|sel startsWith: 'cmdlineOption']
thenCollect:[:sel|anObject perform: sel].
! !
!CmdLineOption methodsFor:'accessing'!
action
^ action
"Created: / 28-01-2009 / 11:49:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
action:aBlockOrMessageSend
aBlockOrMessageSend numArgs > 1 ifTrue:
[CmdLineOptionError raiseErrorString: 'Action must be zero-or-one arg block/message send'].
action := aBlockOrMessageSend.
"Created: / 28-01-2009 / 11:49:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
"Modified: / 16-06-2009 / 15:46:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
description
^ description
"Created: / 28-01-2009 / 11:49:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
description:aString
description := aString.
"Created: / 28-01-2009 / 11:49:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
long
^ long
!
long:aString
long := aString.
!
short
^ short
!
short:aCharacterOrString
(aCharacterOrString isCharacter
and:[aCharacterOrString isAlphaNumeric])
ifTrue:[short := aCharacterOrString]
ifFalse:[self error: 'short option name should be alphanumeric character']
"Modified: / 29-05-2009 / 16:05:46 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !
!CmdLineOption methodsFor:'printing & storing'!
printOn: stream
super printOn: stream.
stream nextPut:$(.
short ifNotNil:[stream nextPut: $-; nextPut: short].
(short notNil and: [long notNil]) ifTrue:[stream nextPut:$|].
long ifNotNil:[stream nextPut: $-; nextPut: $-; nextPutAll: long].
stream nextPut:$)
"Created: / 08-06-2009 / 14:48:59 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !
!CmdLineOption methodsFor:'processing'!
process
action value
"Created: / 08-06-2009 / 14:35:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
process: value
action value: value
"Created: / 08-06-2009 / 14:35:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !
!CmdLineOption methodsFor:'queries'!
hasParam
^action numArgs = 1
"Created: / 08-06-2009 / 13:45:41 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !
!CmdLineOption class methodsFor:'documentation'!
version
^'$Header: /cvs/stx/stx/libbasic/CmdLineOption.st,v 1.3 2012-01-13 10:58:29 vrany Exp $'
!
version_SVN
^ '§Id: CmdLineOption.st 10737 2011-11-06 21:23:48Z vranyj1 §'
! !