001package co.codewizards.cloudstore.local.persistence; 002 003import static java.util.Objects.*; 004 005import java.util.ArrayList; 006import java.util.Collection; 007import java.util.Date; 008import java.util.UUID; 009 010import javax.jdo.Query; 011 012public class RemoteRepositoryRequestDao extends Dao<RemoteRepositoryRequest, RemoteRepositoryRequestDao> { 013 014 public RemoteRepositoryRequest getRemoteRepositoryRequest(final UUID repositoryId) { 015 final String repositoryIdString = repositoryId == null ? null : repositoryId.toString(); 016 final Query query = pm().newNamedQuery(getEntityClass(), "getRemoteRepositoryRequest_repositoryId"); 017 try { 018 final RemoteRepositoryRequest remoteRepositoryRequest = (RemoteRepositoryRequest) query.execute(repositoryIdString); 019 return remoteRepositoryRequest; 020 } finally { 021 query.closeAll(); 022 } 023 } 024 025 public RemoteRepositoryRequest getRemoteRepositoryRequestOrFail(final UUID repositoryId) { 026 final RemoteRepositoryRequest remoteRepositoryRequest = getRemoteRepositoryRequest(repositoryId); 027 if (remoteRepositoryRequest == null) 028 throw new IllegalArgumentException(String.format("There is no RemoteRepositoryRequest with repositoryId='%s'!", repositoryId)); 029 030 return remoteRepositoryRequest; 031 } 032 033 public Collection<RemoteRepositoryRequest> getRemoteRepositoryRequestsChangedBefore(final Date changed) { 034 requireNonNull(changed, "changed"); 035 final Query query = pm().newNamedQuery(getEntityClass(), "getRemoteRepositoryRequestsChangedBefore_changed"); 036 try { 037 @SuppressWarnings("unchecked") 038 final 039 Collection<RemoteRepositoryRequest> c = (Collection<RemoteRepositoryRequest>) query.execute(changed); 040 return new ArrayList<RemoteRepositoryRequest>(c); 041 } finally { 042 query.closeAll(); 043 } 044 } 045}