br.com.objectos.git.Git.plantuml Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of objectos-git Show documentation
Show all versions of objectos-git Show documentation
ObjectosGit is a pure Java library that provides a limited set of GIT operations.
The newest version!
'
' Copyright (C) 2020-2022 Objectos Software LTDA.
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
' http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.
'
@startuml
' config
hide empty members
' left to right direction
skinparam genericDisplay old
' skinparam monochrome true
skinparam shadowing false
' skinparam style strictuml
' classes ordered by name
abstract class AbstractReadObjectTask extends AbstractTask {
~ ObjectDatabase database
~ ObjectId objectId
{abstract} + GitObject getResult()\n throws IOException;
}
abstract class AbstractGitCommand implements GitCommand, GitUriVisitor, TaskResultVisitor {
~ GitCommandAdapter adapter
}
abstract class AbstractTask implements Task {
~ TaskAdapter adapter
}
interface Blob extends GitObject
class BlobId extends ObjectId
interface Commit extends GitObject
class CommitId extends ObjectId
interface Computable {
+ R getResult()\n throws IOException
}
interface Copy {
+ void start(TargetCommit c)
+ void visitBlob(SourceCommit c)
+ void visitCommit(SourceCommit c)
+ void visitEntry(SourceBlobEntry e)
+ void visitEntry(SourceTreeEntry e)
+ void visitTree(SourceTree t)
}
class CopyCommand extends AbstractGitCommand {
+ CommitId getResult()\nthrows IOException
}
class MaterializeBlobTask extends AbstractReadObjectTask {
- WritableByteChannel target
+ Boolean getResult()\nthrows IOException
}
class FetchCommitTask extends AbstractReadObjectTask {
+ Commit getResult()\nthrows IOException
}
class FetchTreeTask extends AbstractReadObjectTask {
+ Tree getResult()\nthrows IOException
}
class Git {
{static} + GitMachine\ncreateMachine(\nByteBuffer byteBuffer,\nCharBuffer charBuffer,\nByteBuffer dataBuffer,\nIoExecutor ioExecutor)
}
interface GitCommand extends Computable
interface GitCommandAdapter extends TaskAdapter
interface GitMachine extends Machine {
+ Computable\ncopy(\nRepository source,\nCommitId id,\nRepository target,\nCopyOption... o)
+ Computable\nmaterialize(\nRepository repo,\nObjectId id,\nDirectory target)
+ Computable\nopenRepository(\nDirectory d)
}
interface GitObject extends TaskResult
interface Machine {
+ boolean shouldExecute()
+ void executeOne()
}
class MachineInstance implements GitCommandAdapter, GitMachine {
- ByteBuffer byteBuffer
- CharBuffer charBuffer
- ByteBuffer dataBuffer
- IoExecutor ioExecutor
}
class MaterializeCommand extends AbstractGitCommand {
+ Directory getResult()\nthrows IOException
}
class ObjectDatabase {
- Directory directory
+ FileChannel\nopenObjectReader(\nObjectId id)
}
abstract class ObjectId
class OpenRepositoryCommand extends AbstractGitCommand {
+ Repository getResult()\nthrows IOException
}
abstract RefName
class RefName.RefsHeads extends RefName
class Repository implements TaskResult {
- Directory directory
- ObjectDatabase objectDatabase
+ ObjectId resolve(RefName name)
}
interface Task extends Computable, Machine
interface TaskAdapter
interface TaskResult {
+ void\nacceptTaskResultVisitor(\nTaskResultVisitor v)
}
interface TaskResultVisitor {
+ void\nvisitRepository(\nRepository r)
}
class Tree implements GitObject
class TreeId extends ObjectId
' rels
CopyCommand -[hidden]d- Copy
FetchCommitTask -[hidden]d- TaskResult
Git -[hidden]d-- Computable
Git -[hidden]r- GitUri
Repository::objectDatabase -d- ObjectDatabase
Repository -[hidden]d- RefName
@enduml
© 2015 - 2025 Weber Informatics LLC | Privacy Policy