package co.codewizards.cloudstore.local.persistence; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.UUID; import javax.jdo.Query; import co.codewizards.cloudstore.core.util.AssertUtil; public class RemoteRepositoryRequestDao extends Dao<RemoteRepositoryRequest, RemoteRepositoryRequestDao> { public RemoteRepositoryRequest getRemoteRepositoryRequest(final UUID repositoryId) { final String repositoryIdString = repositoryId == null ? null : repositoryId.toString(); final Query query = pm().newNamedQuery(getEntityClass(), "getRemoteRepositoryRequest_repositoryId"); try { final RemoteRepositoryRequest remoteRepositoryRequest = (RemoteRepositoryRequest) query.execute(repositoryIdString); return remoteRepositoryRequest; } finally { query.closeAll(); } } public RemoteRepositoryRequest getRemoteRepositoryRequestOrFail(final UUID repositoryId) { final RemoteRepositoryRequest remoteRepositoryRequest = getRemoteRepositoryRequest(repositoryId); if (remoteRepositoryRequest == null) throw new IllegalArgumentException(String.format("There is no RemoteRepositoryRequest with repositoryId='%s'!", repositoryId)); return remoteRepositoryRequest; } public Collection<RemoteRepositoryRequest> getRemoteRepositoryRequestsChangedBefore(final Date changed) { AssertUtil.assertNotNull(changed, "changed"); final Query query = pm().newNamedQuery(getEntityClass(), "getRemoteRepositoryRequestsChangedBefore_changed"); try { @SuppressWarnings("unchecked") final Collection<RemoteRepositoryRequest> c = (Collection<RemoteRepositoryRequest>) query.execute(changed); return new ArrayList<RemoteRepositoryRequest>(c); } finally { query.closeAll(); } } }