diff --git a/src/main/java/net/kemitix/gitdb/Author.java b/src/main/java/net/kemitix/gitdb/Author.java new file mode 100644 index 0000000..48c8211 --- /dev/null +++ b/src/main/java/net/kemitix/gitdb/Author.java @@ -0,0 +1,13 @@ +package net.kemitix.gitdb; + +import net.kemitix.mon.TypeAlias; + +public class Author extends TypeAlias { + protected Author(String value) { + super(value); + } + + public static Author name(final String name) { + return new Author(name); + } +} diff --git a/src/main/java/net/kemitix/gitdb/Branch.java b/src/main/java/net/kemitix/gitdb/Branch.java new file mode 100644 index 0000000..094ef6a --- /dev/null +++ b/src/main/java/net/kemitix/gitdb/Branch.java @@ -0,0 +1,13 @@ +package net.kemitix.gitdb; + +import net.kemitix.mon.TypeAlias; + +public class Branch extends TypeAlias { + protected Branch(final String value) { + super(value); + } + + static Branch name(final String name) { + return new Branch(name); + } +} diff --git a/src/main/java/net/kemitix/gitdb/Document.java b/src/main/java/net/kemitix/gitdb/Document.java new file mode 100644 index 0000000..348a66a --- /dev/null +++ b/src/main/java/net/kemitix/gitdb/Document.java @@ -0,0 +1,18 @@ +package net.kemitix.gitdb; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@RequiredArgsConstructor +public class Document { + + public static Document create(Key key, T value) { + return new Document<>(key, value); + } + + @Getter + private final Key key; + + @Getter + private final T value; +} diff --git a/src/main/java/net/kemitix/gitdb/GitDB.java b/src/main/java/net/kemitix/gitdb/GitDB.java index 6f9b4cd..5164856 100644 --- a/src/main/java/net/kemitix/gitdb/GitDB.java +++ b/src/main/java/net/kemitix/gitdb/GitDB.java @@ -4,6 +4,7 @@ import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.lib.Repository; import java.nio.file.Path; +import java.util.stream.Stream; public interface GitDB { @@ -16,4 +17,24 @@ public interface GitDB { Repository getRepository(); Path getGitDir(); + + String get(Branch branch, Key key); + + T get(Branch branch, Key key, Class type); + + Stream getFiles(Branch branch, Key key); + + Stream getFiles(Branch branch, Key key, Class type); + + T save(Branch branch, Message message, Document document, Author author); + + String delete(Branch branch, Key key, Message message, Author author); + + void tag(Reference reference); + + void createBranch(Reference reference); + + Stream getAllBranches(); + + Transaction createTransaction(Branch branch); } diff --git a/src/main/java/net/kemitix/gitdb/GitDBLocal.java b/src/main/java/net/kemitix/gitdb/GitDBLocal.java index da2593e..5f6954c 100644 --- a/src/main/java/net/kemitix/gitdb/GitDBLocal.java +++ b/src/main/java/net/kemitix/gitdb/GitDBLocal.java @@ -6,6 +6,7 @@ import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.lib.Repository; import java.nio.file.Path; +import java.util.stream.Stream; class GitDBLocal implements GitDB { @@ -29,4 +30,55 @@ class GitDBLocal implements GitDB { public void close() { repository.close(); } + + @Override + public String get(Branch branch, Key key) { + return null; + } + + @Override + public T get(Branch branch, Key key, Class type) { + return null; + } + + @Override + public Stream getFiles(Branch branch, Key key) { + return null; + } + + @Override + public Stream getFiles(Branch branch, Key key, Class type) { + return null; + } + + @Override + public T save(Branch branch, Message message, Document document, Author author) { + return null; + } + + @Override + public String delete(Branch branch, Key key, Message message, Author author) { + return null; + } + + @Override + public void tag(Reference reference) { + + } + + @Override + public void createBranch(Reference reference) { + + } + + @Override + public Stream getAllBranches() { + return null; + } + + @Override + public Transaction createTransaction(Branch branch) { + return null; + } + } diff --git a/src/main/java/net/kemitix/gitdb/Key.java b/src/main/java/net/kemitix/gitdb/Key.java new file mode 100644 index 0000000..2aca0f5 --- /dev/null +++ b/src/main/java/net/kemitix/gitdb/Key.java @@ -0,0 +1,13 @@ +package net.kemitix.gitdb; + +import net.kemitix.mon.TypeAlias; + +public class Key extends TypeAlias { + protected Key(final String value) { + super(value); + } + + public static Key name(final String name) { + return new Key(name); + } +} diff --git a/src/main/java/net/kemitix/gitdb/Message.java b/src/main/java/net/kemitix/gitdb/Message.java new file mode 100644 index 0000000..22902da --- /dev/null +++ b/src/main/java/net/kemitix/gitdb/Message.java @@ -0,0 +1,12 @@ +package net.kemitix.gitdb; + +import net.kemitix.mon.TypeAlias; + +public class Message extends TypeAlias { + protected Message(final String value) { + super(value); + } + public static Message message(final String message) { + return new Message(message); + } +} diff --git a/src/main/java/net/kemitix/gitdb/Reference.java b/src/main/java/net/kemitix/gitdb/Reference.java new file mode 100644 index 0000000..fb84c69 --- /dev/null +++ b/src/main/java/net/kemitix/gitdb/Reference.java @@ -0,0 +1,9 @@ +package net.kemitix.gitdb; + +import net.kemitix.mon.TypeAlias; + +public class Reference extends TypeAlias { + protected Reference(String value) { + super(value); + } +} diff --git a/src/main/java/net/kemitix/gitdb/Transaction.java b/src/main/java/net/kemitix/gitdb/Transaction.java new file mode 100644 index 0000000..c396875 --- /dev/null +++ b/src/main/java/net/kemitix/gitdb/Transaction.java @@ -0,0 +1,9 @@ +package net.kemitix.gitdb; + +import net.kemitix.mon.TypeAlias; + +public class Transaction extends TypeAlias { + protected Transaction(String value) { + super(value); + } +}