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}