SVN__RepositoryConfiguration.st
author Claus Gittinger <cg@exept.de>
Mon, 12 Apr 2010 13:42:32 +0200
changeset 568 073adf9e4ccc
parent 467 c24d39535de8
child 718 6da6d4d1ffe6
permissions -rw-r--r--
changed: #url:

"{ Package: 'stx:libsvn' }"

"{ NameSpace: SVN }"

Object subclass:#RepositoryConfiguration
	instanceVariableNames:'package url'
	classVariableNames:''
	poolDictionaries:''
	category:'SVN-Core'
!


!RepositoryConfiguration class methodsFor:'instance creation'!

package: package url: url

    ^self new
        package: package;
        url: url

    "Created: / 19-08-2009 / 12:17:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!RepositoryConfiguration methodsFor:'accessing'!

package
    ^ package
!

package:aString
    package := aString.
!

packagePattern: aString

    <resource: #obsolete>

    self package: aString

    "Created: / 16-08-2009 / 16:59:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

url
    ^ url
!

url: aStringOrUrl 
    | givenUrl |

    givenUrl := aStringOrUrl asURL.
    givenUrl isValidSvnRepositoryUrl ifTrue:[
        url := givenUrl.
    ] ifFalse: [         
        self error: 'Invalid repository URL' mayProceed:true.
        url := nil.
    ].

    "Modified: / 16-08-2009 / 16:42:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

urlForPackage: pkg

    | packageAsPath |
    packageAsPath := pkg asString copy replaceAll:$: with:$/.
    ^url asString expandPlaceholdersWith:
        (Dictionary new
            at: 'p' put: packageAsPath;
            yourself)

    "Created: / 16-08-2009 / 16:56:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

urlPattern: aString

    <resource: #obsolete>

    self url: aString

    "Created: / 16-08-2009 / 16:59:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

urlString
    url isNil ifTrue: [^''].
    ^ url urlPrintString

    "Created: / 16-08-2009 / 17:28:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!RepositoryConfiguration methodsFor:'comparing'!

= anotherConf

    ^self class == anotherConf class
        and:[package = anotherConf package
            and:[url = anotherConf url]].

    "Created: / 25-05-2009 / 18:54:47 / Jan Vrany <vranyj1@fel.cvut.cz>"
    "Modified: / 16-08-2009 / 17:24:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

hash

    ^package hash bitXor:
        url hash

    "Created: / 25-05-2009 / 18:53:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!RepositoryConfiguration methodsFor:'converting'!

literalArrayEncoding

    ^Array
        with: self class name
        with: #package:
        with: package literalArrayEncoding
        with: #url:
        with: url asString.

    "
        (SVN::RepositoryConfiguration package:'stx:goodies/libsvn' url: 'http://smalltalk.felk.cvut.cz/svn/stx/goodies/libsvn')
            literalArrayEncoding
            decodeAsLiteralArray

    "

    "Created: / 19-08-2009 / 21:56:21 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!RepositoryConfiguration methodsFor:'printing & storing'!

printOn:aStream
    "append a printed representation if the receiver to the argument, aStream"

    self class storeOn:aStream.
    aStream space.
    aStream nextPutAll:'package: '.
    package storeOn:aStream.
    aStream space.
    aStream nextPutAll:'url: '.
    url asString storeOn:aStream.

    "Modified: / 19-08-2009 / 12:18:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!RepositoryConfiguration methodsFor:'queries'!

matchesPackage: pkg

    ^pkg 
        ifNil:[false]
        ifNotNil:[pkg matches: package]

    "Created: / 26-05-2008 / 09:36:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
    "Modified: / 16-08-2009 / 16:29:21 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!RepositoryConfiguration class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
!

version_SVN
    ^'§Id: SVN__RepositoryConfiguration.st 111 2009-08-19 20:07:10Z vranyj1 §'
! !