git/GitObject.st
author vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
Mon, 10 Sep 2012 18:33:35 +0000
changeset 4 b52b9cfe9b77
parent 2 9731a2e41428
child 5 57c20a77e549
permissions -rw-r--r--
- GitObject added:5 methods - GitRepository added:7 methods changed: #lookup:type: #open: category of: - GitTree added: #/ - GitOid changed: #fromString: - GitCommit class definition added: #/ #setRepository: #tree - stx_libscm_git changed: #classNamesAndAttributes #extensionMethodNames #preRequisites
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     1
"{ Package: 'stx:libscm/git' }"
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     2
1
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
     3
GitHandle subclass:#GitObject
4
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
     4
	instanceVariableNames:'oid repository'
0
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     5
	classVariableNames:''
2
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
     6
	poolDictionaries:'GitObjectType'
1
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
     7
	category:'Git-Model'
0
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     8
!
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     9
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    10
2
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    11
!GitObject class methodsFor:'instance creation'!
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    12
4
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    13
newForType: type
2
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    14
    type == OBJ_ANY ifTrue:[
4
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    15
        ^self new
2
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    16
    ].
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    17
    type == OBJ_COMMIT ifTrue:[
4
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    18
        ^GitCommit
2
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    19
    ].
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    20
    type == OBJ_TREE ifTrue:[
4
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    21
        ^GitTree new
2
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    22
    ].
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    23
    type == OBJ_TAG ifTrue:[
4
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    24
        ^GitTag new 
2
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    25
    ].
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    26
    type == OBJ_BLOB ifTrue:[
4
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    27
        ^GitBlob new
2
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    28
    ].
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    29
    self error:'Unsupported git object type: ', type printString.
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    30
4
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    31
    "Created: / 10-09-2012 / 18:52:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    32
! !
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    33
0
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    34
!GitObject class methodsFor:'accessing'!
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    35
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    36
structSize
2
9731a2e41428 - More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 1
diff changeset
    37
    "Returns size of undelaying structure in bytes"
0
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    38
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    39
    ^0
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    40
! !
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    41
4
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    42
!GitObject methodsFor:'accessing'!
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    43
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    44
oid
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    45
    ^ oid
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    46
!
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    47
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    48
repository
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    49
    ^ repository
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    50
! !
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    51
1
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    52
!GitObject methodsFor:'finalization'!
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    53
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    54
basicFree
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    55
    ^GitPrimitives prim_git_object_free: self.
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    56
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    57
    "Created: / 08-09-2012 / 00:21:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    58
! !
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    59
4
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    60
!GitObject methodsFor:'initialization'!
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    61
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    62
setOid: aGitOid
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    63
    oid := aGitOid
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    64
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    65
    "Created: / 10-09-2012 / 18:54:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    66
!
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    67
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    68
setRepository: aGitRepository
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    69
    repository := aGitRepository
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    70
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    71
    "Created: / 10-09-2012 / 18:50:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    72
! !
b52b9cfe9b77 - GitObject
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 2
diff changeset
    73
0
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    74
!GitObject class methodsFor:'documentation'!
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    75
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    76
version_SVN
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    77
    ^ '$Id::                                                                                                                        $'
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    78
! !