001package co.codewizards.cloudstore.core.repo.transport; 002 003import static java.util.Objects.*; 004 005import java.net.URL; 006import java.util.UUID; 007 008public abstract class AbstractRepoTransportFactory implements RepoTransportFactory { 009 010 @Override 011 public int getPriority() { 012 return 0; 013 } 014 015 @Override 016 public RepoTransport createRepoTransport(URL remoteRoot, UUID clientRepositoryId) { 017 requireNonNull(remoteRoot, "remoteRoot"); 018 // clientRepositoryId may be null! 019 RepoTransport repoTransport = _createRepoTransport(); 020 if (repoTransport == null) 021 throw new IllegalStateException(String.format("Implementation error in class %s: _createRepoTransport(...) returned null!", this.getClass().getName())); 022 023 repoTransport.setRepoTransportFactory(this); 024 repoTransport.setRemoteRoot(remoteRoot); 025 repoTransport.setClientRepositoryId(clientRepositoryId); 026 return repoTransport; 027 } 028 029 protected abstract RepoTransport _createRepoTransport(); 030}