/*
* 2012-3 Red Hat Inc. and/or its affiliates and other contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.overlord.gadgets.server.service;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Query;
import org.overlord.gadgets.server.model.ApplicationData;
import com.google.inject.Inject;
/**
* @author: Jeff Yu
* @date: 1/04/12
*/
public class ApplicationDataManagerImpl implements ApplicationDataManager{
private EntityManagerFactory entityManagerFactory;
@Inject
public ApplicationDataManagerImpl(EntityManagerFactory emf) {
this.entityManagerFactory = emf;
}
@SuppressWarnings("unchecked")
@Override
public ApplicationData getApplicationData(String userId, String appUrl) {
EntityManager entityManager=entityManagerFactory.createEntityManager();
List<ApplicationData> data=null;
try {
if (!entityManager.getTransaction().isActive()) {
entityManager.getTransaction().begin();
}
Query query = entityManager.createQuery("select app from ApplicationData app where app.userId = :userId and app.appUrl = :appUrl");
query.setParameter("userId", userId);
query.setParameter("appUrl", appUrl);
data = query.getResultList();
entityManager.getTransaction().commit();
} finally {
entityManager.close();
}
if (data == null) {
return null;
}
return data.get(0);
}
@Override
public List<ApplicationData> getApplicationData(Long userId) {
List<ApplicationData> data = new ArrayList<ApplicationData>();
ApplicationData d = new ApplicationData();
d.setUserId(userId);
d.setAppUrl("http://sam-gadget.appspot.com/Gadget/SamGadget.gadget.xml");
ApplicationData d2 = new ApplicationData();
d2.setUserId(userId);
d2.setAppUrl("http://www.gstatic.com/ig/modules/tabnews/kennedy/tabnews.xml");
ApplicationData d3 = new ApplicationData();
d3.setUserId(userId);
d3.setAppUrl("http://hosting.gmodules.com/ig/gadgets/file/112016200750717054421/currency-converter.xml");
data.add(d);
data.add(d2);
data.add(d3);
return data;
}
}