JpaWhitelistedSiteRepository.java

  1. /*******************************************************************************
  2.  * Copyright 2017 The MIT Internet Trust Consortium
  3.  *
  4.  * Portions copyright 2011-2013 The MITRE Corporation
  5.  *
  6.  * Licensed under the Apache License, Version 2.0 (the "License");
  7.  * you may not use this file except in compliance with the License.
  8.  * You may obtain a copy of the License at
  9.  *
  10.  *   http://www.apache.org/licenses/LICENSE-2.0
  11.  *
  12.  * Unless required by applicable law or agreed to in writing, software
  13.  * distributed under the License is distributed on an "AS IS" BASIS,
  14.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15.  * See the License for the specific language governing permissions and
  16.  * limitations under the License.
  17.  *******************************************************************************/
  18. package org.mitre.openid.connect.repository.impl;

  19. import static org.mitre.util.jpa.JpaUtil.saveOrUpdate;

  20. import java.util.Collection;

  21. import javax.persistence.EntityManager;
  22. import javax.persistence.PersistenceContext;
  23. import javax.persistence.TypedQuery;

  24. import org.mitre.openid.connect.model.WhitelistedSite;
  25. import org.mitre.openid.connect.repository.WhitelistedSiteRepository;
  26. import org.mitre.util.jpa.JpaUtil;
  27. import org.springframework.stereotype.Repository;
  28. import org.springframework.transaction.annotation.Transactional;

  29. /**
  30.  * JPA WhitelistedSite repository implementation
  31.  *
  32.  * @author Michael Joseph Walsh, aanganes
  33.  *
  34.  */
  35. @Repository
  36. public class JpaWhitelistedSiteRepository implements WhitelistedSiteRepository {

  37.     @PersistenceContext(unitName="defaultPersistenceUnit")
  38.     private EntityManager manager;

  39.     @Override
  40.     @Transactional(value="defaultTransactionManager")
  41.     public Collection<WhitelistedSite> getAll() {
  42.         TypedQuery<WhitelistedSite> query = manager.createNamedQuery(WhitelistedSite.QUERY_ALL, WhitelistedSite.class);
  43.         return query.getResultList();
  44.     }

  45.     @Override
  46.     @Transactional(value="defaultTransactionManager")
  47.     public WhitelistedSite getById(Long id) {
  48.         return manager.find(WhitelistedSite.class, id);
  49.     }

  50.     @Override
  51.     @Transactional(value="defaultTransactionManager")
  52.     public void remove(WhitelistedSite whitelistedSite) {
  53.         WhitelistedSite found = manager.find(WhitelistedSite.class, whitelistedSite.getId());

  54.         if (found != null) {
  55.             manager.remove(found);
  56.         } else {
  57.             throw new IllegalArgumentException();
  58.         }
  59.     }

  60.     @Override
  61.     @Transactional(value="defaultTransactionManager")
  62.     public WhitelistedSite save(WhitelistedSite whiteListedSite) {
  63.         return saveOrUpdate(whiteListedSite.getId(), manager, whiteListedSite);
  64.     }

  65.     @Override
  66.     @Transactional(value="defaultTransactionManager")
  67.     public WhitelistedSite update(WhitelistedSite oldWhitelistedSite, WhitelistedSite whitelistedSite) {
  68.         // sanity check
  69.         whitelistedSite.setId(oldWhitelistedSite.getId());

  70.         return saveOrUpdate(oldWhitelistedSite.getId(), manager, whitelistedSite);
  71.     }

  72.     @Override
  73.     @Transactional(value="defaultTransactionManager")
  74.     public WhitelistedSite getByClientId(String clientId) {
  75.         TypedQuery<WhitelistedSite> query = manager.createNamedQuery(WhitelistedSite.QUERY_BY_CLIENT_ID, WhitelistedSite.class);
  76.         query.setParameter(WhitelistedSite.PARAM_CLIENT_ID, clientId);
  77.         return JpaUtil.getSingleResult(query.getResultList());
  78.     }

  79.     @Override
  80.     @Transactional(value="defaultTransactionManager")
  81.     public Collection<WhitelistedSite> getByCreator(String creatorId) {
  82.         TypedQuery<WhitelistedSite> query = manager.createNamedQuery(WhitelistedSite.QUERY_BY_CREATOR, WhitelistedSite.class);
  83.         query.setParameter(WhitelistedSite.PARAM_USER_ID, creatorId);

  84.         return query.getResultList();
  85.     }
  86. }