< prev index next >

storage/src/main/java/org/openjdk/skara/storage/HostedRepositoryStorage.java

Print this page

 40     private final StorageSerializer<T> serializer;
 41     private final StorageDeserializer<T> deserializer;
 42 
 43     private Hash hash;
 44     private RepositoryStorage<T> repositoryStorage;
 45     private Set<T> current;
 46 
 47     HostedRepositoryStorage(HostedRepository repository, Path localStorage, String ref, String fileName, String authorName, String authorEmail, String message, StorageSerializer<T> serializer, StorageDeserializer<T> deserializer) {
 48         this.hostedRepository = repository;
 49         this.ref = ref;
 50         this.fileName = fileName;
 51         this.authorEmail = authorEmail;
 52         this.authorName = authorName;
 53         this.message = message;
 54         this.serializer = serializer;
 55         this.deserializer = deserializer;
 56 
 57         try {
 58             Repository localRepository;
 59             try {
 60                 localRepository = Repository.materialize(localStorage, repository.url(), ref);
 61             } catch (IOException e) {
 62                 // The remote ref may not yet exist
 63                 localRepository = Repository.init(localStorage, repository.repositoryType());
 64                 var storage = Files.writeString(localStorage.resolve(fileName), "");
 65                 localRepository.add(storage);
 66                 localRepository.commit(message, authorName, authorEmail);
 67             }
 68             this.localRepository = localRepository;
 69             hash = localRepository.head();
 70             repositoryStorage = new RepositoryStorage<>(localRepository, fileName, authorName, authorEmail, message, serializer, deserializer);
 71             current = current();
 72         } catch (IOException e) {
 73             throw new UncheckedIOException(e);
 74         }
 75     }
 76 
 77     @Override
 78     public Set<T> current() {
 79         return repositoryStorage.current();
 80     }

 40     private final StorageSerializer<T> serializer;
 41     private final StorageDeserializer<T> deserializer;
 42 
 43     private Hash hash;
 44     private RepositoryStorage<T> repositoryStorage;
 45     private Set<T> current;
 46 
 47     HostedRepositoryStorage(HostedRepository repository, Path localStorage, String ref, String fileName, String authorName, String authorEmail, String message, StorageSerializer<T> serializer, StorageDeserializer<T> deserializer) {
 48         this.hostedRepository = repository;
 49         this.ref = ref;
 50         this.fileName = fileName;
 51         this.authorEmail = authorEmail;
 52         this.authorName = authorName;
 53         this.message = message;
 54         this.serializer = serializer;
 55         this.deserializer = deserializer;
 56 
 57         try {
 58             Repository localRepository;
 59             try {
 60                 localRepository = Repository.materialize(localStorage, repository.url(), "+" + ref + ":storage");
 61             } catch (IOException e) {
 62                 // The remote ref may not yet exist
 63                 localRepository = Repository.init(localStorage, repository.repositoryType());
 64                 var storage = Files.writeString(localStorage.resolve(fileName), "");
 65                 localRepository.add(storage);
 66                 localRepository.commit(message, authorName, authorEmail);
 67             }
 68             this.localRepository = localRepository;
 69             hash = localRepository.head();
 70             repositoryStorage = new RepositoryStorage<>(localRepository, fileName, authorName, authorEmail, message, serializer, deserializer);
 71             current = current();
 72         } catch (IOException e) {
 73             throw new UncheckedIOException(e);
 74         }
 75     }
 76 
 77     @Override
 78     public Set<T> current() {
 79         return repositoryStorage.current();
 80     }
< prev index next >